HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_plistlib.cpython-37.opt-1.pyc
B

��g��(@s6ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZejej
fZeje�d�ej
e�d�iZdZddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.g(ZGd/d0�d0ej�ZGd1d2�d2ej�ZGd3d4�d4ej�ZGd5d6�d6ej�Zed7k�r2e��dS)8�N)�support)�BytesIOs�

        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU
        WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO
        IiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
        LmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+YUJp
        Z0ludDwva2V5PgoJPGludGVnZXI+OTIyMzM3MjAzNjg1NDc3NTc2NDwvaW50
        ZWdlcj4KCTxrZXk+YUJpZ0ludDI8L2tleT4KCTxpbnRlZ2VyPjkyMjMzNzIw
        MzY4NTQ3NzU4NTI8L2ludGVnZXI+Cgk8a2V5PmFEYXRlPC9rZXk+Cgk8ZGF0
        ZT4yMDA0LTEwLTI2VDEwOjMzOjMzWjwvZGF0ZT4KCTxrZXk+YURpY3Q8L2tl
        eT4KCTxkaWN0PgoJCTxrZXk+YUZhbHNlVmFsdWU8L2tleT4KCQk8ZmFsc2Uv
        PgoJCTxrZXk+YVRydWVWYWx1ZTwva2V5PgoJCTx0cnVlLz4KCQk8a2V5PmFV
        bmljb2RlVmFsdWU8L2tleT4KCQk8c3RyaW5nPk3DpHNzaWcsIE1hw588L3N0
        cmluZz4KCQk8a2V5PmFub3RoZXJTdHJpbmc8L2tleT4KCQk8c3RyaW5nPiZs
        dDtoZWxsbyAmYW1wOyAnaGknIHRoZXJlISZndDs8L3N0cmluZz4KCQk8a2V5
        PmRlZXBlckRpY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5hPC9rZXk+CgkJ
        CTxpbnRlZ2VyPjE3PC9pbnRlZ2VyPgoJCQk8a2V5PmI8L2tleT4KCQkJPHJl
        YWw+MzIuNTwvcmVhbD4KCQkJPGtleT5jPC9rZXk+CgkJCTxhcnJheT4KCQkJ
        CTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8aW50ZWdlcj4yPC9pbnRlZ2Vy
        PgoJCQkJPHN0cmluZz50ZXh0PC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJPC9k
        aWN0PgoJPC9kaWN0PgoJPGtleT5hRmxvYXQ8L2tleT4KCTxyZWFsPjAuNTwv
        cmVhbD4KCTxrZXk+YUxpc3Q8L2tleT4KCTxhcnJheT4KCQk8c3RyaW5nPkE8
        L3N0cmluZz4KCQk8c3RyaW5nPkI8L3N0cmluZz4KCQk8aW50ZWdlcj4xMjwv
        aW50ZWdlcj4KCQk8cmVhbD4zMi41PC9yZWFsPgoJCTxhcnJheT4KCQkJPGlu
        dGVnZXI+MTwvaW50ZWdlcj4KCQkJPGludGVnZXI+MjwvaW50ZWdlcj4KCQkJ
        PGludGVnZXI+MzwvaW50ZWdlcj4KCQk8L2FycmF5PgoJPC9hcnJheT4KCTxr
        ZXk+YU5lZ2F0aXZlQmlnSW50PC9rZXk+Cgk8aW50ZWdlcj4tODAwMDAwMDAw
        MDA8L2ludGVnZXI+Cgk8a2V5PmFOZWdhdGl2ZUludDwva2V5PgoJPGludGVn
        ZXI+LTU8L2ludGVnZXI+Cgk8a2V5PmFTdHJpbmc8L2tleT4KCTxzdHJpbmc+
        RG9vZGFoPC9zdHJpbmc+Cgk8a2V5PmFuRW1wdHlEaWN0PC9rZXk+Cgk8ZGlj
        dC8+Cgk8a2V5PmFuRW1wdHlMaXN0PC9rZXk+Cgk8YXJyYXkvPgoJPGtleT5h
        bkludDwva2V5PgoJPGludGVnZXI+NzI4PC9pbnRlZ2VyPgoJPGtleT5uZXN0
        ZWREYXRhPC9rZXk+Cgk8YXJyYXk+CgkJPGRhdGE+CgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5k
        VzVyCgkJUGdBQkFnTThiRzkwY3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJ
        RFBHeHZkSE1nYjJZZ1ltbHVZWEo1CgkJSUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004Ykc5MGN5QnZaaUJpCgkJYVc1
        aGNua2daM1Z1YXo0QUFRSURQR3h2ZEhNZ2IyWWdZbWx1WVhKNUlHZDFibXMr
        QUFFQ0F6eHNiM1J6CgkJSUc5bUlHSnBibUZ5ZVNCbmRXNXJQZ0FCQWdNOGJH
        OTBjeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlECgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09CgkJPC9kYXRhPgoJPC9hcnJheT4K
        CTxrZXk+c29tZURhdGE8L2tleT4KCTxkYXRhPgoJUEdKcGJtRnllU0JuZFc1
        clBnPT0KCTwvZGF0YT4KCTxrZXk+c29tZU1vcmVEYXRhPC9rZXk+Cgk8ZGF0
        YT4KCVBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004CgliRzkwY3lCdlppQmlhVzVo
        Y25rZ1ozVnVhejRBQVFJRFBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytB
        QUVDQXp4cwoJYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVyUGdBQkFnTThiRzkw
        Y3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJRFBHeHYKCWRITWdiMllnWW1s
        dVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVy
        UGdBQkFnTThiRzkwCgljeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlEUEd4
        dmRITWdiMllnWW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09Cgk8L2RhdGE+Cgk8
        a2V5PsOFYmVucmFhPC9rZXk+Cgk8c3RyaW5nPlRoYXQgd2FzIGEgdW5pY29k
        ZSBrZXkuPC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4Ks\
        YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERITFCgpLzAxMjM0NTc2OFdh
        QmlnSW50WGFCaWdJbnQyVWFEYXRlVWFEaWN0VmFGbG9hdFVhTGlzdF8QD2FO
        ZWdhdGl2ZUJpZ0ludFxhTmVnYXRpdmVJbnRXYVN0cmluZ1thbkVtcHR5RGlj
        dFthbkVtcHR5TGlzdFVhbkludFpuZXN0ZWREYXRhWHNvbWVEYXRhXHNvbWVN
        b3JlRGF0YWcAxQBiAGUAbgByAGEAYRN/////////1BQAAAAAAAAAAIAAAAAA
        AAAsM0GcuX30AAAA1RUWFxgZGhscHR5bYUZhbHNlVmFsdWVaYVRydWVWYWx1
        ZV1hVW5pY29kZVZhbHVlXWFub3RoZXJTdHJpbmdaZGVlcGVyRGljdAgJawBN
        AOQAcwBzAGkAZwAsACAATQBhAN9fEBU8aGVsbG8gJiAnaGknIHRoZXJlIT7T
        HyAhIiMkUWFRYlFjEBEjQEBAAAAAAACjJSYnEAEQAlR0ZXh0Iz/gAAAAAAAA
        pSorLCMtUUFRQhAMoyUmLhADE////+1foOAAE//////////7VkRvb2RhaNCg
        EQLYoTZPEPo8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmlu
        YXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBv
        ZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxs
        b3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4A
        AQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBn
        dW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDTTxiaW5hcnkgZ3Vu
        az5fEBdUaGF0IHdhcyBhIHVuaWNvZGUga2V5LgAIACsAMwA8AEIASABPAFUA
        ZwB0AHwAiACUAJoApQCuALsAygDTAOQA7QD4AQQBDwEdASsBNgE3ATgBTwFn
        AW4BcAFyAXQBdgF/AYMBhQGHAYwBlQGbAZ0BnwGhAaUBpwGwAbkBwAHBAcIB
        xQHHAsQC0gAAAAAAAAIBAAAAAAAAADkAAAAAAAAAAAAAAAAAAALss<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" [
   <!ENTITY entity "replacement text">
  ]>
