a  ze{@sfddlZddlmZddlmZddlmZmZGdddZGdddeeZ Gd d d eeZ dS) N)StringIO) OrderedDict)PyTestCTestc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) TestDecodecCs8|jdtjd}|t|tj||tddS)Nz1.1)Z parse_float)loadsdecimalZDecimal assertTrue isinstance assertEqualselfrvalrN/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_json/test_decode.py test_decimalszTestDecode.test_decimalcCs.|jdtd}|t|t||ddS)N1)Z parse_intg?)rfloatr r r r rrr test_float szTestDecode.test_floatcCs:||di||dg||dddS)N{}z[]z"")r r)r rrrtest_empty_objectsszTestDecode.test_empty_objectscCsd}gd}|||t|||j|ddd|||jjt|ddd||j|td}||t||t|t||j|tdddt|||jd tdt||jd tdtd tfgdS) Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))Zxkd)Zkcw)Zart)Zhxm)Zqrt)Zpad)ZhoycSs|SNrxrrrz3TestDecode.test_object_pairs_hook..)object_pairs_hookcSs|Srrr rrrr"r#cSsdSrrr rrrr"$r#)r$Z object_hookrz {"empty": {}}empty)r revaljsonloadrrtype)r spZodrrrtest_object_pairs_hooks2  z!TestDecode.test_object_pairs_hookcCs |d}||ddddS)Nz,{ "key" : "value" , "k":"v" }valuev)keyk)rr r rrrtest_decoder_optimizations-s z%TestDecode.test_decoder_optimizationscCsF||}t|dt|d\}}\}}||||||dS)Nrr)sortedZassertIs)r sourcerrabcdrrrcheck_keys_reuse4s" zTestDecode.check_keys_reusecCs<d}|||j|jj}|||j||jdS)Nu2[{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}])r8rr'decoder JSONDecoderdecodeZ assertFalsememo)r r*r9rrrtest_keys_reuse:s  zTestDecode.test_keys_reusecCs d}d}||j||j|dS)Nz [1, 2, 3]5z Extra dataassertRaisesRegexJSONDecodeErrorrr r*msgrrrtest_extra_dataAszTestDecode.test_extra_datacCs d}d}||j||j|dS)Nz ["abc\y"]escaper>rArrrtest_invalid_escapeFszTestDecode.test_invalid_escapecCs.d}ddgidfD]}|t||j|qdS)Nzthe JSON object must be strrgQ @)r? TypeErrorr)r rBr-rrrtest_invalid_input_typeKsz"TestDecode.test_invalid_input_typecCsddd}||j}||Wdn1s<0Y|dt|j||j }|j t |Wdn1s0Y|dt|jd ddd}| ||d| |j t |ddS)Nz[1,2,3]z utf-8-sigzutf-8BOMz"{}"ru) encoder; assertRaisesr@rZassertInstr exceptionr'r(rformatr )r Zbom_jsoncmZ bom_in_strrrrtest_string_with_utf8_bomPs(.z$TestDecode.test_string_with_utf8_bomcCs |j}|t|jdddS)NZ*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai<)r'r:rJ ValueErrorZ raw_decode)r r7rrrtest_negative_index^s zTestDecode.test_negative_indexN)__name__ __module__ __qualname__rrrr,r1r8r=rCrErGrOrQrrrrrsrc@s eZdZdS) TestPyDecodeNrRrSrTrrrrrUbr#rUc@s eZdZdS) TestCDecodeNrVrrrrrWcr#rW) rior collectionsrZtest.test_jsonrrrrUrWrrrrs   [