Your IP : 216.73.217.32


Current Path : /opt/alt/python36/lib64/python3.6/test/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/test/__pycache__/test_plistlib.cpython-36.opt-1.pyc

3

� f���)@s6ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZejej
fZejejd�ej
ejd�iZdZd`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�d�d�g(ZGdWdX�dXej�ZGdYdZ�dZej�ZGd[d\�d\ej�ZGd]d^�d^ej�Zed_k�r2ej�dS)��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>
�too short data��1too large offset_table_offset and offset_size = 1�"*�9too large offset_table_offset and nonstandard offset_size�$,�'integer overflow in offset_table_offset�"���������too large top_object�"	�integer overflow in top_object�"��������	�)too large num_objects and offset_size = 1�"�	�1too large num_objects and nonstandard offset_size�$�	�%extremally large num_objects (32 bit)�"���	�%extremally large num_objects (64 bit)�"�����	�integer overflow in num_objects�"��������	�offset_size = 0�"	�ref_size = 0�%�
�too large offset�"*	�integer overflow in offset�)��������	�too large array size�'��
�$extremally large array size (32-bit)�*�����$extremally large array size (64-bit)�.�������integer overflow in array size�.����������too large reference index�%�
�#integer overflow in reference index�,����������too large bytes size�%O#A�$extremally large bytes size (32-bit)�(O���A�$extremally large bytes size (64-bit)�,O�����A�integer overflow in bytes size�,O��������A�too large ASCII size�%_#A�$extremally large ASCII size (32-bit)�(_���A�$extremally large ASCII size (64-bit)�,_�����A�integer overflow in ASCII size�,_��������A�
invalid ASCII�#Q�
�too large UTF-16 size�'o ��%extremally large UTF-16 size (32-bit)�*oO��� ��%extremally large UTF-16 size (64-bit)�.o����� ��integer overflow in UTF-16 size�.o�������� ��invalid UTF-16�$a��non-hashable key�&���&too large datetime (datetime overflow)�*3BP�'too large datetime (timedelta overflow)�*3B��invalid datetime (Infinity)�*3��invalid datetime (NaN)�*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�TestPlistlibc	Cs"ytjtj�WnYnXdS)N)�os�unlinkr�TESTFN)�self�rY�7/opt/alt/python36/lib64/python3.6/test/test_plistlib.py�tearDown�szTestPlistlib.tearDownNcCs~tddddddddggd	d
d!d#d$d%tddddtdddddgd�d�dddddgtjdddddd�t�t�d�}d|d<|S)&N�Doodah�A�B�g@@@���g�?i��?�,�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>�
i���!)�aStringZaListZaFloatZanIntZaBigIntZaBigInt2ZaNegativeIntZaNegativeBigInt�aDictZsomeDataZsomeMoreDataZ
nestedDataZaDateZanEmptyDictZanEmptyListzThat was a unicode key.uÅbenraall����ll,���l���� �@J)�dict�datetime�list)rX�fmt�plrYrYrZ�_create�s.
zTestPlistlib._createcCs0|j�}|j|dd�|j|ddd�dS)Nror\rprkF)rw�assertEqual)rXrvrYrYrZ�test_create�szTestPlistlib.test_createcCs�|j�}ttjd��}tj||�WdQRXttjd��}tj|�}WdQRX|jt|�t|��|j	t
tj|d�|j	t
tjd�dS)N�wb�rb�filename)rw�openrrW�plistlib�dump�loadrxrr�assertRaises�AttributeError)rXrv�fp�pl2rYrYrZ�test_io�szTestPlistlib.test_iocCsFt�g}x8tD]0}|j|d��|jttj||d�WdQRXqWdS)N)ru)�object�ALL_FORMATS�subTestr��	TypeErrorr~�dumps)rXrvrurYrYrZ�test_invalid_type�s
zTestPlistlib.test_invalid_typecCs�x~dD]v}xptD]h}|j||d	��Ptj||d
�}tj|�}|j|t�|j||�tj||d
�}|j||�WdQRXqWqWx`tD]X}xRdddddddfD]4}|j||d	��|jt	tj||d
�WdQRX�q�Wq�WdS) Nrra�r`�� rc�@)rvru)ru���r�i��l����l�����l�����l���)rr�r�r�r�r�r�r�r�r`r�llll����)
r�r�r~r��loads�assertIsInstance�intrxr��
OverflowError)rXrvru�datar��data2rYrYrZ�test_int�s


 
zTestPlistlib.test_intc
Cs�x�dddfD]z}xttD]l}|j||d��Ttjt|�|d�}tj|�}|j|t�|j||�tj||d�}|j||�WdQRXqWqWdS)Ns
<binary gunk>s<lots of binary gunk>rl)rvru)ru)	r�r�r~r��	bytearrayr�r��bytesrx)rXrvrur�r�r�rYrYrZ�test_bytearray�s

