o \Փa@sPddlZddlZddlmZddlZddlmZmZm Z m Z GdddeZ dS)N)TestCase)unichr text_typebBytesIOc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)& TestUnicodecCs>tjdd}d}|d}||}||}|||dS)Nutf-8encodingαΩ)json JSONEncoderencode assertEqual)selfencoderusjujsr?/usr/lib/python3/dist-packages/simplejson/tests/test_unicode.pytest_encoding1 s    zTestUnicode.test_encoding1cCs:d}|d}tj|dd}tj|dd}|||dS)Nr rr )rr dumpsr)rrrrrrrrtest_encoding2s  zTestUnicode.test_encoding2cCsd}t|}||ddS)Nr z"\u03b1\u03a9"r rrrrjrrrtest_encoding3s zTestUnicode.test_encoding3cCs d}t|g}||ddS)Nr z["\u03b1\u03a9"]rrrrrtest_encoding4s zTestUnicode.test_encoding4cCs*d}tj|dd}||d|ddS)Nr F ensure_ascii"rrrrrtest_encoding5"szTestUnicode.test_encoding5cCs,d}tj|gdd}||d|ddS)Nr Fr z["z"]rrrrrtest_encoding6'szTestUnicode.test_encoding6cCs0d}|t|d|tj|ddddS)Nu𝄠z"\ud834\udd20"Fr u"𝄠")rr rrrrrrtest_big_unicode_encode,sz#TestUnicode.test_big_unicode_encodecCs4d}|td|d||td|dS)Nuz𝄠xr"z"z\ud834\udd20x")rr loadsr%rrrtest_big_unicode_decode1sz#TestUnicode.test_big_unicode_decodecCs8tddD]}t|}d|f}|t||qdS)Nriz"\u%04x")rangerrr r')rirrrrrtest_unicode_decode6s  zTestUnicode.test_unicode_decodecCsd}gd}|t|t||tj|ddd|tj|tjd}||t||t|tj|tj|tjdddt|dS)Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd)kcw)art)hxm)qrt)pad)hoycSs|SNrxrrrBzATestUnicode.test_object_pairs_hook_with_unicode..)object_pairs_hookcSsdSr:rr;rrrr=Ir>)r? object_hook)rr r'eval OrderedDicttype)rrpodrrr#test_object_pairs_hook_with_unicode=s z/TestUnicode.test_object_pairs_hook_with_unicodecCs |tddddidS)Nu {"a": "é"}raé)rr r'rrrrrtest_default_encodingMsz!TestUnicode.test_default_encodingcCsJ|ttdt|ttdt|ttddtdS)Nz""z"a"z["a"]r)rrCr r'rrIrrrtest_unicode_preservationQsz%TestUnicode.test_unicode_preservationcCsl|ttjgddt|ttjdddt|ttjiddt|ttjdddtdS)NFr r)rrCr rrrIrrr'test_ensure_ascii_false_returns_unicodeVsz3TestUnicode.test_ensure_ascii_false_returns_unicodecCspdtdi}ddi}d}d}|t|||t|||tj|dd||tj|dd|dS)NquuxuArrêt sur imagesuArrêt sur imagesz!{"quux": "Arr\u00eat sur images"}u{"quux": "Arrêt sur images"}Fr )rrr r)rdoc1doc2 doc_ascii doc_unicoderrr+test_ensure_ascii_false_bytestring_encoding]s z7TestUnicode.test_ensure_ascii_false_bytestring_encodingcCsjd}|d}d}d}|t|||t|||tj|dd||tj|dd|dS)Nu

utf8z"\u2029\u2028"u"

"Fr )rrr r)rs1s2expectexpect_non_asciirrr$test_ensure_ascii_linebreak_encodinghs z0TestUnicode.test_ensure_ascii_linebreak_encodingcCsD|tjtjd|tjtjd|tjtjd|tjtjd|tjtjd|tjtjd|tjtjd|tjtjd|tjtjd tjd kr|tjtjd |tjtjd |tjtjd |tjtjd|tjtjd|tjtjd|tjtjd|tjtjddSdS)Nz"\uz"\u1z"\u12z"\u123z"\u1234z"\u123x"z"\u12x4"z"\u1x34"z"\ux234"iz "\ud800\u"z "\ud800\u0"z "\ud800\u00"z "\ud800\u000"z"\ud800\u000x"z"\ud800\u00x0"z"\ud800\u0x00"z"\ud800\ux000") assertRaisesr JSONDecodeErrorr'sys maxunicoderIrrrtest_invalid_escape_sequencesss& z)TestUnicode.test_invalid_escape_sequencescCsXtttddD]}|tj|ddt|qd}|tj|ddd|ddS)NrFr u☃r")maprr)rr r)rcsnowmanrrrtest_ensure_ascii_still_workss   z)TestUnicode.test_ensure_ascii_still_workscCsXd}tjtt|}|tt||||dfD] }|t ||qdS)NuこんにちわrT) codecsBOM_UTF8rr rrloadrdecoder')rcontentjson_docdocrrrtest_strip_boms zTestUnicode.test_strip_bomN)__name__ __module__ __qualname__rrrrr#r$r&r(r+rFrJrKrMrSrYr^rcrkrrrrrs&   r) r\rdunittestr simplejsonr simplejson.compatrrrrrrrrrs