o
    èó·i}  ã                   @   sú   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ erFerFd dlmZmZ d d	lmZmZ d d
lmZ de jv oSee jd ƒd kZejjdkZee j dd¡ dƒee dƒeeome dƒG dd„ deƒƒƒƒZdS )é    N)ÚskipIf)Ú	MagicMock)ÚTestCase)ÚinlineCallbacks)ÚHAS_XBR)ÚHAS_CRYPTOSIGN)ÚSeederÚFederatedRealm)ÚSecurityModuleMemoryÚEthereumKey)ÚCryptosignKeyÚWEB3_INFURA_PROJECT_IDé
   ZUSE_TWISTEDFzonly for Twistedz*env var WEB3_INFURA_PROJECT_ID not definedz.package autobahn[encryption,xbr] not installedc                   @   s\   e Zd Zdej dd¡ddœZeedƒdd„ ƒZ	d	d
„ Z
edd„ ƒZdd„ Zedd„ ƒZdS )ÚTestFederatedRealmZinfurar   Ú Zmainnet)ÚtypeÚkeyÚnetworkz?Web3 v5.29.0 (web3.auto.infura) raises TypeError on Python 3.10c                 C   sH   d}t |ƒ}|  |jd¡ |  |j|¡ |  |jd ¡ |  |jd¡ d S ©Núwamp-proto.ethÚSTOPPEDZens)r	   ÚassertEqualÚstatusÚname_or_addressÚgateway_configÚname_category©ÚselfÚnameÚfr© r    úgC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\autobahn/xbr/test/test_xbr_frealm.pyÚtest_frealm_ctor_auto(   s   z(TestFederatedRealm.test_frealm_ctor_autoc                 C   sN   d}t || jƒ}|  |jd¡ |  |j|¡ |  |j| j¡ |  |jd¡ d S r   )r	   Ú	gw_configr   r   r   r   r   r   r    r    r!   Útest_frealm_ctor_gw2   s   z&TestFederatedRealm.test_frealm_ctor_gwc                 c   sJ   � d}t || jƒ}|  |jd¡ | ¡ V  |  |jd¡ |  |jd¡ d S )Nr   r   ÚRUNNINGÚ*0x66267d0b1114cFae80C37942177a846d666b114a)r	   r#   r   r   Ú
initializeÚaddress)r   r   Úfr1r    r    r!   Útest_frealm_initialize;   s   €
z)TestFederatedRealm.test_frealm_initializec              	   C   s„   t ƒ }d|_d|_d|_t|ddddd�t|d	d
ddd�t|ddddd�g|_|  t|jƒd¡ dd„ |jD ƒ}|  |g d¢¡ d S )Nr   r&   r%   úwss://frealm1.example.com/wsúExample Inc.Ú*0xf5fb56886f033855C1a36F651E927551749361bCÚUS©ZfrealmÚendpointÚlabelÚoperatorZcountryúwss://fr1.foobar.org/wsúFoobar FoundationÚ*0xe59C7418403CF1D973485B36660728a5f4A8fF9cÚDEú"wss://public-frealm1.pierre.fr:443ú	Pierre PPÚ*0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2BÚFRé   c                 S   s   g | ]}|j ‘qS r    )r0   )Ú.0Úsr    r    r!   Ú
<listcomp>^   s    z:TestFederatedRealm.test_frealm_seeders.<locals>.<listcomp>)r+   r3   r7   )r   r   r(   r   r   Úseedersr   Úlen)r   r)   Ú
transportsr    r    r!   Útest_frealm_seedersF   s4   üüüõz&TestFederatedRealm.test_frealm_seedersc              	   c   st  � d}d}t  |¡}| ¡ V  |  t|ƒd¡ |  t|d tƒd t	|d ƒ¡¡ |  t|d t
ƒd t	|d ƒ¡¡ t|| jƒ}t|dd	d
dd�t|ddddd�t|ddddd�g|_| ¡ V  |  |jd¡ |  |jd¡ |  t|jƒd¡ |d }|d }|jd j||dd d d�V }|  | dd ¡|jdd�¡ |  d|v ¡ |  t	|d ƒtk¡ |  t|d ƒd¡ d S )Nr   zNmyth like bonus scare over problem client lizard pioneer submit female collecté   r   zunexpected type {} at index 0é   zunexpected type {} at index 1r+   r,   r-   r.   r/   r3   r4   r5   r6   r7   r8   r9   r:   r%   r&   r;   i   )Ú
client_keyÚdelegate_keyZbandwidth_requestedZ
channel_idZchannel_bindingZpubkeyF)ÚbinaryÚ	signatureé‚   )r
   Zfrom_seedphraseÚopenr   r@   Ú
assertTrueÚ
isinstancer   Úformatr   r   r	   r#   r   Z_seedersr'   r   r(   r?   Zcreate_authextraÚgetZ
public_keyÚstr)r   r   Z
seedphraseÚsmr   rF   rE   Z	authextrar    r    r!   Útest_frealm_secmodb   sX   €

$$üüüõ
üz%TestFederatedRealm.test_frealm_secmodN)Ú__name__Ú
__module__Ú__qualname__ÚosÚenvironrN   r#   r   Ú
IS_CPY_310r"   r$   r   r*   rB   rQ   r    r    r    r!   r      s    ý
		

r   )rU   ÚsysZunittestr   Zunittest.mockr   Ztwisted.trial.unittestr   Ztwisted.internet.deferr   Zautobahn.xbrr   Zautobahn.wamp.cryptosignr   Zautobahn.xbr._frealmr   r	   Zautobahn.xbr._secmodr
   r   r   rV   r@   Z
HAS_INFURAÚversion_infoÚminorrW   rN   r   r    r    r    r!   Ú<module>   s$    
