U
    ÓZj-  ã                   @   sŒ   d Z ddlZddlZddlmZmZ e d¡Ze d¡Ze d¡Z	G dd„ dej
ƒZG d	d
„ d
ej
ƒZG dd„ dej
ƒZedkrˆe ¡  dS )zTests for josepy.jwa.é    N)ÚerrorsÚ	test_utilzrsa256_key.pemzrsa512_key.pemzrsa1024_key.pemc                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )ÚJWASignatureTestz"Tests for josepy.jwa.JWASignature.c                 C   s4   ddl m} G dd„ d|ƒ}|dƒ| _|dƒ| _d S )Nr   ©ÚJWASignaturec                   @   s   e Zd Zdd„ Zdd„ ZdS )z'JWASignatureTest.setUp.<locals>.MockSigc                 S   s
   t ƒ ‚d S ©N©ÚNotImplementedError)ÚselfÚkeyÚmsg© r   úR/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/josepy/jwa_test.pyÚsign   s    z,JWASignatureTest.setUp.<locals>.MockSig.signc                 S   s
   t ƒ ‚d S r   r   )r
   r   r   Úsigr   r   r   Úverify   s    z.JWASignatureTest.setUp.<locals>.MockSig.verifyN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   ÚMockSig   s   r   ÚSig1ÚSig2)Ú
josepy.jwar   r   r   )r
   r   r   r   r   r   ÚsetUp   s    

zJWASignatureTest.setUpc                 C   s   |   | j| j¡ d S r   )ÚassertEqualr   ©r
   r   r   r   Útest_eq    s    zJWASignatureTest.test_eqc                 C   s   |   | j| j¡ d S r   )ÚassertNotEqualr   r   r   r   r   r   Útest_ne#   s    zJWASignatureTest.test_nec                 C   s   |   | jd¡ d S )Né   )r   r   r   r   r   r   Útest_ne_other_type&   s    z#JWASignatureTest.test_ne_other_typec                 C   s(   |   dt| jƒ¡ |   dt| jƒ¡ d S ©Nr   r   )r   Úreprr   r   r   r   r   r   Ú	test_repr)   s    zJWASignatureTest.test_reprc                 C   s(   |   | j ¡ d¡ |   | j ¡ d¡ d S r!   )r   r   Zto_partial_jsonr   r   r   r   r   Útest_to_partial_json-   s    z%JWASignatureTest.test_to_partial_jsonc                 C   s0   ddl m} ddl m} |  | d¡|k¡ d S )Nr   r   ©ÚRS256r&   )r   r   r&   Ú
assertTrueÚ	from_json)r
   r   r&   r   r   r   Útest_from_json1   s    zJWASignatureTest.test_from_jsonN)r   r   r   Ú__doc__r   r   r   r    r#   r$   r)   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd„ ZdS )Ú	JWAHSTestc                 C   s\   ddl m} d}|  | dd¡|¡ |  | dd|¡dk¡ |  | dd|d ¡dk¡ d S )	Nr   )ÚHS256s    ÎRêÍ”«Ïûà¬A.:'iâÄ…+…®UZÔ³—zOs   some keyó   fooTó   !F)r   r,   r   r   r'   r   )r
   r,   r   r   r   r   Útest_it9   s    ÿzJWAHSTest.test_itN)r   r   r   r/   r   r   r   r   r+   7   s   r+   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )Ú	JWARSTestc                 C   s(   ddl m} |  tj|jt ¡ d¡ d S )Nr   r%   r-   )r   r&   ÚassertRaisesr   ÚErrorr   Ú
RSA512_KEYÚ
public_key)r
   r&   r   r   r   Útest_sign_no_private_partF   s       ÿz#JWARSTest.test_sign_no_private_partc                 C   sD   ddl m} ddl m} |  tj|jtd¡ |  tj|jtd¡ d S )Nr   r%   ©ÚPS256r-   )r   r&   r7   r1   r   r2   r   Ú
RSA256_KEY)r
   r&   r7   r   r   r   Útest_sign_key_too_smallK   s    z!JWARSTest.test_sign_key_too_smallc                 C   s\   ddl m} d}|  | td¡|¡ |  | t ¡ d|¡¡ |  | t ¡ d|d ¡¡ d S )Nr   r%   s@   |Æ²¤«(‡™ú*:êø N&}ŸÀOÆt£æú»"Y€Yà�¸ˆ)ºœ¤™&ØÇ™S—ü…OVæ™Ò¹.>}ýr-   r.   )	r   r&   r   r   r3   r'   r   r4   ÚassertFalse)r
   r&   r   r   r   r   Útest_rsQ   s    ÿ  ÿzJWARSTest.test_rsc                 C   sP   ddl m} | td¡}|  | t ¡ d|¡¡ |  | t ¡ d|d ¡¡ d S )Nr   r6   r-   r.   )r   r7   r   ÚRSA1024_KEYr'   r   r4   r:   )r
   r7   r   r   r   r   Útest_ps^   s      ÿzJWARSTest.test_psc                 C   s2   ddl m} t ¡ }| |d¡ |  |jj¡ d S )Nr   r%   Úmessage)r   r&   ÚmockÚ	MagicMockr   r'   Úcalled©r
   r&   r   r   r   r   Útest_sign_new_apie   s    zJWARSTest.test_sign_new_apic                 C   sZ   ddl m} tjdgd�}t ¡ }||j_| |d¡ |  t|jj	|j
j	|jj	gƒ¡ d S )Nr   r%   Úsigner©Úspecr>   )r   r&   r?   r@   rD   Úreturn_valuer   r'   ÚallrA   ÚupdateÚfinalize)r
   r&   r   rD   r   r   r   Útest_sign_old_apik   s    ýzJWARSTest.test_sign_old_apic                 C   s4   ddl m} t ¡ }| |dd¡ |  |jj¡ d S )Nr   r%   r>   Ú	signature)r   r&   r?   r@   r   r'   rA   rB   r   r   r   Útest_verify_new_apiv   s    zJWARSTest.test_verify_new_apic                 C   s\   ddl m} tjdgd�}t ¡ }||j_| |dd¡ |  t|jj	|j
j	|jj	gƒ¡ d S )Nr   r%   ÚverifierrE   r>   rL   )r   r&   r?   r@   rN   rG   r   r'   rH   rA   rI   )r
   r&   r   rN   r   r   r   Útest_verify_old_api|   s    ýzJWARSTest.test_verify_old_apiN)r   r   r   r5   r9   r;   r=   rC   rK   rM   rO   r   r   r   r   r0   D   s   r0   Ú__main__)r*   Zunittestr?   Zjosepyr   r   Zload_rsa_private_keyr8   r3   r<   ZTestCaser   r+   r0   r   Úmainr   r   r   r   Ú<module>   s   


*D