<plist version="1.0">
  <dict>
    <key>A</key>
    <string>&entity;</string>
  </dict>
</plist>
)ztoo short data�)z1too large offset_table_offset and offset_size = 1s"*)z9too large offset_table_offset and nonstandard offset_sizes$,)z'integer overflow in offset_table_offsets"��������)ztoo large top_objects"	)zinteger overflow in top_objects"��������	)z)too large num_objects and offset_size = 1s"�	)z1too large num_objects and nonstandard offset_sizes$�	)z%extremally large num_objects (32 bit)s"���	)z%extremally large num_objects (64 bit)s"�����	)zinteger overflow in num_objectss"��������	)zoffset_size = 0s"	)zref_size = 0s%�
)ztoo large offsets"*	)zinteger overflow in offsets)��������	)ztoo large array sizes'��
)z$extremally large array size (32-bit)s*����)z$extremally large array size (64-bit)s.������)zinteger overflow in array sizes.���������)ztoo large reference indexs%�
)z#integer overflow in reference indexs,���������)ztoo large bytes sizes%O#A)z$extremally large bytes size (32-bit)s(O���A)z$extremally large bytes size (64-bit)s,O�����A)zinteger overflow in bytes sizes,O��������A)ztoo large ASCII sizes%_#A)z$extremally large ASCII size (32-bit)s(_���A)z$extremally large ASCII size (64-bit)s,_�����A)zinteger overflow in ASCII sizes,_��������A)z
invalid ASCIIs#Q�
)ztoo large UTF-16 sizes'o �)z%extremally large UTF-16 size (32-bit)s*oO��� �)z%extremally large UTF-16 size (64-bit)s.o����� �)zinteger overflow in UTF-16 sizes.o�������� �)zinvalid UTF-16s$a�)znon-hashable keys&��)z&too large datetime (datetime overflow)s*3BP)z'too large datetime (timedelta overflow)s*3B�)zinvalid datetime (Infinity)s*3�)zinvalid datetime (NaN)s*3�c@seZdZdd�Zd@dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!dS)A�TestPlistlibcCs"yt�tj�WnYnXdS)N)�os�unlinkr�TESTFN)�self�r
�./usr/local/lib/python3.7/test/test_plistlib.py�tearDown�szTestPlistlib.tearDownNcCsvtddddddddggd	d
ddd
dtddddtdddddgd�d�dddgt�dddddd�t�t�d�}d|d<|S) N�Doodah�A�B�g@@@���g�?i�l����l,���l���� �@Jz<hello & 'hi' there!>u
Mässig, MaßTF��text)�a�b�c)Z
anotherStringZ
aUnicodeValueZ
aTrueValue�aFalseValueZ
deeperDicts
<binary gunk>s�<lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk>i��
��!)�aStringZaListZaFloatZanIntZaBigIntZaBigInt2ZaNegativeIntZaNegativeBigInt�aDictZsomeDataZsomeMoreDataZ
nestedDataZaDateZanEmptyDictZanEmptyListzThat was a unicode key.uÅbenraa)�dict�datetime�list)r	�fmt�plr
r
r�_create�s.
zTestPlistlib._createcCs0|��}|�|dd�|�|ddd�dS)Nrr
rrF)r%�assertEqual)r	r$r
r
r�test_create�szTestPlistlib.test_createc	Cs�|��}ttjd��}t�||�WdQRXttjd��}t�|�}WdQRX|�t|�t|��|�	t
tj|d�|�	t
tjd�dS)N�wb�rb�filename)r%�openrr�plistlib�dump�loadr&r �assertRaises�AttributeError)r	r$�fp�pl2r
r
r�test_io�szTestPlistlib.test_ioc
CsFt�g}x8tD]0}|j|d��|jttj||d�WdQRXqWdS)N)r#)�object�ALL_FORMATS�subTestr/�	TypeErrorr,�dumps)r	r$r#r
r
r�test_invalid_type�s
zTestPlistlib.test_invalid_typecCs�x~dD]v}xptD]h}|j||d��Ptj||d�}t�|�}|�|t�|�||�tj||d�}|�||�WdQRXqWqWx^tD]V}xPdddddddfD]2}|j||d��|jt	tj||d�WdQRXq�Wq�WdS)	N)r��i��il��ll����l����rl����)r$r#)r#lr�rl����)
r5r6r,r8�loads�assertIsInstance�intr&r/�
OverflowError)r	r$r#�datar2�data2r
r
r�test_int�s



 
zTestPlistlib.test_intcCs�x�dD]z}xttD]l}|j||d��Ttjt|�|d�}t�|�}|�|t�|�||�tj||d�}|�||�WdQRXqWqWdS)N)s
<binary gunk>s�<lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk>)r$r#)r#)	r5r6r,r8�	bytearrayr=r>�bytesr&)r	r$r#rAr2rBr
r
r�test_bytearray�s


