B VXY@sLddlmZddlmZmZmZmZmZddlZ ddZ GdddeZ dS))TestCase)StringIO long_typeb binary_typePY3NcCstrt|tr|dS|S)Nascii)r isinstancerdecode)sr M/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_dump.py as_text_types rc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)TestDumpcCs&t}ti|||ddS)Nz{})rjsondump assertEqualgetvalue)selfsior r r test_dump s zTestDump.test_dumpc CsnxhdD]`}|tt||k|tt|gd|k|ttd|id|kqWdS)N)NTFra)Z assertTruerloadsdumps)rcr r r test_constantss  zTestDump.test_constantsc CsNtddfdddddtddfg}xT|D]L\}}|tt||i||i|ttj||id d ||iq(W|ttjtd ixid d itd d ddigD]}xdD]}t|}d |t<tdd| D}|ttj|d |d||ttjd|id |dd|i|ttj|gd |d|gqWqWdS)Nbytes)g?z1.0) 10)Ttrue)Ffalse)NnulldZ100T) sort_keysotherZderpZherp)FTcss|]\}}t||fVqdS)N)r).0keyvalr r r *sz.TestDump.test_stringify_key..)skipkeysr#) rrrrrrZ assertRaises TypeErrordictitems)rr/kZexpectvr#Zv0Zv1r r r test_stringify_keys:     zTestDump.test_stringify_keycCs|tiddS)Nz{})rrr)rr r r test_dumps5szTestDump.test_dumpsc CsR|tjdddddd|tjdddtd dd td dd d iddddS)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}tt|}||ddS)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_dictcCs8Gdddt}tjdddg|dd}||dd 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 eZdZdZddZddZdS)z@TestDump.test_indent_unknown_type_acceptance..AwesomeIntz'An awesome reimplementation of integersc_s(t|dkr$t|dtr$|d|_dS)Nr)lenr int_int)rargskwargsr r r __init__^s zITestDump.test_indent_unknown_type_acceptance..AwesomeInt.__init__cSs t|dr|j|StddS)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}|tt||dS)Nri)rrrr)rlstr r r test_accumulatorvs zTestDump.test_accumulatorcCstxntddD]`}tddt|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_keysprr 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