
V]c           @   s(  d  Z  d d l Z d d l Z d d l m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z d d l m Z d d l m Z m Z e   Z e j d d  Z e j d d  Z e j d d	  Z e j d d
  Z d   Z d   Z e j d' k Z e rd Z d   Z n	 d   Z d d  Z e j e j    e j! d d  e j! d d  e j! d d  d e d e d d   Z" e j e j    e j! d d  e j! d d  e j! d d  d e d e	 d d   Z# e j e j    e j! d d  e j! d d  e j! d d  d e d e
 d d   Z$ e j e j    e j%   e j! d d  e j! d d  d e d e d d   Z& e j'    e j( d e)  e j d   e j* d d   D d d! d e d" e j+ d# e j, d$ e  Z- e j e j* d d   d d% d e d" e j+ d# e j, d$ e  Z. Wd QXd S((   s   
Test runner for the JSON Schema official test suite

Tests comprehensive correctness of each draft's validator.

See https://github.com/json-schema-org/JSON-Schema-Test-Suite for details.
iN(   t   Draft3Validatort   Draft4Validatort   Draft6Validatort   Draft7Validatort   draft3_format_checkert   draft4_format_checkert   draft6_format_checkert   draft7_format_checker(   t   Suite(   t   _DEPRECATED_DEFAULT_TYPESt   createt   namet   draft3t   draft4t   draft6t   draft7c            s      f d   } | S(   Nc            s*   t    f d    j   D  r&  Sd  S(   Nc         3   s*   |  ]  \ } } | t    |  k Vq d  S(   N(   t   getattr(   t   .0t   attrt   value(   t   test(    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pys	   <genexpr>#   s    (   t   allt   items(   R   (   t   kwargst   message(   R   sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   skipper"   s    "(    (   R   R   R   (    (   R   R   sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   skip!   s    c            s     f d   } | S(   Nc            sY   |  j  } | t k s- | t k s- d | k r1 d  S| d   j k rU d j | d  Sd  S(   Nt   formats   Format checker {0!r} not found.(   t   schemat   Truet   Falset   checkersR   (   R   R   (   t   checker(    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   missing_format)   s
    	$(    (   R    R!   (    (   R    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyR!   (   s    i   i   i   s:   Not running surrogate Unicode case, this Python is narrow.c         C   s4   t  d t d d  |   p3 t  d t d d  |   S(   NR   t   descriptions7   one supplementary Unicode code point is not long enoughs4   two supplementary Unicode code points is long enough(   R   R   (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   narrow_unicode_build7   s    c         C   s   d  S(   N(    (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyR#   @   s    c         C   s/   d } |  d  k	 r+ | d j d |   7} n  | S(   Ns   A known bug.s    See issue #{issue}.t   issue(   t   NoneR   (   R$   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   bugD   s    R   t   bignumt   zeroTerminatedFloatst	   Validatort   format_checkerR   c         C   s=   t  |   p< t t  |   p< t d d d d d d  |   S(   NR   s   Upstream bug in strict_rfc3339t   subjectR   R"   s   case-insensitive T and Z(   R#   R!   R   R   (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   <lambda>R   s    c         C   s  t  |   pt t  |   pt d t   d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d	  |   pt d t   d d
 d d  |   pt d t   d d
 d d  |   pt d d d d d d  |   S(   NR   R+   t   reft   case_descriptions$   Recursive references between schemasis  s   Location-independent identifiers1   Location-independent identifier with absolute URIsA   Location-independent identifier with base URI change in subschemat	   refRemotes   base URI change - change folders,   base URI change - change folder in subschemas   Upstream bug in strict_rfc3339R   R"   s   case-insensitive T and Z(   R#   R!   R   R   R&   (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyR,   e   sJ    									c         C   s  t  |   pt t  |   pt d t   d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d	  |   pt d t   d d
 d d  |   pt d t   d d
 d d  |   pt d d d d d d  |   S(   NR   R+   R-   R.   s$   Recursive references between schemasis  s   Location-independent identifiers1   Location-independent identifier with absolute URIsA   Location-independent identifier with base URI change in subschemaR/   s   base URI change - change folders,   base URI change - change folder in subschemas   Upstream bug in strict_rfc3339R   R"   s   case-insensitive T and Z(   R#   R!   R   R   R&   (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyR,      sJ    									c         C   s  t  |   pt t  |   pt d t   d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d  |   pt d t d  d d d d	  |   pt d t   d d
 d d  |   pt d t   d d
 d d  |   pt d d d d d d  |   S(   NR   R+   R-   R.   s$   Recursive references between schemasis  s   Location-independent identifiers1   Location-independent identifier with absolute URIsA   Location-independent identifier with base URI change in subschemaR/   s   base URI change - change folders,   base URI change - change folder in subschemas   Upstream bug in strict_rfc3339s	   date-timeR"   s   case-insensitive T and Z(   R#   R!   R   R   R&   (   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyR,      sJ    									t   ignorec         c   s   |  ] } d    | D Vq d S(   c         s   s+   |  ]! } | j  i d  d 6k r | Vq d S(   t   anyt   typeN(   R   (   R   R   (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pys	   <genexpr>  s    N(    (   R   t   each(    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pys	   <genexpr>  s   R2   t   TestDraft3LegacyTypeCheckt   meta_schemat
   validatorst   default_typest   TestDraft4LegacyTypeChecki   i  (/   t   __doc__t   syst   warningst
   jsonschemaR    R   R   R   R   R   R   R   t   jsonschema.tests._suiteR   t   jsonschema.validatorsR	   R
   t   SUITEt   versiont   DRAFT3t   DRAFT4t   DRAFT6t   DRAFT7R   R!   t
   maxunicodet   is_narrow_buildR   R#   R%   R&   t   to_unittest_testcaset   testst   optional_tests_oft
   TestDraft3t
   TestDraft4t
   TestDraft6t   format_testst
   TestDraft7t   catch_warningst   simplefiltert   DeprecationWarningt   tests_oft   META_SCHEMAt
   VALIDATORSR4   R8   (    (    (    sJ   lib/python2.7/site-packages/jsonschema/tests/test_jsonschema_test_suite.pyt   <module>   s   :
							.	.		.				