zTestPlistlib.test_bytearraycCsJ|��}t�|�}t�|�}|�t|�t|��t�|�}|�||�dS)N)r%r,r8r=r&r )r	r$rAr2rBr
r
r�
test_bytes�s


zTestPlistlib.test_bytescCs4ddigggggggg}|�t�t�|��|�dS)N�testsaaaaaa)r&r,r=r8)r	rAr
r
r�test_indentation_array�sz#TestPlistlib.test_indentation_arrayc
CsDddddddddd	d
iiiiiiiii}|�t�t�|��|�dS)N�1�2�3�4�5�6�7�8�9saaaaaa)r&r,r=r8)r	rAr
r
r�test_indentation_dict�s(z"TestPlistlib.test_indentation_dictcCs<dddddigggggigii}|�t�t�|��|�dS)NrJrKrLrHsaaaaaa)r&r,r=r8)r	rAr
r
r�test_indentation_dict_mix�s z&TestPlistlib.test_indentation_dict_mixcCslxfdD]^}xXtD]P}|j||d��8tjt||d�}tj||d�}|�|t|d�WdQRXqWqWdS)N)TF)r#�use_builtin_types)rU)r#z2generated data was not identical to Apple's output)r5r6r,r=�TESTDATAr8r&)r	rUr#r$rAr
r
r�test_appleformatting�s


