B VXÿY‡ã@sLddlmZddlmZmZmZmZmZddlZ dd„Z Gdd„deƒZ dS)é)ÚTestCase)ÚStringIOÚ long_typeÚbÚ binary_typeÚPY3NcCstrt|tƒr| d¡S|S)NÚascii)rÚ isinstancerÚdecode)Ús©r úM/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_dump.pyÚ as_text_types rc@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)ÚTestDumpcCs&tƒ}t i|¡| | ¡d¡dS)Nz{})rÚjsonÚdumpÚ assertEqualÚgetvalue)ÚselfÚsior r r Ú test_dump s zTestDump.test_dumpc CsnxhdD]`}| t t |¡¡|k¡| t t |g¡¡d|k¡| t t d|i¡¡d|k¡qWdS)N)NTFrÚa)Z assertTruerÚloadsÚdumps)rÚcr r r Útest_constantss  zTestDump.test_constantsc CsNtdƒdfdddddtdƒdfg}xT|D]L\}}| t t ||i¡¡||i¡| t tj||id d ¡||i¡q(W| ttjtd i¡x¼id d itd ƒd ddigD]ž}x˜dD]}t|ƒ}d |t<tdd„|  ¡Dƒƒ}| t tj|d |d¡|¡| t tjd|id |d¡d|i¡| t tj|gd |d¡|g¡q²Wq¨WdS)NÚbytes)gð?z1.0)é Ú10)TÚtrue)FÚfalse)NÚnullédZ100T)Ú sort_keyséÚotherZderpZherpé)FTcss|]\}}t|ƒ|fVqdS)N)r)Ú.0ÚkeyÚvalr r r ú *sz.TestDump.test_stringify_key..)Úskipkeysr#Ú) rrrrrrZ assertRaisesÚ TypeErrorÚdictÚitems)rr/ÚkZexpectÚvr#Zv0Zv1r r r Útest_stringify_keys:     zTestDump.test_stringify_keycCs| t i¡d¡dS)Nz{})rrr)rr r r Ú test_dumps5szTestDump.test_dumpsc CsR| tjdddœddd¡| tjdddtd ƒdd td ƒdd d iddd¡dS)NFT)TF)r#z{"false": true, "true": false}r&g@g@ér$éÚ7rz3{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1})rrrr)rr r r Útest_encode_truefalse8szTestDump.test_encode_truefalsecCs.dddddg}t t |¡¡}| |d¡dS)N)Úoner$)Ztwor&)Zthreeé)Zfouré)Zfiver4z6{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5})rrÚ OrderedDictr)rr/r r r r Útest_ordered_dictFs zTestDump.test_ordered_dictcCs8Gdd„dtƒ}tjdddg|dƒd}| |d¡d S) a A test against the regression mentioned at `github issue 29`_. The indent parameter should accept any type which pretends to be an instance of int or long when it comes to being multiplied by strings, even if it is not actually an int or long, for backwards compatibility. .. _github issue 29: http://github.com/simplejson/simplejson/issue/29 c@s eZdZdZdd„Zdd„ZdS)z@TestDump.test_indent_unknown_type_acceptance..AwesomeIntz'An awesome reimplementation of integersc_s(t|ƒdkr$t|dtƒr$|d|_dS)Nr)Úlenr ÚintÚ_int)rÚargsÚkwargsr r r Ú__init__^s zITestDump.test_indent_unknown_type_acceptance..AwesomeInt.__init__cSs t|dƒr|j|Stdƒ‚dS)Nr?zOTo do non-awesome things with this object, please construct it from an integer!)Úhasattrr?ÚNotImplementedError)rr%r r r Ú__mul__is  zHTestDump.test_indent_unknown_type_acceptance..AwesomeInt.__mul__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rBrEr r r r Ú AwesomeInt[s rJrr$r&r9)Úindentz[ 0, 1, 2 ]N)Úobjectrrr)rrJr r r r Ú#test_indent_unknown_type_acceptanceNs z,TestDump.test_indent_unknown_type_acceptancecCs&dgd}| t t |¡¡|¡dS)Nri †)rrrr)rÚlstr r r Útest_accumulatorvs zTestDump.test_accumulatorcCstxntddƒD]`}tdd„t|ƒDƒƒ}tƒ}tj||dd| | ¡tj|dd¡| t | ¡¡|¡q WdS)Nr&é css|]}t|ƒ|fVqdS)N)Ústr)r'Úxr r r r*~sz*TestDump.test_sort_keys..T)r#) Úranger.rrrrrrr)rZnum_keysÚprr r r Útest_sort_keys{s zTestDump.test_sort_keysN) rFrGrHrrr2r3r7r<rMrOrUr r r r r s(r) ZunittestrZsimplejson.compatrrrrrÚ simplejsonrrrr r r r Ús