o \Փa@slddlmZddlZddlmZddlZddlmZm Z m Z ddlm Z Gddde Z Gdd d eZ dS) )absolute_importN)TestCase)StringIOb binary_type) OrderedDictc@s&eZdZdddZddZddZdS) MisbehavingBytesSubtypeNcCdS)Nz bad decode)selfencodingr r >/usr/lib/python3/dist-packages/simplejson/tests/test_decode.pydecode zMisbehavingBytesSubtype.decodecCr )Nz bad __str__r r r r r __str__ rzMisbehavingBytesSubtype.__str__cCstdS)Nz bad __bytes__)rrr r r __bytes__sz!MisbehavingBytesSubtype.__bytes__N)__name__ __module__ __qualname__rrrr r r r r s  rc@s~eZdZeeds ddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZdS) TestDecodeassertIscCs|||ud||fdS)Nz%r is %r) assertTrue)r arr r r rszTestDecode.assertIscCs8tjdtjd}|t|tj||tddS)Nz1.1) parse_float)jsonloadsdecimalDecimalr isinstance assertEqualr rvalr r r test_decimalszTestDecode.test_decimalcCs.tjdtd}|t|t||ddS)N1) parse_intg?)rrfloatrr r!r"r r r test_floatszTestDecode.test_floatcCs td}||ddddS)Nz,{ "key" : "value" , "k":"v" }valuev)keyk)rrr!r"r r r test_decoder_optimizations s z%TestDecode.test_decoder_optimizationscCsRd}|t|t|d}|t|t|d}|t|t|dS)Nz{}z[]"")r!rrevalr sr r r test_empty_objects's zTestDecode.test_empty_objectscCsd}gd}|t|t||tj|ddd||tjt|ddd|tj|td}||t||t|t|tj|tdddt|dS) Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd)kcw)art)hxm)qrt)pad)hoycS|Srr xr r r 4z3TestDecode.test_object_pairs_hook..object_pairs_hookcSrArr rBr r r rD6rEcSsdSrr rBr r r rD=rE)rG object_hook)r!rrr/loadrrtype)r r1podr r r test_object_pairs_hook/s$ z!TestDecode.test_object_pairs_hookcCsF||}t|dt|d\}}\}}||||||dS)Nrr4)sortedr)r sourcerr#rrcdr r r check_keys_reuse@s" zTestDecode.check_keys_reusecCsdd}||tjdS)N2[{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}]utf8)encoderRrrr0r r r test_keys_reuse_strFs zTestDecode.test_keys_reuse_strcCsd}||tjdS)NrS)rRrrr0r r r test_keys_reuse_unicodeJsz"TestDecode.test_keys_reuse_unicodecCsP|tdd|tdd|tddg|tddgdS)Nr.z[""])r!rrrr r r test_empty_stringsNszTestDecode.test_empty_stringscCsdtjj}|diidf|d|diidf|tdd|diidf|ddS)Nr z {"a": {}}rF z {"a": {}})rdecoder JSONDecoderr! raw_decodedict)r clsr r r test_raw_decodeTs     zTestDecode.test_raw_decodecCstjj}td}|||d||dd|d||dd|dttd}|||d||dd|d||dd|ddS)Nu"€"u€latin1)r u€)rr\r]rr!rr)r r`datar r r test_bytes_decodebs zTestDecode.test_bytes_decodecCstj}dD]}|t|jd||t|jd|qtddgtd\}}t|t|}|t|j|||t|j||dS)N) r:r<r>i1234 128931233 472389423)r+) rr\r] assertRaises ValueError scan_oncer^rNid)r jirCydiffr r r test_bounds_checkingns zTestDecode.test_bounds_checkingN)rrrhasattrrrr$r(r-r2rMrRrVrWrYrardrur r r r rs  r) __future__rrunittestr simplejsonrsimplejson.compatrrrrrrr r r r s