z!TestPlistlib.test_appleformattingc
Cs�d|_x|tD]t}|j|d��^|j|d�}tjt||d�}|�t|�t|�d�t�t|�}|�t|�t|�d�WdQRXqWdS)N)r#z2generated data was not identical to Apple's output)	ZmaxDiffr5r6r%r,r=rVr&r )r	r#r$r2r
r
r�test_appleformattingfromliteral�s
z,TestPlistlib.test_appleformattingfromliteralc
Cs�x�tD]�}|j|d��xt�}|j|d�}tj|||d�tjt|���|d�}|�t	|�t	|��t�t|����}|�t	|�t	|��WdQRXqWdS)N)r#)
r5r6rr%r,r-r.�getvaluer&r )r	r#rr$r2r
r
r�test_bytesios
zTestPlistlib.test_bytesiocCs�t��}d|d<d|d<d|d<x�tD]�}x�dD]�}|j||d���t�}tj||||d�tjt|���tjd	�}|�	t
|�t
|��|r�|�	t|���dddg�n|�	t|���dddg�WdQRXq0Wq&WdS)
Nrrrrrr)FT)r#�	sort_keys)�	dict_type)
�collections�OrderedDictr5r6rr,r-r.rYr&r r"�keys)r	r$r#r[rr2r
r
r�test_keysort_bytesios


z!TestPlistlib.test_keysort_bytesiocCs�t��}d|d<d|d<d|d<x�tD]�}x�dD]�}|j||d��ttj|||d�}tj|tjd	�}|�t|�t|��|r�|�t	|�
��dddg�n|�t	|�
��dddg�WdQRXq0Wq&WdS)
Nrrrrrr)FT)r#r[)r\)r]r^r5r6r,r8r=r&r r"r_)r	r$r#r[rAr2r
r
r�test_keysort's

zTestPlistlib.test_keysortc
Csbddi}xTtD]L}|j|d��6|jttj||d�t�}|jttj|||d�WdQRXqWdS)N�*�aNumber)r#)r5r6r/r7r,r8rr-)r	r$r#rr
r
r�test_keys_no_string9s
z TestPlistlib.test_keys_no_stringc
Cs�ddd�}x�tD]�}|j|d��rtj||ddd�}t�|�}|�|ddi�t�}tj|||ddd�|��}t�|���}|�|ddi�WdQRXqWdS)	NrcZaWord)rb�snake)r#TF)r#Zskipkeysr[re)	r5r6r,r8r=r&rr-rY)r	r$r#rAr2r1r
r
r�
test_skipkeysCs

