o
    >hP6                     @   sR  d dl Z d dlZd dlmZ d dlZd dlmZ de jv r-e jd r-d dlmZ e	  nd dlZe
  d dlmZ d dlmZ erad dlmZmZ d d	lmZmZmZmZmZmZmZmZmZ ee d
G dd dejZee d
G dd dejZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"dS )    N)a2b_hex)skipIfUSE_TWISTED)unittest)HAS_XBR)InvalidPayload)pack_ethadrunpack_ethadr)	FbsType	FbsObject
FbsService
FbsRPCCallFbsRepository	FbsSchemaFbsFieldFbsEnumFbsEnumValuez#package autobahn[xbr] not installedc                   @      e Zd ZdZdd ZdS )TestPackEthAdrzE
    Test :func:`pack_ethadr` and :func:`unpack_ethadr` helpers.
    c           
   
   C   s.  d}t |dd  }d}dD ]}||fD ]y}t||d}|rC| |t tdD ]}| d|| | t|d| t	k q(n | |t
 | t|d tdD ]}| t|| t	k qUdD ]'}t||d}	|r|| |	t | |	| n| |	t | |	| |d	7 }qeqq| |d
 d S )N*0xecdb40C2B34f3bA162C413CC53BA3ca99ff8A047   r   )FTreturn_dict   zw{})
return_str      )r   r   assertIsInstancedictrangeassertInformat
assertTruetypeintlistassertEquallenr	   strbytes)
selforiginal_value_stroriginal_value_bincntr   original_valuepacked_valueir   unpacked_value r2   /var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/xbr/test/test_xbr_schema_wamp.pytest_roundtrip   s6   
zTestPackEthAdr.test_roundtripN)__name__
__module____qualname____doc__r4   r2   r2   r2   r3   r          r   c                   @   r   )TestFbsBasez;
    FlatBuffers tests base class, loads test schemas.
    c                 C   sH   t d| _g | _dD ]}tdd|}| j| | j| q
d S )Nautobahn)z	wamp.bfbsztestsvc1.bfbszxbr/test/catalog/schema/{})r   repoarchivespkg_resourcesresource_filenamer!   loadappend)r*   fbs_filearchiver2   r2   r3   setUpM   s   
zTestFbsBase.setUpN)r5   r6   r7   r8   rD   r2   r2   r2   r3   r:   G   r9   r:   c                   @       e Zd ZdZdd Zdd ZdS )TestFbsRepositoryzM
    Test :class:`FbsRepository` schema loading and verify loaded types.
    c                 C   s   |  d| jj | | jjd t |  d| jj | | jjd t |  d| jj | | jjd t |  d| jj | | jjd t d S )N	uint160_tztestsvc1.TestRequestztestsvc1.TestResponsetestsvc1.ITestService1)r    r<   objsr   r   servicesr   r*   r2   r2   r3   test_create_from_archive[   s   z*TestFbsRepository.test_create_from_archivec                 C   s   t dd}| jj| }|jd jd }|j|jj |j|j	j fD ]L}|j
D ]F}|jjtjkrm|jds8J |j|jj }|jsDJ |jD ]%}|dkrld|jv ra|jdd }d	||}	n|}	|j|	 }
t|
 qGq'q"d S )
Nr;   z%xbr/test/catalog/schema/testsvc1.bfbsrH   run_something1_typeNONE.r   z{}.{})r>   r?   r<   schemasrJ   callsrI   requestnameresponsefields_by_idr#   basetyper
   UTypeendswithenums_by_idindexis_unionvaluessplitr!   print)r*   	schema_fnschemacall	call_typefieldcall_type_enumunion_type_value	namespaceunion_type_qn
union_typer2   r2   r3   test_loaded_schemae   s(    




z$TestFbsRepository.test_loaded_schemaN)r5   r6   r7   r8   rL   rj   r2   r2   r2   r3   rF   V   s    
rF   c                   @   rE   )TestFbsValidateUint160z+
    Test struct uint160_t validation.
    c                 C   s   d}g d|||||gt dt ddddddd|||||dt dddt dddg}z|D ]	}| jd	| q.W d S  tyV } z| d
d|  W Y d }~d S d }~ww )Nl    )r   r   r   r   r   *0x0000000000000000000000000000000000000000r   r   w0w1w2w3w4Tr   rG   F*Inventory.validate() raised an exception: r   r<   validate_obj	Exceptionr"   )r*   element_maxvalid_valuesvalueexcr2   r2   r3   test_validate_obj_uint160_valid   s$   

 z6TestFbsValidateUint160.test_validate_obj_uint160_validc                 C   s   dg dfi dfg ddfg ddfg ddfg ddfd	d	d d	d	d