zTestPlistlib.test_bytearraycCsX|j�}tj|�}tj|�}|j|tj�|jt|�t|��tj|�}|j||�dS)N)rwr~r�r�ZassertNotIsInstance�
_InternalDictrxrr)rXrvr�r�r�rYrYrZ�
test_bytes�s


zTestPlistlib.test_bytescCs4ddigggggggg}|jtjtj|��|�dS)N�testsaaaaaa)rxr~r�r�)rXr�rYrYrZ�test_indentation_array�sz#TestPlistlib.test_indentation_arrayc
CsDddddddddd	d
iiiiiiiii}|jtjtj|��|�dS)N�1�2�3�4�5�6�7�8�9saaaaaa)rxr~r�r�)rXr�rYrYrZ�test_indentation_dict�s(z"TestPlistlib.test_indentation_dictcCs<dddddigggggigii}|jtjtj|��|�dS)Nr�r�r�r�saaaaaa)rxr~r�r�)rXr�rYrYrZ�test_indentation_dict_mix�s z&TestPlistlib.test_indentation_dict_mixc
CslxfdD]^}xXtD]P}|j||d��8tjt||d�}tj||d�}|j|t|d�WdQRXqWqWdS)NTF)ru�use_builtin_types)r�)ruz2generated data was not identical to Apple's output)TF)r�r�r~r��TESTDATAr�rx)rXr�rurvr�rYrYrZ�test_appleformatting�s


z!TestPlistlib.test_appleformattingcCs�d|_x|tD]t}|j|d��^|j|d�}tjt||d�}|jt|�t|�d�tjt|�}|jt|�t|�d�WdQRXqWdS)N)ruz2generated data was not identical to Apple's output)	ZmaxDiffr�r�rwr~r�r�rxrr)rXrurvr�rYrYrZ�test_appleformattingfromliteral�s
z,TestPlistlib.test_appleformattingfromliteralc
Cs�x�tD]�}|j|d��xt�}|j|d�}tj|||d�tjt|j��|d�}|jt	|�t	|��tjt|j���}|jt	|�t	|��WdQRXqWdS)N)ru)
r�r�rrwr~rr��getvaluerxrr)rXrurirvr�rYrYrZ�test_bytesios
zTestPlistlib.test_bytesiocCs�tj�}d|d<d|d<d|d<x�tD]�}x�dD]�}|j||d	���t�}tj||||d	�tjt|j��tjd
�}|j	t
|�t
|��|r�|j	t|j��dddg�n|j	t|j��dddg�WdQRXq0Wq&WdS)Nr`rirarhrbrjFT)ru�	sort_keys)�	dict_type)FT)
�collections�OrderedDictr�r�rr~rr�r�rxrrrt�keys)rXrvrur�rir�rYrYrZ�test_keysort_bytesios


z!TestPlistlib.test_keysort_bytesiocCs�tj�}d|d<d|d<d|d<x�tD]�}x�dD]�}|j||d	��ttj|||d	�}tj|tjd
�}|jt|�t|��|r�|jt	|j
��dddg�n|jt	|j
��dddg�WdQRXq0Wq&WdS)Nr`rirarhrbrjFT)rur�)r�)FT)r�r�r�r�r~r�r�rxrrrtr�)rXrvrur�r�r�rYrYrZ�test_keysort(s

zTestPlistlib.test_keysortcCsbddi}xTtD]L}|j|d��6|jttj||d�t�}|jttj|||d�WdQRXqWdS)N�*�aNumber)ru)r�r�r�r�r~r�rr)rXrvrurirYrYrZ�test_keys_no_string:s
z TestPlistlib.test_keys_no_stringcCs�ddd�}x�tD]�}|j|d��rtj||ddd�}tj|�}|j|ddi�t�}tj|||ddd�|j�}tj|j��}|j|ddi�WdQRXqWdS)	Nr�ZaWord)r��snake)ruTF)ruZskipkeysr�r�)	r�r�r~r�r�rxrrr�)rXrvrur�r�r�rYrYrZ�
test_skipkeysDs

