ó
t0^c           @   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	 d e j
 f d     YZ d	 e j
 f d
     YZ d e j
 f d     YZ e d k rĹ e j   n  d S(   s   Tests for josepy.jwa.i˙˙˙˙N(   t   errorst	   test_utils   rsa256_key.pems   rsa512_key.pems   rsa1024_key.pemt   JWASignatureTestc           B   sM   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   s"   Tests for josepy.jwa.JWASignature.c         C   sH   d d l  m } d | f d     Y} | d  |  _ | d  |  _ d  S(   Ni˙˙˙˙(   t   JWASignaturet   MockSigc           B   s   e  Z d    Z d   Z RS(   c         S   s   t     d  S(   N(   t   NotImplementedError(   t   selft   keyt   msg(    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   sign   s    c         S   s   t     d  S(   N(   R   (   R   R   R   t   sig(    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   verify   s    (   t   __name__t
   __module__R	   R   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyR      s   	t   Sig1t   Sig2(   t
   josepy.jwaR   R   R   (   R   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   setUp   s    
c         C   s   |  j  |  j |  j  d  S(   N(   t   assertEqualR   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_eq    s    c         C   s   |  j  |  j |  j  d  S(   N(   t   assertNotEqualR   R   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_ne#   s    c         C   s   |  j  |  j d  d  S(   Ni   (   R   R   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_ne_other_type&   s    c         C   s6   |  j  d t |  j   |  j  d t |  j   d  S(   NR   R   (   R   t   reprR   R   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt	   test_repr)   s    c         C   s6   |  j  |  j j   d  |  j  |  j j   d  d  S(   NR   R   (   R   R   t   to_partial_jsonR   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_to_partial_json-   s    c         C   s@   d d l  m } d d l  m } |  j | j d  | k  d  S(   Ni˙˙˙˙(   R   (   t   RS256R   (   R   R   R   t
   assertTruet	   from_json(   R   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_from_json1   s    (
   R   R   t   __doc__R   R   R   R   R   R   R   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyR      s   						t	   JWAHSTestc           B   s   e  Z d    Z RS(   c         C   s~   d d l  m } d } |  j | j d d  |  |  j | j d d |  t k  |  j | j d d | d  t k  d  S(   Ni˙˙˙˙(   t   HS256s    ÎRęÍŤĎűŕŹA.:'iâÄ+ŽUZÔłzOs   some keyt   foot   !(   R   R!   R   R	   R   R   t   Truet   False(   R   R!   R
   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_it9   s
    "(   R   R   R&   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyR    7   s   t	   JWARSTestc           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s6   d d l  m } |  j t j | j t j   d  d  S(   Ni˙˙˙˙(   R   R"   (   R   R   t   assertRaisesR    t   ErrorR	   t
   RSA512_KEYt
   public_key(   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_sign_no_private_partF   s    c         C   s\   d d l  m } d d l  m } |  j t j | j t d  |  j t j | j t d  d  S(   Ni˙˙˙˙(   R   (   t   PS256R"   (   R   R   R-   R(   R    R)   R	   t
   RSA256_KEY(   R   R   R-   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_sign_key_too_smallK   s    c         C   s~   d d l  m } d } |  j | j t d  |  |  j | j t j   d |   |  j | j t j   d | d   d  S(   Ni˙˙˙˙(   R   s@   |Ć˛¤Ť(ú*:ęř N&}ŔOĆtŁćúť"YYŕ¸)ş¤&ŘÇSüOVćŇš.>}ýR"   R#   (	   R   R   R   R	   R*   R   R   R+   t   assertFalse(   R   R   R
   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_rsQ   s    "c         C   sn   d d l  m } | j t d  } |  j | j t j   d |   |  j | j t j   d | d   d  S(   Ni˙˙˙˙(   R-   R"   R#   (   R   R-   R	   t   RSA1024_KEYR   R   R+   R0   (   R   R-   R
   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_ps^   s
    "c         C   sC   d d l  m } t j   } | j | d  |  j | j j  d  S(   Ni˙˙˙˙(   R   t   message(   R   R   t   mockt	   MagicMockR	   R   t   called(   R   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_sign_new_apie   s    c         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(   Ni˙˙˙˙(   R   t   specu   signerR4   (   R   R   R5   R6   t   signert   return_valueR	   R   t   allR7   t   updatet   finalize(   R   R   R   R:   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_sign_old_apik   s    			c         C   sF   d d l  m } t j   } | j | d d  |  j | j j  d  S(   Ni˙˙˙˙(   R   R4   t	   signature(   R   R   R5   R6   R   R   R7   (   R   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_verify_new_apiv   s    c         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(   Ni˙˙˙˙(   R   R9   u   verifierR4   R@   (   R   R   R5   R6   t   verifierR;   R   R   R<   R7   R=   (   R   R   R   RB   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   test_verify_old_api|   s    			(
   R   R   R,   R/   R1   R3   R8   R?   RA   RC   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyR'   D   s   							t   __main__(   R   t   unittestR5   t   josepyR    R   t   load_rsa_private_keyR.   R*   R2   t   TestCaseR   R    R'   R   t   main(    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwa_test.pyt   <module>   s   *D