zTestPlistlib.test_skipkeysc
Cs�dddd�}xztD]r}|j|d��\tj||d�}t�|�}|�|ddgddgddgd��|tjkrz|�|d	|d
�WdQRXqWdS)N)rr)r�)�first�second�third)r#rrrrgrhri)r5r6r,r8r=r&�
FMT_BINARY�assertIsNot)r	r$r#rAr2r
r
r�test_tuple_membersXs


zTestPlistlib.test_tuple_membersc
Cs�ddgddgddgd�}xptD]h}|j|d��Rtj||d�}t�|�}|�|ddgddgddgd��|�|d|d�WdQRXqWdS)	Nrrrrg)rhrirj)r#rhri)r5r6r,r8r=r&rl)r	r$r#rAr2r
r
r�test_list_membersks

zTestPlistlib.test_list_membersc
Cs�ddiddiddid�}xptD]h}|j|d��Rtj||d�}t�|�}|�|ddiddiddid��|�|d|d�WdQRXqWdS)	Nrrrr)rhrirj)r#rhri)r5r6r,r8r=r&rl)r	r$r#rAr2r
r
r�test_dict_members}s

zTestPlistlib.test_dict_membersc
Cs�x�td�D]�}t|�}d|}|dks.|dkrZtj|tjd�}|dkr�|�t�|�|�n&|�t��tj|tjd�WdQRXtj|tj	d�q
WdS)N�zstring containing %s� z
	)r#�
)
�range�chrr,r8�FMT_XMLr&r=r/�
ValueErrorrk)r	�irZ
testStringrAr
r
r�test_controlcharacters�sz#TestPlistlib.test_controlcharactersc
CsRddi}xDtD]<}|j|d��&tj||d�}|�t�|�|�WdQRXqWdS)NZpythonu🐍)r#)r5r6r,r8r&r=)r	r$r#rAr
r
r�test_non_bmp_characters�s

z$TestPlistlib.test_non_bmp_characterscCsrxltD]d}|j|d��N|�t��tjd|d�WdQRX|�t��tjd|d�WdQRXWdQRXqWdS)N)r#u�u�)r5r6r/�UnicodeEncodeErrorr,r8)r	r#r
r
r�test_lone_surrogates�s
z!TestPlistlib.test_lone_surrogatesc
CszxttD]l}|j|d��Vd}ddddg}t�tj||d��}t�tj||d��}|�||�|�||�WdQRXqWdS)N)r#�abcrrr)r5r6r,r=r8r&)r	r#Ztest1Ztest2Zresult1Zresult2r
r
r�test_nondictroot�s
zTestPlistlib.test_nondictrootcCs*x$dD]}|�ttjd|���qWdS)N)z<key>key inside an array</key>z-<key>key inside an array2</key><real>3</real>z&<true/><key>key inside an array3</key>z <plist><array>%s</array></plist>)r/rvr,r=�encode)r	rwr
r
r�test_invalidarray�s

zTestPlistlib.test_invalidarraycCsBx<dD]4}|�ttjd|���|�ttjd|���qWdS)N)z0<key><true/>k</key><string>compound key</string>z<key>single key</key>z<string>missing key</string>ze<key>k1</key><string>v1</string><real>5.3</real><key>k1</key><key>k2</key><string>double key</string>z<plist><dict>%s</dict></plist>z-<plist><array><dict>%s</dict></array></plist>)r/rvr,r=r~)r	rwr
r
r�test_invaliddict�s