zTestPlistlib.test_skipkeyscCs�d	d
dd�}xztD]r}|j|d��\tj||d�}tj|�}|j|ddgddgddgd��|tjkrz|j|d|d�WdQRXqWdS)Nr`rarb�)�first�second�third)rur�r�)r`ra)r`ra)rbr�)r�r�r~r�r�rx�
FMT_BINARY�assertIsNot)rXrvrur�r�rYrYrZ�test_tuple_membersYs


zTestPlistlib.test_tuple_memberscCs�ddgddgddgd�}xptD]h}|j|d��Rtj||d�}tj|�}|j|ddgddgddgd��|j|d|d�WdQRXqWdS)	Nr`rarbr�)r�r�r�)rur�r�)r�r�r~r�r�rxr�)rXrvrur�r�rYrYrZ�test_list_membersls

zTestPlistlib.test_list_memberscCs�ddiddiddid�}xptD]h}|j|d��Rtj||d�}tj|�}|j|ddiddiddid��|j|d|d�WdQRXqWdS)	Nrhr`rira)r�r�r�)rur�r�)r�r�r~r�r�rxr�)rXrvrur�r�rYrYrZ�test_dict_members~s

zTestPlistlib.test_dict_memberscCs�x�td�D]�}t|�}d|}|dks.|dkrZtj|tjd�}|dkr�|jtj|�|�n&|jt��tj|tjd�WdQRXtj|tj	d�q
WdS)N�zstring containing %sr�z
	)ru�
)
�range�chrr~r��FMT_XMLrxr�r��
ValueErrorr�)rX�irjZ
testStringr�rYrYrZ�test_controlcharacters�sz#TestPlistlib.test_controlcharacterscCsRddi}xDtD]<}|j|d��&tj||d�}|jtj|�|�WdQRXqWdS)N�pythonu🐍)ru)r�r�r~r�rxr�)rXrvrur�rYrYrZ�test_non_bmp_characters�s

z$TestPlistlib.test_non_bmp_characterscCsrxltD]d}|j|d��N|jt��tjd|d�WdQRX|jt��tjd|d�WdQRXWdQRXqWdS)N)ruu�u�)r�r�r��UnicodeEncodeErrorr~r�)rXrurYrYrZ�test_lone_surrogates�s
z!TestPlistlib.test_lone_surrogatesc
CszxttD]l}|j|d��Vd}ddddg}tjtj||d��}tjtj||d��}|j||�|j||�WdQRXqWdS)N)ru�abcr`rarb)r�r�r~r�r�rx)rXruZtest1Ztest2Zresult1Zresult2rYrYrZ�test_nondictroot�s
zTestPlistlib.test_nondictrootcCs*x$dD]}|jttjd|j��qWdS)N�<key>key inside an array</key>�-<key>key inside an array2</key><real>3</real>�&<true/><key>key inside an array3</key>z <plist><array>%s</array></plist>)r�r�r�)r�r�r~r��encode)rXr�rYrYrZ�test_invalidarray�s

zTestPlistlib.test_invalidarraycCsBx<dD]4}|jttjd|j��|jttjd|j��qWdS)N�0<key><true/>k</key><string>compound key</string>�<key>single key</key>�<string>missing key</string>�e<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�r�r�r�)r�r�r~r�r�)rXr�rYrYrZ�test_invaliddict�s

