ó
Š]c           @   sn   d  d l  Z  d  d l m Z m Z d e f d „  ƒ  YZ d e e f d „  ƒ  YZ d e e f d „  ƒ  YZ d S(	   iÿÿÿÿN(   t   PyTestt   CTestt   TestScanstringc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s°  |  j  j j } t j d k r@ |  j | d d d  t ƒ d; ƒ n |  j | d d d  t ƒ d< ƒ |  j | d d d  t ƒ d= ƒ |  j | d
 d d  t ƒ d> ƒ |  j | d d d  t ƒ d? ƒ |  j | d d d  t ƒ d@ ƒ |  j | d d d  t ƒ dA ƒ |  j | d d d  t ƒ dB ƒ |  j | d d d  t ƒ dC ƒ |  j | d d d  t ƒ dD ƒ |  j | d d d  t ƒ dE ƒ |  j | d! d d  t ƒ dF ƒ |  j | d# d d  t ƒ dG ƒ |  j | d% d d  t ƒ dH ƒ |  j | d( d d  t ƒ dI ƒ |  j | d* d d  t ƒ dJ ƒ |  j | d- d d  t ƒ dK ƒ |  j | d0 d d  t ƒ dL ƒ |  j | d3 d d  t ƒ dM ƒ |  j | d6 d d  t ƒ dN ƒ |  j | d8 d d  t ƒ dO ƒ d  S(P   Niÿÿ  u   "zð„ x"i   u   zð„ xi   i   s   "\u007b"u   {i   s<   "A JSON payload should be an object or array, not a string."u:   A JSON payload should be an object or array, not a string.i<   s   ["Unclosed array"i   u   Unclosed arrayi   s   ["extra comma",]u   extra commai   s   ["double extra comma",,]u   double extra commai   s   ["Comma after the close"],u   Comma after the closei   s   ["Extra close"]]u   Extra closes   {"Extra comma": true,}u   Extra commas:   {"Extra value after close": true} "misplaced quoted value"u   Extra value after closei   s   {"Illegal expression": 1 + 2}u   Illegal expressions   {"Illegal invocation": alert()}u   Illegal invocations+   {"Numbers cannot have leading zeroes": 013}u"   Numbers cannot have leading zeroesi%   s   {"Numbers cannot be hex": 0x14}u   Numbers cannot be hexs2   [[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]u   Too deepi   s   {"Missing colon" null}u   Missing coloni   s   {"Double colon":: null}u   Double coloni   s    {"Comma instead of colon", null}u   Comma instead of coloni   s!   ["Colon instead of comma": false]u   Colon instead of commas   ["Bad value", truth]u	   Bad valuei   (   u   zð„ xi   (   u   zð„ xi   (   u   {i   (   u:   A JSON payload should be an object or array, not a string.i<   (   u   Unclosed arrayi   (   u   extra commai   (   u   double extra commai   (   u   Comma after the closei   (   u   Extra closei   (   u   Extra commai   (   u   Extra value after closei   (   u   Illegal expressioni   (   u   Illegal invocationi   (   u"   Numbers cannot have leading zeroesi%   (   u   Numbers cannot be hexi   (   u   Too deepi   (   u   Missing coloni   (   u   Double coloni   (   u   Comma instead of coloni   (   u   Colon instead of commai   (   u	   Bad valuei   (   t   jsont   decodert
   scanstringt   syst
   maxunicodet   assertEqualt   Nonet   True(   t   selfR   (    (    s+   lib/python2.7/json/tests/test_scanstring.pyt   test_scanstring   s‚    
c            s¸   ˆ j  j j ‰  ‡  ‡ f d †  } t d ƒ t d ƒ } | d d ƒ | d d ƒ | d d	 ƒ | d
 d ƒ | d d | ƒ | d d ƒ | d d ƒ | d d | ƒ | d d ƒ d  S(   Nc            sx   ˆ j  ˆ  |  d d  t ƒ | t |  ƒ f ƒ t |  t ƒ st t |  ƒ }  ˆ j  ˆ  |  d d  t ƒ | t |  ƒ f ƒ n  d  S(   Ni   (   R   R	   R
   t   lent
   isinstancet   unicode(   t   givent   expect(   R   R   (    s+   lib/python2.7/json/tests/test_scanstring.pyt
   assertScan_   s    i4Ø  i Ý  s   "z\ud834\u0079x"u   zí ´yxs   "z\ud834\udd20x"u   zð„ xs   "z\ud834\ud834\udd20x"u	   zí ´ð„ xs
   "z\ud834x"u   zí ´xu   "z\ud834í´ x12345"u	   z%sx12345s
   "z\udd20x"u   zí´ xu   "zð„ x"u   zð„ xu   "zí ´\udd20x"u   z%sxu   "zí ´x"(   R   R   R   t   unichr(   R   R   t
   surrogates(    (   R   R   s+   lib/python2.7/json/tests/test_scanstring.pyt   test_surrogates]   s    c         C   s˜   |  j  j j } d d d d d d d d d	 d
 d d d d d d d d d d d d d g } x7 | D]/ } |  j t ƒ  | | d d  t ƒ Wd  QXqa Wd  S(   Ns   "\"s   "\x"s   "\u"s   "\u0"s   "\u01"s   "\u012"s   "\uz012"s   "\u0z12"s   "\u01z2"s   "\u012z"s   "\u0x12"s   "\u0X12"s	   "\ud834\"s
   "\ud834\u"s   "\ud834\ud"s   "\ud834\udd"s   "\ud834\udd2"s   "\ud834\uzdd2"s   "\ud834\udzd2"s   "\ud834\uddz2"s   "\ud834\udd2z"s   "\ud834\u0x20"s   "\ud834\u0X20"i   (   R   R   R   t   assertRaisest
   ValueErrorR	   R
   (   R   R   t   bad_escapest   s(    (    s+   lib/python2.7/json/tests/test_scanstring.pyt   test_bad_escapesr   s6    	c         C   sB   |  j  t |  j j j d d d ƒ |  j  t |  j j j d ƒ d  S(   Nt   xxxi   s   xxÿ(   R   R   R   R   R   t   UnicodeDecodeErrort   encodert   encode_basestring_ascii(   R   (    (    s+   lib/python2.7/json/tests/test_scanstring.pyt   test_issue3623‘   s    	c         C   s7   |  j  t ƒ " |  j j j d t j d ƒ Wd  QXd  S(   NR   i   (   R   t   OverflowErrorR   R   R   R   t   maxsize(   R   (    (    s+   lib/python2.7/json/tests/test_scanstring.pyt   test_overflow—   s    (   t   __name__t
   __module__R   R   R   R   R"   (    (    (    s+   lib/python2.7/json/tests/test_scanstring.pyR      s
   	W			t   TestPyScanstringc           B   s   e  Z RS(    (   R#   R$   (    (    (    s+   lib/python2.7/json/tests/test_scanstring.pyR%   œ   s    t   TestCScanstringc           B   s   e  Z RS(    (   R#   R$   (    (    (    s+   lib/python2.7/json/tests/test_scanstring.pyR&      s    (   R   t
   json.testsR    R   t   objectR   R%   R&   (    (    (    s+   lib/python2.7/json/tests/test_scanstring.pyt   <module>   s   —