ó
íÂÐZc           @   sH   d  Z  d d l Z d e j f d „  ƒ  YZ e d k rD e j ƒ  n  d S(   s   Tests for josepy.interfaces.iÿÿÿÿNt   JSONDeSerializableTestc           B   st   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   c            sì   d d l  m } d | f d „  ƒ  Y‰  d | f ‡  f d †  ƒ  Y} d | f d „  ƒ  Y} ˆ  d	 ƒ |  _ ˆ  d
 ƒ |  _ | |  j |  j ƒ |  _ | |  j |  j ƒ |  _ ˆ  |  j g g ƒ |  _ ˆ  d ƒ |  _ ˆ  |  _ | |  _	 | |  _
 d  S(   Niÿÿÿÿ(   t   JSONDeSerializablet   Basicc           B   s)   e  Z d  „  Z d „  Z e d „  ƒ Z RS(   c         S   s   | |  _  d  S(   N(   t   v(   t   selfR   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   __init__   s    c         S   s   |  j  S(   N(   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   to_partial_json   s    c         S   s
   |  | ƒ S(   N(    (   t   clst   jobj(    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt	   from_json   s    (   t   __name__t
   __module__R   R   t   classmethodR	   (    (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR      s   		t   Sequencec              s/   e  Z d  „  Z d „  Z e ‡  f d †  ƒ Z RS(   c         S   s   | |  _  | |  _ d  S(   N(   t   xt   y(   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR      s    	c         S   s   |  j  |  j g S(   N(   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR      s    c            s'   |  ˆ  j  | d ƒ ˆ  j  | d ƒ ƒ S(   Ni    i   (   R	   (   R   R   (   R   (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR	       s    (   R
   R   R   R   R   R	   (    (   R   (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR      s   		t   Mappingc           B   s)   e  Z d  „  Z d „  Z e d „  ƒ Z RS(   c         S   s   | |  _  | |  _ d  S(   N(   R   R   (   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR   &   s    	c         S   s   i |  j  |  j 6S(   N(   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR   *   s    c         S   s   d  S(   N(    (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR	   -   s    (   R
   R   R   R   R   R	   (    (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR   %   s   		t   foo1t   foo2t   foo(   R   (   t   josepy.interfacesR   t   basic1t   basic2t   seqt   mappingt   nestedt   tupleR   R   R   (   R   R   R   R   (    (   R   s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   setUp   s    		c         C   s#   |  j  |  j j ƒ  d d g ƒ d  S(   NR   R   (   t   assertEqualR   t   to_json(   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_to_json_sequence=   s    c         C   s$   |  j  |  j j ƒ  i d d 6ƒ d  S(   NR   R   (   R   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_to_json_mapping@   s    c         C   s/   t  ƒ  } |  j |  j | ƒ j ƒ  | k ƒ d  S(   N(   t   objectt
   assertTrueR   R   (   R   t
   mock_value(    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_to_json_otherC   s    	c         C   s#   |  j  |  j j ƒ  d g g ƒ d  S(   NR   (   R   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_to_json_nestedG   s    c         C   s   |  j  |  j j ƒ  d ƒ d  S(   NR   (   s   foo(   R   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_to_jsonJ   s    c         C   s*   d d l  m } |  j t | j d ƒ d  S(   Niÿÿÿÿ(   R   t   xxx(   R   R   t   assertRaisest	   TypeErrorR	   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_from_json_not_implementedM   s    c         C   s“   |  j  j d ƒ } |  j t | |  j  ƒ ƒ |  j t | j |  j ƒ ƒ |  j t | j |  j ƒ ƒ |  j | j j d ƒ |  j | j j d ƒ d  S(   Ns   ["foo1", "foo2"]R   R   (	   R   t
   json_loadsR!   t
   isinstanceR   R   R   R   R   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_json_loadsQ   s    c         C   s   |  j  d |  j j ƒ  ƒ d  S(   Ns   ["foo1", "foo2"](   R   R   t
   json_dumps(   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_json_dumpsY   s    c         C   s   |  j  |  j j ƒ  d ƒ d  S(   Ns   [
    "foo1",
    "foo2"
](   R   R   t   json_dumps_pretty(   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_json_dumps_pretty\   s    c         C   sŒ   d d l  m } |  j d | j |  j ƒ ƒ | j |  j ƒ } |  j t | ƒ d ƒ |  j | d |  j k ƒ |  j | d |  j k ƒ d  S(   Niÿÿÿÿ(   R   R   i   i    i   (	   R   R   R   t   json_dump_defaultR   R   t   lenR!   R   (   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   test_json_dump_default`   s    c         C   s-   d d l  m } |  j t | j t ƒ  ƒ d  S(   Niÿÿÿÿ(   R   (   R   R   R'   R(   R1   R    (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt!   test_json_dump_default_type_errork   s    (   R
   R   R   R   R   R#   R$   R%   R)   R,   R.   R0   R3   R4   (    (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyR       s   	5										t   __main__(   t   __doc__t   unittestt   TestCaseR    R
   t   main(    (    (    s:   /usr/lib/python2.7/dist-packages/josepy/interfaces_test.pyt   <module>   s   l