zTestPlistlib.test_invaliddictcCs|jttjd�dS)Ns-<plist><integer>not integer</integer></plist>)r�r�r~r�)rXrYrYrZ�test_invalidinteger�s
z TestPlistlib.test_invalidintegercCs|jttjd�dS)Ns*<plist><integer>not real</integer></plist>)r�r�r~r�)rXrYrYrZ�test_invalidreal�s
zTestPlistlib.test_invalidrealcCs�ttj}x�ddtjfddtjfddtjfgD]n\}}}|jtjd�}|j|d��D|j	d|�}||j
d�j|�}tj|�}|j
t|�t|��WdQRXq.WdS)	Nsutf-8zutf-8sutf-16z	utf-16-lez	utf-16-be)ru)�encodingsUTF-8)r�r~r��codecs�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BErwr��replace�decoder�r�rxrr)rX�baseZxml_encodingr�Zbomrvr�r�rYrYrZ�test_xml_encodings�s



zTestPlistlib.test_xml_encodingscCs.|jtjd��tjttjd�WdQRXdS)Nz)XML entity declarations are not supported)ru)ZassertRaisesRegexr~�InvalidFileExceptionr��XML_PLIST_WITH_ENTITYr�)rXrYrYrZ�test_xml_plist_with_entity_decl�sz,TestPlistlib.test_xml_plist_with_entity_decl)N)"�__name__�
__module__�__qualname__r[rwryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rYrYrYrZrT�s>

	

rTc@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],}|j|j|d��|j|�|t|�7}qWtjd||t|�d|�}|j|�|j|�tjdj|�tj	d�S)Nsbplist00r��bigz>6xBBQQQrr)ru)
�append�to_bytes�len�structZpack�extendr~r��joinr�)r�r�Zobjectsr��offsetZoffsets�x�tailrYrYrZr��s




zTestBinaryPlistlib.decodecCsd}|jtj|�ddi�dS)Ns<bplist00�QaQbrhri)rxr~r�)rXr�rYrYrZ�test_nonstandard_refs_size�sz-TestBinaryPlistlib.test_nonstandard_refs_sizecCs�x�ddddddddtjdd	d
d	dd�tjd�td�dd
gddd
ifD]H}|j|d��2tj|gdtjd�}|jt|�dt	|��WdQRXqDWdS)NFTi90g������^@�abcdeu
абвгдsabcdei�rlrmrnr_�Y�12)ri�)ruiL)r_r)
rsr~�Datar�r�r�r�Z
assertLessr��repr)rXrr�rYrYrZ�test_dump_duplicatessz'TestBinaryPlistlib.test_dump_duplicatescCs�x�dddddddtjddd	dd
d
�tjd�td�ddgdd
dif
D]v}|j|d��`tj|gdtjd�}tj|�\}}t|t	�r�t
|�}|j||�|j||�|j||�WdQRXqBWdS)NFTi90g������^@rsabcdei�rlrmrnr_�Yr)rra)ru)r_r)
rsr~rr�r�r�r�r��
isinstance�tuplertrx�assertIs)rXrr�rhrirYrYrZ�
test_identitys
z TestBinaryPlistlib.test_identitycCs�g}|j|�tjtj|tjd��}|j|d|�gf}|dj|�tjtj|tjd��}|j|dd|�i}||d<tjtj|tjd��}|j|d|�dS)N)rurr)r�r~r�r�r�r)rXrhrirYrYrZ�test_cycless
zTestBinaryPlistlib.test_cyclesc
Cs�x�dD]�}dd�t|�D�}y|j|d�ddd��}Wntk
rJYqXx4t|�D](}|j|t�|jt|�d�|d	}qVW|j|d
�qWdS)
N�,順cSs g|]}d|djdd��qS)��r`r�r�)r�)�.0r�rYrYrZ�
<listcomp>2sz8TestBinaryPlistlib.test_deep_nesting.<locals>.<listcomp>�Tseedr�)r�r�r`rZseed)rr)r)r�r��RecursionErrorr�rtrxr�)rX�NZchunks�resultr�rYrYrZ�test_deep_nesting0s
z$TestBinaryPlistlib.test_deep_nestingcCsdx^dD]V}|j|d��@tjjd�tj|d�}tj|tjd�}|jtj|�|�WdQRXqWdS)
Nra�r`)�tsr)Zseconds)ruli�����)rr)	r�rsZutcfromtimestampZ	timedeltar~r�r�rxr�)rXr�dr�rYrYrZ�test_large_timestamp>s