zTestPlistlib.test_invaliddictcCs|�ttjd�dS)Ns-<plist><integer>not integer</integer></plist>)r/rvr,r=)r	r
r
r�test_invalidinteger�s
z TestPlistlib.test_invalidintegercCs|�ttjd�dS)Ns*<plist><integer>not real</integer></plist>)r/rvr,r=)r	r
r
r�test_invalidreal�s
zTestPlistlib.test_invalidrealc
Cs�ttj}x�ddtjfddtjfddtjfgD]n\}}}|jtjd�}|j|d��D|�	d|�}||�
d��|�}t�|�}|�
t|�t|��WdQRXq.WdS)	Nsutf-8zutf-8sutf-16z	utf-16-lez	utf-16-be)r#)�encodingsUTF-8)rVr,ru�codecs�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BEr%r6�replace�decoder~r=r&r )r	�baseZxml_encodingr�Zbomr$rAr2r
r
r�test_xml_encodings�s



zTestPlistlib.test_xml_encodingsc	Cs.|�tjd��tjttjd�WdQRXdS)Nz)XML entity declarations are not supported)r#)ZassertRaisesRegexr,�InvalidFileExceptionr=�XML_PLIST_WITH_ENTITYru)r	r
r
r�test_xml_plist_with_entity_decl�sz,TestPlistlib.test_xml_plist_with_entity_decl)N)"�__name__�
__module__�__qualname__rr%r'r3r9rCrFrGrIrSrTrWrXrZr`rardrfrmrnrorxryr{r}rr�r�r�r�r�r
r
r
rr�s>



rc@speZdZeddd�dd��Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�TestBinaryPlistlibr)�offset_size�ref_sizecGs�dg}d}g}x4|D],}|�|�|d��|�|�|t|�7}qWt�d||t|�d|�}|�|�|�|�tjd�|�tj	d�S)Nsbplist00��bigz>6xBBQQQrr)r#)
�append�to_bytes�len�struct�pack�extendr,r=�joinrk)r�r�ZobjectsrA�offsetZoffsets�x�tailr
r
rr��s




zTestBinaryPlistlib.decodecCsd}|�t�|�ddi�dS)Ns<bplist00�QaQbrr)r&r,r=)r	rAr
r
r�test_nonstandard_refs_size�sz-TestBinaryPlistlib.test_nonstandard_refs_sizecCs�x�ddddddddt�dd	d
d	dd�t�d�td�dd
gddd
ifD]H}|j|d��2tj|gdtjd�}|�t|�dt	|��WdQRXqDWdS)NFTi90g������^@�abcdeu
абвгдsabcdei�rrrriY)riY�12)r�i�)r#iL)
r!r,�DatarDr6r8rkZ
assertLessr��repr)r	r�rAr
r
r�test_dump_duplicatessz'TestBinaryPlistlib.test_dump_duplicatescCs�x�dddddddt�ddd	dd
d
�t�d�td�ddgd
ddif
D]v}|j|d��`tj|gdtjd�}t�|�\}}t|t	�r�t
|�}|�||�|�||�|�||�WdQRXqBWdS)NFTi90g������^@r�sabcdei�rrrriY)riYr�)r�r)r#)
r!r,r�rDr6r8rkr=�
isinstance�tupler"r&�assertIs)r	r�rArrr
r
r�
test_identitys
z TestBinaryPlistlib.test_identitycCs�g}|�|�t�tj|tjd��}|�|d|�gf}|d�|�t�tj|tjd��}|�|dd|�i}||d<t�tj|tjd��}|�|d|�dS)N)r#rr�)r�r,r=r8rkr�)r	rrr
r
r�test_cycless
zTestBinaryPlistlib.test_cyclesc	Cs�x�dD]�}dd�t|�D�}y|j|d
�ddd��}Wntk
rJYqXx4t|�D](}|�|t�|�t|�d�|d}qVW|�|d	�qWdS)N)i,i��cSs g|]}d|d�dd��qS)��rrgr�)r�)�.0rwr
r
r�
<listcomp>1sz8TestBinaryPlistlib.test_deep_nesting.<locals>.<listcomp>�Tseedrg)r�r�rrZseed)r�)rsr��RecursionErrorr>r"r&r�)r	�NZchunks�resultrwr
r
r�test_deep_nesting/s
z$TestBinaryPlistlib.test_deep_nestingc
Csdx^dD]V}|j|d��@tj�d�tj|d�}tj|tjd�}|�t�|�|�WdQRXqWdS)N)l����l)�tsr)Zseconds)r#)	r6r!ZutcfromtimestampZ	timedeltar,r8rkr&r=)r	r��drAr
r
r�test_large_timestamp=s

z'TestBinaryPlistlib.test_large_timestampcCsL|�|�d�d�|�|�d�d�|�|�d�d�|�|�d�d�dS)N��F�	T�r)r�r�r&)r	r
r
r�test_load_singletonsFsz'TestBinaryPlistlib.test_load_singletonscCsp|�|�d�d�|�|�d�d�|�|�d�d�|�|�d�d�|�|�d	�d
�|�|�d�d�dS)
Nsrs��s��i�s�ܺ�l�:�}s	#Eg����l�MW�	s	�ܺ�vT2l�����MW�	)r&r�)r	r
r
r�
test_load_intLsz TestBinaryPlistlib.test_load_intcs�tdd�tdd�dtdd�td	d
��}x(dD] �|��fdd
�td�D��q,WxV|D]N}|�d|d����2|�tj��|�t|g�d�WdQRXWdQRXqVWdS)Nrr�r�rqr�$�3�4�@)�p�������c3s|]}�|VqdS)Nr
)r��j)rwr
r�	<genexpr>Zsz6TestBinaryPlistlib.test_unsupported.<locals>.<genexpr>�ztoken Z02xs)rqr)rsr�r6r/r,r�r�rE)r	Zunsupported�tokenr
)rwr�test_unsupportedVs
 
z#TestBinaryPlistlib.test_unsupportedcCsXxRtD]J\}}|�|��2|�tj��tjd|tjd�WdQRXWdQRXqWdS)Nsbplist00)r#)�INVALID_BINARY_PLISTSr6r/r,r�r=rk)r	�namerAr
r
r�test_invalid_binary`sz&TestBinaryPlistlib.test_invalid_binaryN)r�r�r��staticmethodr�r�r�r�r�r�r�r�r�r�r�r
r
r
rr��s
	

