U
    2Äc}  ã                   @   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rŒerŒd dlmZmZ d d	lmZmZ d d
lmZ de jko¦ee jd ƒd kZejjdkZee j dd¡ dƒee dƒeeoÚe 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ÚkeyZ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   újc:\users\psant\downloads\hotstarbackend\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   sH   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 ƒ}|  |dd	dg¡ 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   )r/   )Ú.0Úsr   r   r    Ú
<listcomp>^   s     z:TestFederatedRealm.test_frealm_seeders.<locals>.<listcomp>)r   r   r'   r   r   Úseedersr   Úlen)r   r(   Ú
transportsr   r   r    Útest_frealm_seedersF   s8    üüüõ
ÿz&TestFederatedRealm.test_frealm_seedersc              	   c   sr  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|k¡ |  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.   r2   r3   r4   r5   r6   r7   r8   r9   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
seedphraseZsmr   rE   rD   Z	authextrar   r   r    Útest_frealm_secmodb   sV    

$$üüüõ
üz%TestFederatedRealm.test_frealm_secmodN)Ú__name__Ú
__module__Ú__qualname__ÚosÚenvironrM   r"   r   Ú
IS_CPY_310r!   r#   r   r)   rA   rO   r   r   r   r    r      s   ý
		

r   )rS   ÚsysÚ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   rT   r?   Z
HAS_INFURAÚversion_infoÚminorrU   rM   r   r   r   r   r    Ú<module>   s"   