z'TestBinaryPlistlib.test_large_timestampcCsL|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�dS)N��F�	T�r)rr�rx)rXrYrYrZ�test_load_singletonsGsz'TestBinaryPlistlib.test_load_singletonscCsp|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd	�d
�|j|jd�d
�dS)Nsrs��s��i�s�ܺ�l�:�}s	#Eg����l�MW�	s	�ܺ�vT2l�MW�	l�����MW�	)rxr�)rXrYrYrZ�
test_load_intMsz TestBinaryPlistlib.test_load_intcs�tdd�tdd�dtdd�td	d
��}x(dD] �|j�fdd�td�D��q,WxV|D]N}|jd|d����2|jtj��|jt|g�d�WdQRXWdQRXqVWdS)Nr`r�rl�r�rn�$�3�4r��p�������c3s|]}�|VqdS)NrY)r�j)r�rYrZ�	<genexpr>[sz6TestBinaryPlistlib.test_unsupported.<locals>.<genexpr>r�ztoken Z02xr!)r�rn)r,r-r.r/r0r1s)r�r�r�r�r~r�r�r�)rXZunsupported�tokenrY)r�rZ�test_unsupportedWs
 
z#TestBinaryPlistlib.test_unsupportedcCsXxRtD]J\}}|j|��2|jtj��tjd|tjd�WdQRXWdQRXqWdS)Nsbplist00)ru)�INVALID_BINARY_PLISTSr�r�r~r�r�r�)rX�namer�rYrYrZ�test_invalid_binaryasz&TestBinaryPlistlib.test_invalid_binaryN)r�r�r��staticmethodr�rr
rrrr r%r'r5r8rYrYrYrZr��s
	

r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestPlistlibDeprecatedc-Cs&ddddd�d�}tjdtjddtjd�d��d��}|jtjtj�|jt��tj	|tj�WdQRX|jt��tj
tj�}WdQRX|j||�tjtj�t
tjd��(}|jt��tj	||�WdQRXWdQRXt
tjd��&}|jt��tj
|�}WdQRXWdQRX|j||�dS)	Nr��	�valuesbuffer)�key�altr�)r=�subrzr{)r~r�rZ
addCleanuprrVrW�assertWarns�DeprecationWarningZ
writePlistZ	readPlistrxrUr})rXZpl_inZpl_outr�r�rYrYrZ�test_io_deprecatedis0 z)TestPlistlibDeprecated.test_io_deprecatedcCs�ddddd�d�}|jt��tj|�}WdQRX|jt��tj|�}WdQRX|j|tj�|j|tjdtjddtjd�d�d��|jt��tj|�}WdQRX|j||�dS)Nr�r;r<sbuffer)r=r>r�)r=r?)	r@rAr~ZwritePlistToBytes�readPlistFromBytesr�r�rxr)rXrvr�r�r�rYrYrZ�test_bytes_deprecated�s$
z,TestPlistlibDeprecated.test_bytes_deprecatedc
Cs�dtjd�i}ddi}tj|�}tj|�}|j||�|j||�tj|dd�}|j||�|j||�|jt��tj|�}WdQRX|j||�|j||�dS)Nr=shelloF)r�)r~rr�r�rxr@rArC)rXZin_dataZout_dataZbufZcurrYrYrZ�test_dataobject_deprecated�s

z1TestPlistlibDeprecated.test_dataobject_deprecatedN)r�r�r�rBrDrErYrYrYrZr:hs'r:c@seZdZdd�ZdS)�MiscTestCasecCsddh}tj|t|d�dS)NZPlistFormatZPLISTHEADER)�	blacklist)rZcheck__all__r~)rXrGrYrYrZ�test__all__�szMiscTestCase.test__all__N)r�r�r�rHrYrYrYrZrF�srF�__main__)rr)rr)rr	)r
r)rr
)rr)rr)rr)rr)rr)rr)rr)rr)rr)r r!)r"r#)r$r%)r&r')r(r))r*r+)r,r-)r.r/)r0r1)r2r3)r4r5)r6r7)r8r9)r:r;)r<r=)r>r?)r@rA)rBrC)rDrE)rFrG)rHrI)rJrK)rLrM)rNrO)rPrQ)rRrS)r�Zunittestr~rUrsr�Zbinasciir�r�r�iorr�r�r�Z
a2b_base64r�r�r6ZTestCaserTr�r:rFr��mainrYrYrYrZ�<module>s�3	i~Y