
Z-                 @   s   d  Z  d d l Z d d l Z d d l m Z m Z e j d  Z e j d  Z e j d  Z	 Gd d   d e j
  Z Gd	 d
   d
 e j
  Z Gd d   d e j
  Z e d k r e j   d S)zTests for josepy.jwa.    N)errors	test_utilzrsa256_key.pemzrsa512_key.pemzrsa1024_key.pemc               @   sj   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   sH   d d l  m } Gd 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
   1/usr/lib/python3/dist-packages/josepy/jwa_test.pysign   s    z,JWASignatureTest.setUp.<locals>.MockSig.signc             S   s   t     d  S)N)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 |  j  d  S)N)assertEqualr   )r   r
   r
   r   test_eq    s    zJWASignatureTest.test_eqc             C   s   |  j  |  j |  j  d  S)N)assertNotEqualr   r   )r   r
   r
   r   test_ne#   s    zJWASignatureTest.test_nec             C   s   |  j  |  j d  d  S)N   )r   r   )r   r
   r
   r   test_ne_other_type&   s    z#JWASignatureTest.test_ne_other_typec             C   s6   |  j  d t |  j   |  j  d t |  j   d  S)Nr   r   )r   reprr   r   )r   r
   r
   r   	test_repr)   s    zJWASignatureTest.test_reprc             C   s6   |  j  |  j j   d  |  j  |  j j   d  d  S)Nr   r   )r   r   Zto_partial_jsonr   )r   r
   r
   r   test_to_partial_json-   s    z%JWASignatureTest.test_to_partial_jsonc             C   s@   d d l  m } d d l  m } |  j | j d  | k  d  S)Nr   )r   )RS256r    )r   r   r    
assertTrueZ	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 } |  j | j d d  |  |  j | j d d |  d k  |  j | j d d | d  d k  d  S)	Nr   )HS256s    R͔A.:'i+UZԳzOs   some keys   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               @   sp   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   s6   d d l  m } |  j t j | j t j   d  d  S)Nr   )r    s   foo)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   s\   d d l  m } d d l  m } |  j t j | j t d  |  j t j | j t d  d  S)Nr   )r    )PS256s   foo)r   r    r.   r)   r   r*   r   
RSA256_KEY)r   r    r.   r
   r
   r   test_sign_key_too_smallK   s    z!JWARSTest.test_sign_key_too_smallc             C   s~   d d l  m } d } |  j | j t d  |  |  j | j t j   d |   |  j | j t j   d | d   d  S)Nr   )r    s@   |Ʋ(*:N&}Ot"YY)&ǙSOVҹ.>}s   foor&   )	r   r    r   r   r+   r!   r   r,   assertFalse)r   r    r   r
   r
   r   test_rsQ   s    "zJWARSTest.test_rsc             C   sn   d d l  m } | j t d  } |  j | j t j   d |   |  j | j t j   d | d   d  S)Nr   )r.   s   foor&   )r   r.   r   RSA1024_KEYr!   r   r,   r1   )r   r.   r   r
   r
   r   test_ps^   s
    "zJWARSTest.test_psc             C   sC   d d l  m } t j   } | j | d  |  j | 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   s   d d l  m } t j d d g  } t j   } | | j _ | j | d  |  j t | j j	 | j
 j	 | j j	 g   d  S)Nr   )r    specsignerr5   )r   r    r6   r7   r;   return_valuer   r!   allr8   updatefinalize)r   r    r   r;   r
   r
   r   test_sign_old_apik   s    			zJWARSTest.test_sign_old_apic             C   sF   d d l  m } t j   } | j | d d  |  j | j j  d  S)Nr   )r    r5   	signature)r   r    r6   r7   r   r!   r8   )r   r    r   r
   r
   r   test_verify_new_apiv   s    zJWARSTest.test_verify_new_apic             C   s   d d l  m } t j d d g  } t j   } | | j _ | j | d d  |  j t | j j	 | j
 j	 | j j	 g   d  S)Nr   )r    r:   verifierr5   rA   )r   r    r6   r7   rC   r<   r   r!   r=   r8   r>   )r   r    r   rC   r
   r
   r   test_verify_old_api|   s    			zJWARSTest.test_verify_old_apiN)r   r   r   r-   r0   r2   r4   r9   r@   rB   rD   r
   r
   r
   r   r(   D   s   r(   __main__)r#   Zunittestr6   Zjosepyr   r   Zload_rsa_private_keyr/   r+   r3   ZTestCaser   r$   r(   r   mainr
   r
   r
   r   <module>   s   *D