r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestPlistlibDeprecatedc
Csddddd�d�}dddt�d�d�d�}|�tjtj�|�t��t�|tj�WdQRX|�t��t�	tj�}WdQRX|�
||�t�tj�ttjd��(}|�t��t�||�WdQRXWdQRXttjd��&}|�t��t�	|�}WdQRXWdQRX|�
||�dS)	Nrb�	�valuesbuffer)�key�altrA)r��subr(r))
r,r�Z
addCleanuprrr�assertWarns�DeprecationWarningZ
writePlistZ	readPlistr&rr+)r	Zpl_inZpl_outr2r1r
r
r�test_io_deprecatedhs, z)TestPlistlibDeprecated.test_io_deprecatedcCs�ddddd�d�}|�t��t�|�}WdQRX|�t��t�|�}WdQRX|�|t�|�|tdtddt�d�d�d��|�t��t�|�}WdQRX|�||�dS)Nrbr�r�sbuffer)r�r�rA)r�r�)	r�r�r,ZwritePlistToBytes�readPlistFromBytesr>r r&r�)r	r$rAr2rBr
r
r�test_bytes_deprecated�s$z,TestPlistlibDeprecated.test_bytes_deprecatedc	Cs�dt�d�i}ddi}t�|�}t�|�}|�||�|�||�tj|dd�}|�||�|�||�|�t��t�|�}WdQRX|�||�|�||�dS)Nr�shelloF)rU)r,r�r8r=r&r�r�r�)r	Zin_dataZout_data�bufZcurr
r
r�test_dataobject_deprecated�s

z1TestPlistlibDeprecated.test_dataobject_deprecatedN)r�r�r�r�r�r�r
r
r
rr�gs'r�c@seZdZdd�ZdS)�MiscTestCasecCsddh}tj|t|d�dS)NZPlistFormatZPLISTHEADER)�	blacklist)rZcheck__all__r,)r	r�r
r
r�test__all__�szMiscTestCase.test__all__N)r�r�r�r�r
r
r
rr��sr��__main__)r�Zunittestr,rr!r�Zbinasciir]rHr�iorrurkr5Z
a2b_base64rVr�r�ZTestCaserr�r�r�r��mainr
r
r
r�<module>s~3
h~Y