dfd	d	d	d	dd
dfd	d	d	d	ddfd	d	d	d	d	d	ddfg}|D ]\}}|  t|| jjd| qCd S )NNinvalid typemissing argument)r   r   Nr   r   r}   )r   r   r   r   bogus)r   r   r   r   )r   r   r   r   r   r   unexpected argumentr   rm   r   )rn   ro   rp   rq   )rn   ro   rp   rq   rr   w5rG   assertRaisesRegexr   r<   ru   r*   testsry   expected_regexr2   r2   r3   !test_validate_obj_uint160_invalid   s"   




z8TestFbsValidateUint160.test_validate_obj_uint160_invalidN)r5   r6   r7   r8   r{   r   r2   r2   r2   r3   rk      s    rk   c                   @      e Zd Zdd Zdd ZdS )TestFbsValidateEthAddressc                 C   s   dddddddidt didt didt dddidt dddifD ]&}z	| jd| W q# tyI } z| d	d
|  W Y d }~q#d }~ww d S )Nry   r   rm   rl   r   Tr   
EthAddressFrs   rt   )r*   ry   rz   r2   r2   r3   "test_validate_obj_EthAddress_valid   s   

z<TestFbsValidateEthAddress.test_validate_obj_EthAddress_validc                 C   sX   dt didfdd idfdi idfdg idfg}|D ]\}}| t|| jjd| qd S )Ninvalid_keyr   r   ry   r}   r~   r   )r   r   r   r<   ru   r   r2   r2   r3   $test_validate_obj_EthAddress_invalid   s   


	
z>TestFbsValidateEthAddress.test_validate_obj_EthAddress_invalidN)r5   r6   r7   r   r   r2   r2   r2   r3   r      s    r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestFbsValidateKeyValuec              
   C   sV   z| j jdddgi d W d S  ty* } z| dd|  W Y d }~d S d }~ww )NKeyValuefoo23argskwargsFrs   r<   validaterv   r"   r*   rz   r2   r2   r3   test_validate_KeyValue_valid   s    z4TestFbsValidateKeyValue.test_validate_KeyValue_validc              	   C   s   |  td| jjdg i  |  td| jjddgi  |  td| jjdg di  |  td| jjdddgddi |  td	| jjddd
gi  d S )Nzmissing positional argumentr   r   zunexpected positional arguments)r   r   
unexpectedzunexpected keyword argumentsr   unexpected_kwargr}      )r   r   r<   r   rK   r2   r2   r3   test_validate_KeyValue_invalid   s   

z6TestFbsValidateKeyValue.test_validate_KeyValue_invalidc              
   C   s   i }z	| j d| W n ty& } z| dd|  W Y d }~nd }~ww dg i}tdD ]}|d d|d|d q/z
| j d| W d S  tyh } z| dd|  W Y d }~d S d }~ww )	N	KeyValuesFrs   ry   
   zkey{}zvalue{})keyry   )r<   ru   rv   r"   r   rA   r!   )r*   valid_valuerz   r0   r2   r2   r3   test_validate_KeyValues_valid  s"   " z5TestFbsValidateKeyValue.test_validate_KeyValues_validc                 C   sR   dg dfddidfdd idfdi idfg}|D ]\}}|  t|| jjd| qd S )Nr|   r}   r   	somethingr   ry   r   r   r   r2   r2   r3   test_validate_KeyValues_invalid  s   



z7TestFbsValidateKeyValue.test_validate_KeyValues_invalidN)r5   r6   r7   r   r   r   r   r2   r2   r2   r3   r      s
    r   c                   @   r   )TestFbsValidateVoidc              
   C   sd   z| j jd g i d | j jdg i d W d S  ty1 } z| dd|  W Y d }~d S d }~ww )Nr   VoidFrs   r   r   r2   r2   r3   test_validate_Void_valid+  s    z,TestFbsValidateVoid.test_validate_Void_validc              	   C   s   t d}| td| jjddgi  | td| jjdi gi  | td| jjdd gi  | td| jjdd|igi  | td| jjdg dd i | td| jjdg ddi d S )Nr   zunexpected positional argumentr   r   ry   zunexpected keyword argumentr   )r   r   r   r<   r   )r*   	valid_adrr2   r2   r3   test_validate_Void_invalid2  s&   

z.TestFbsValidateVoid.test_validate_Void_invalidN)r5   r6   r7   r   r   r2   r2   r2   r3   r   )  s    r   )#osr>   binasciir   txaior   r   environtwisted.trialuse_twisteduse_asyncioautobahn.xbrr   autobahn.wamp.exceptionr   autobahn.xbr._utilr   r	   r
   r   r   r   r   r   r   r   r   TestCaser   r:   rF   rk   r   r   r   r2   r2   r2   r3   <module>   s0    
,

-N-9