
    <e                     r   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ ej        ej        fZej         ej        d          ej         ej        d          d ej        d	          iZd
Zg dZ G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z  ej!        ej"        dk    d           G d dej                              Z#e$dk    r ej%                     dS dS )    N)support)	os_helper)BytesIO)UIDs  
        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
        xQHHAsQC0gAAAAAAAAIBAAAAAAAAADkAAAAAAAAAAAAAAAAAAALsKEYED_ARCHIVEs~  
        YnBsaXN0MDDUAQIDBAUGHB1YJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVy
        VCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVnB5dHlwZVYkY2xhc3NZTlMu
        c3RyaW5nEAGAAl8QE0tleUFyY2hpdmUgVUlEIFRlc3TTEBESExQZWiRjbGFz
        c25hbWVYJGNsYXNzZXNbJGNsYXNzaGludHNfEBdPQ19CdWlsdGluUHl0aG9u
        VW5pY29kZaQVFhcYXxAXT0NfQnVpbHRpblB5dGhvblVuaWNvZGVfEBBPQ19Q
        eXRob25Vbmljb2RlWE5TU3RyaW5nWE5TT2JqZWN0ohobXxAPT0NfUHl0aG9u
        U3RyaW5nWE5TU3RyaW5nXxAPTlNLZXllZEFyY2hpdmVy0R4fVHJvb3SAAQAI
        ABEAGgAjAC0AMgA3ADsAQQBIAE8AVgBgAGIAZAB6AIEAjACVAKEAuwDAANoA
        7QD2AP8BAgEUAR0BLwEyATcAAAAAAAACAQAAAAAAAAAgAAAAAAAAAAAAAAAA
        AAABOQ==s  <?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>
)()ztoo 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"                         )ztoo large top_objects"                               	)zinteger 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"                            	)zinteger overflow in num_objectss"                         	)zoffset_size = 0s"                                 	)zref_size = 0s%    
                             )ztoo large offsets"    *                            	)zinteger overflow in offsets)                                	)ztoo large array sizes'                                 )z$extremally large array size (32-bit)s*                                )z$extremally large array size (64-bit)s.                                   )zinteger overflow in array sizes.                                )ztoo large reference indexs%    
                            )z#integer overflow in reference indexs,                                )ztoo 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                            )zinteger overflow in bytes sizes,   OA                            )ztoo large ASCII sizes%   _ #A                            )z$extremally large ASCII size (32-bit)s(   _A                            )z$extremally large ASCII size (64-bit)s,   _   A                            )zinteger overflow in ASCII sizes,   _A                            )zinvalid ASCIIs#   Q                            
)ztoo large UTF-16 sizes'   o                               )z%extremally large UTF-16 size (32-bit)s*   oO                              )z%extremally large UTF-16 size (64-bit)s.   o                                 )zinteger overflow in UTF-16 sizes.   o                              )zinvalid UTF-16s$   a                             )znon-hashable keys&                               )z&too large datetime (datetime overflow)s*   3BP                                  )z'too large datetime (timedelta overflow)s*   3B                                  )zinvalid datetime (Infinity)s*   3                                  )zinvalid datetime (NaN)s*   3                                  c                      e Zd Zd Zd/dZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-d- Z.d. Z/dS )0TestPlistlibc                 T    	 t          j        t          j                   d S #  Y d S xY wN)osunlinkr   TESTFNselfs    )/usr/lib/python3.11/test/test_plistlib.pytearDownzTestPlistlib.tearDown  s0    	Ii&'''''	DDs   " 'Nc                    t          dddddg dgddd	d
ddt          ddddt          ddg d                    dddgt          j        dddddd          t                      t                                }d|d<   |S )NDoodahAB   g     @@@)         g      ?i  l    l   ,        l  @J z<hello & 'hi' there!>u   Mässig, MaßTF   )r   r   textabc)anotherStringaUnicodeValue
aTrueValueaFalseValue
deeperDict   <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> <lots of binary gunk>   
      !   )aStringaListaFloatanIntaBigIntaBigInt2aNegativeIntaNegativeBigIntaDictsomeDatasomeMoreData
nestedDataaDateanEmptyDictanEmptyListzThat was a unicode key.u   Åbenraa)dictdatetimelist)r   fmtpls      r   _createzTestPlistlib._create  s    Ryyy1"#*51!"???   (@?@%dBBB??&&&&+
 
 
. 5<	r   c                     |                                  }|                     |d         d           |                     |d         d         d           d S )Nr.   r   r6   r&   F)rB   assertEqual)r   rA   s     r   test_createzTestPlistlib.test_create  sN    \\^^I111G]3U;;;;;r   c                 B   |                                  }t          t          j        d          5 }t	          j        ||           d d d            n# 1 swxY w Y   t          t          j        d          5 }t	          j        |          }d d d            n# 1 swxY w Y   |                     t          |          t          |                     | 	                    t          t          j        |d           | 	                    t          t          j        d           d S )Nwbrbfilename)rB   openr   r   plistlibdumploadrD   r=   assertRaisesAttributeError)r   rA   fppl2s       r   test_iozTestPlistlib.test_io  s\   \\^^)"D)) 	"RM"b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" )"D)) 	$R-##C	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	b499---.(-ZHHH.(-DDDDDs#   AAA6BBBc                     t                      g}t          D ]X}|                     |          5  |                     t          t
          j        ||           d d d            n# 1 swxY w Y   Yd S Nr@   )objectALL_FORMATSsubTestrN   	TypeErrorrK   dumps)r   rA   r@   s      r   test_invalid_typezTestPlistlib.test_invalid_type  s    xx\ 	J 	JC#&& J J!!)X^RS!IIIJ J J J J J J J J J J J J J J	J 	Js   )A$$A(	+A(	c                    |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d           d d d            d S # 1 swxY w Y   d S )Nz
not an int            i)rN   rY   r   
ValueErrorr   s    r   test_invalid_uidzTestPlistlib.test_invalid_uid  sp   y)) 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	z** 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	z** 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s0   7;;A88A<?A<B::B>B>c           	      x   dD ]}t           D ]}|                     ||          5  t          j        ||          }t          j        |          }|                     |t                     |                     ||           t          j        ||          }|                     ||           d d d            n# 1 swxY w Y   t           D ]l}dddz  dz
  dddz   fD ]Y}|                     ||          5  |                     t          t          j        ||           d d d            n# 1 swxY w Y   Zmd S )	N)r         i     l            l    l    r   l         rA   r@   rU   l           r      r   l         )
rW   rX   rK   rZ   loadsassertIsInstanceintrD   rN   OverflowErrorr   rA   r@   datarQ   data2s         r   test_intzTestPlistlib.test_int  s   0 		2 		2B" 2 2\\RS\11 2 2#>"#666D"...C))#s333$$R---$N3C888E$$T51112 2 2 2 2 2 2 2 2 2 2 2 2 2 22  	3 	3C"AHQJc	B 3 3\\RS\11 3 3%%mX^&(c & 3 3 33 3 3 3 3 3 3 3 3 3 3 3 3 3 33	3 	3s$   BB99B= B=8)D--D14D1c                    dD ]}t           D ]}|                     ||          5  t          j        t	          |          |          }t          j        |          }|                     |t                     |                     ||           t          j        ||          }|                     ||           d d d            n# 1 swxY w Y   ƌd S )N)r(   r)   re   rU   )	rW   rX   rK   rZ   	bytearrayrg   rh   bytesrD   rk   s         r   test_bytearrayzTestPlistlib.test_bytearray  s   K 	2 	2B" 2 2\\RS\11 2 2#>)B--SAAAD"...C))#u555$$S"---$N3C888E$$T51112 2 2 2 2 2 2 2 2 2 2 2 2 2 22	2 	2s   BCC
C
c                 2   |                                  }t          j        |          }t          j        |          }|                     t          |          t          |                     t          j        |          }|                     ||           d S r   )rB   rK   rZ   rg   rD   r=   )r   rA   rl   rQ   rm   s        r   
test_byteszTestPlistlib.test_bytes  sz    \\^^~b!!nT""b499---s##u%%%%%r   c                     ddigggggggg}|                      t          j        t          j        |                    |           d S )Ntest   aaaaaarD   rK   rg   rZ   r   rl   s     r   test_indentation_arrayz#TestPlistlib.test_indentation_array  sT    	*+,-./012t(<(<==tDDDDDr   c           
          ddddddddd	d
iiiiiiiii}|                      t          j        t          j        |                    |           d S )N123456789rw   rx   ry   s     r   test_indentation_dictz"TestPlistlib.test_indentation_dict  sd    cC#cC#Y?O9P3Q-R'S!TUVWt(<(<==tDDDDDr   c                     dddddigggggigii}|                      t          j        t          j        |                    |           d S )Nr|   r}   r~   rv   rw   rx   ry   s     r   test_indentation_dict_mixz&TestPlistlib.test_indentation_dict_mix  s]    cS	':&;%<$=#>"?@ABCt(<(<==tDDDDDr   c                    t          d          }|                     t          j        t          j        |t          j                            |           t          d          t          d          t          d          t          d          t          d          t          d          d	}|                     t          j        t          j        |t          j                            |           d S )
Nr   rU   r   r   rb   rc   rd   l            )uid0uid2uid8uid16uid32uid63)r   rD   rK   rg   rZ   
FMT_BINARY)r   rl   	dict_datas      r   test_uidzTestPlistlib.test_uid  s    1vvtAT(U(U(UVVX\]]]FFFFKK\\\\\\
 
	 	yhFY(Z(Z(Z[[]fgggggr   c                 Z    t          d          }|                     |j        d           d S Nr   )r   rD   rl   )r   uids     r   test_uid_datazTestPlistlib.test_uid_data  s+    !ff1%%%%%r   c                    |                      t          d          t          d                     |                     t          d          t          d                     |                     t          d          d           d S )Nr   r   znot uid)rD   r   assertNotEqualr   s    r   test_uid_eqzTestPlistlib.test_uid_eq  sh    QQ(((CFFCFF+++CFFI.....r   c                     |                      t          t          d                    t          t          d                               d S r   )rD   hashr   r   s    r   test_uid_hashzTestPlistlib.test_uid_hash!  s6    c!fftCFF||44444r   c                 f    |                      t          t          d                    d           d S )Nr   zUID(1))rD   reprr   r   s    r   test_uid_reprzTestPlistlib.test_uid_repr$  s*    c!ffx00000r   c                 p    |                      t          j        t          d                    d           d S r   )rD   operatorindexr   r   s    r   test_uid_indexzTestPlistlib.test_uid_index'  s.    A//33333r   c           
          t          t          j        dz             D ]X}|                     t          j        t          j        t          d          |                    t          d                     Yd S )Nr      )protocol)rangepickleHIGHEST_PROTOCOLrD   rg   rZ   r   )r   protos     r   test_uid_picklezTestPlistlib.test_uid_pickle*  sq    62Q677 	[ 	[EV\&,s2ww*O*O*OPPRUVXRYRYZZZZ	[ 	[r   c                    |                      t          j        t          d                    t          d                     |                      t          j        t          d                    t          d                     d S r   )rD   copyr   deepcopyr   s    r   test_uid_copyzTestPlistlib.test_uid_copy.  s`    3q66**CFF333s1vv..A77777r   c                 $   t           D ]}|                     |          5  t          j        t          |                   }t          j        ||          }|                     |t          |         d           d d d            n# 1 swxY w Y   d S NrU   z2generated data was not identical to Apple's output)rW   rX   rK   rg   TESTDATArZ   rD   )r   r@   rA   rl   s       r   test_appleformattingz!TestPlistlib.test_appleformatting2  s     	J 	JC#&& J J^HSM22~bc222  x}HJ J JJ J J J J J J J J J J J J J J	J 	Js   ABB	B	c                    d | _         t          D ]}|                     |          5  |                     |          }t	          j        t          |         |          }|                     t          |          t          |          d           t	          j        t          |                   }|                     t          |          t          |          d           d d d            n# 1 swxY w Y   d S r   )	maxDiffrW   rX   rB   rK   rg   r   rD   r=   )r   r@   rA   rQ   s       r   test_appleformattingfromliteralz,TestPlistlib.test_appleformattingfromliteral;  s;    	J 	JC#&& J J\\c\**nXc]<<<  b499HJ J JnXc]33  b499HJ J JJ J J J J J J J J J J J J J J	J 	Js   B9C,,C0	3C0	c                    t           D ]4}|                     |          5  t                      }|                     |          }t	          j        |||           t	          j        t          |                                          |          }|                     t          |          t          |                     t	          j        t          |                                                    }|                     t          |          t          |                     d d d            n# 1 swxY w Y   6d S rT   )
rW   rX   r   rB   rK   rL   rM   getvaluerD   r=   )r   r@   r!   rA   rQ   s        r   test_bytesiozTestPlistlib.test_bytesioG  s?    	6 	6C#&& 6 6II\\c\**b!----mGAJJLL$9$9sCCC  b499555mGAJJLL$9$9::  b4995556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s   DD11D5	8D5	c           	         t          j                    }d|d<   d|d<   d|d<   t          D ]?}dD ]8}|                     ||          5  t	                      }t          j        ||||           t          j        t	          |                                          t           j        	          }| 	                    t          |          t          |                     |r8| 	                    t          |                                          g d
           n7| 	                    t          |                                          g d           d d d            n# 1 swxY w Y   :Ad S Nr   r!   r   r    r   r"   )FT)r@   	sort_keys)	dict_typer   )r!   r    r"   )collectionsOrderedDictrW   rX   r   rK   rL   rM   r   rD   r=   r?   keys)r   rA   r@   r   r!   rQ   s         r   test_keysort_bytesioz!TestPlistlib.test_keysort_bytesioR  s   $&&333 	L 	LC* L L	\\cY\?? L L		AM"aSIFFFF"-

(=(="-"9; ; ;C $$T"XXtCyy999  L((chhjj)9)9???KKKK((chhjj)9)9???KKKL L L L L L L L L L L L L L LL	L 	Ls   	DEE #E c           	      ~   t          j                    }d|d<   d|d<   d|d<   t          D ]}dD ]
}|                     ||          5  t	          j        |||          }t	          j        |t           j        	          }|                     t          |          t          |                     |r8|                     t          |
                                          g d
           n7|                     t          |
                                          g d           d d d            n# 1 swxY w Y   d S r   )r   r   rW   rX   rK   rZ   rg   rD   r=   r?   r   )r   rA   r@   r   rl   rQ   s         r   test_keysortzTestPlistlib.test_keysortg  s   $&&333 
	L 
	LC* 	L 	L	\\cY\?? L L#>"#KKKD".9PQQQC$$T"XXtCyy999  L((chhjj)9)9???KKKK((chhjj)9)9???KKKL L L L L L L L L L L L L L L	L
	L 
	Ls   	CD..D25D2c           	      <   ddi}t           D ]}|                     |          5  |                     t          t          j        ||           t                      }|                     t          t          j        |||           d d d            n# 1 swxY w Y   d S )N*   aNumberrU   )rW   rX   rN   rY   rK   rZ   r   rL   )r   rA   r@   r!   s       r   test_keys_no_stringz TestPlistlib.test_keys_no_stringy  s    9 	L 	LC#&& L L!!)X^RS!IIIII!!)X]Bs!KKK	L L L L L L L L L L L L L L L	L 	Ls   A BB	B	c           	         ddd}t           D ]}|                     |          5  t          j        ||dd          }t          j        |          }|                     |ddi           t                      }t          j        |||dd           |                                }t          j        |                                          }|                     |ddi           d d d            n# 1 swxY w Y   d S )	Nr   aWord)r   snakerU   TF)r@   skipkeysr   r   )	rW   rX   rK   rZ   rg   rD   r   rL   r   )r   rA   r@   rl   rQ   rP   s         r   test_skipkeyszTestPlistlib.test_skipkeys  sW   
 

  	: 	:C#&& : :~C$%A A A nT**  w&8999YYdeE E E E{{}}nR[[]]33  w&8999: : : : : : : : : : : : : : :	: 	:s   B>C//C3	6C3	c           	      z   dddd}t           D ]}|                     |          5  t          j        ||          }t          j        |          }|                     |ddgddgddgd           |t          j        k    r"|                     |d	         |d
                    d d d            n# 1 swxY w Y   d S )N)r   r   )r      firstsecondthirdrU   r   r   r   r   r   r   )rW   rX   rK   rZ   rg   rD   r   assertIsNotr   rA   r@   rl   rQ   s        r   test_tuple_memberszTestPlistlib.test_tuple_members  s;   
 
  
	B 
	BC#&& 	B 	B~bc222nT**  V !fV' '   
 (---$$S\3x=AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B
	B 
	Bs   A=B//B3	6B3	c           	      f   ddgddgddgd}t           D ]}|                     |          5  t          j        ||          }t          j        |          }|                     |ddgddgddgd           |                     |d         |d                    d d d            n# 1 swxY w Y   d S )	Nr   r   r   r   r   rU   r   r   rW   rX   rK   rZ   rg   rD   r   r   s        r   test_list_memberszTestPlistlib.test_list_members  s$   V!fV
 
  		> 		>C#&& > >~bc222nT**  V !fV' '   
   Ws8}===> > > > > > > > > > > > > > >		> 		>   A-B%%B)	,B)	c           	      f   ddiddiddid}t           D ]}|                     |          5  t          j        ||          }t          j        |          }|                     |ddiddiddid           |                     |d         |d                    d d d            n# 1 swxY w Y   d S )	Nr    r   r!   r   r   rU   r   r   r   r   s        r   test_dict_memberszTestPlistlib.test_dict_members  s$   1XAh1Y
 
  		> 		>C#&& > >~bc222nT**  !1X"Ah!1Y' '   
   Ws8}===> > > > > > > > > > > > > > >		> 		>r   c                    t          d          D ]}t          |          }d|z  }|dk    s|dv rOt          j        |t          j                  }|dk    r(|                     t          j        |          |           nR|                     t                    5  t          j        |t          j                   d d d            n# 1 swxY w Y   t          j        |t          j	                   d S )N   zstring containing %s    z
	rU   )
r   chrrK   rZ   FMT_XMLrD   rg   rN   r^   r   )r   ir"   
testStringrl   s        r   test_controlcharactersz#TestPlistlib.test_controlcharacters  s9   s 	@ 	@AAA/!3JBww!x--~jh6FGGG99$$X^D%9%9:FFF&&z22 E EN:83CDDDDE E E E E E E E E E E E E E EN:8+>?????	@ 	@s   !CC
	C
	c                     ddi}t           D ]n}|                     |          5  t          j        ||          }|                     t          j        |          |           d d d            n# 1 swxY w Y   od S )Npythonu   🐍rU   )rW   rX   rK   rZ   rD   rg   )r   rA   r@   rl   s       r   test_non_bmp_charactersz$TestPlistlib.test_non_bmp_characters  s    % 	; 	;C#&& ; ;~bc222  !5!5r:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	;s   ?A//A3	6A3	c                    t           D ]}|                     |          5  |                     t                    5  t	          j        d|           d d d            n# 1 swxY w Y   |                     t                    5  t	          j        d|           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )NrU   u   u   )rW   rX   rN   UnicodeEncodeErrorrK   rZ   )r   r@   s     r   test_lone_surrogatesz!TestPlistlib.test_lone_surrogates  s    	6 	6C#&& 6 6&&'9:: 6 6N855556 6 6 6 6 6 6 6 6 6 6 6 6 6 6&&'9:: 6 6N855556 6 6 6 6 6 6 6 6 6 6 6 6 6 66 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6sX   B=AB=A""B=%A"&B=B&B=&B**B=-B*.B==C	C	c                 z   t           D ]}|                     |          5  d}g d}t          j        t          j        ||                    }t          j        t          j        ||                    }|                     ||           |                     ||           d d d            n# 1 swxY w Y   d S )NrU   abc)r   r   r   r   )rW   rX   rK   rg   rZ   rD   )r   r@   test1test2result1result2s         r   test_nondictrootzTestPlistlib.test_nondictroot  s     	1 	1C#&& 1 1(((".3)G)G)GHH".3)G)G)GHH  000  0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1s   BB//B3	6B3	c                     dD ]=}|                      t          t          j        d|z                                             >d S )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>rN   r^   rK   rg   encoder   r   s     r   test_invalidarrayzTestPlistlib.test_invalidarray  s^    < 	O 	OA j(.A!CKKMMO O O O	O 	Or   c                     dD ]x}|                      t          t          j        d|z                                             |                      t          t          j        d|z                                             yd S )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   r   s     r   test_invaliddictzTestPlistlib.test_invaliddict  s    K 	\ 	\A
 j(.?AIIKKM M Mj(.NqPXXZZ\ \ \ \	\ 	\r   c                 R    |                      t          t          j        d           d S )Ns-   <plist><integer>not integer</integer></plist>rN   r^   rK   rg   r   s    r   test_invalidintegerz TestPlistlib.test_invalidinteger  s2    *hnJ	L 	L 	L 	L 	Lr   c                 R    |                      t          t          j        d           d S )Ns*   <plist><integer>not real</integer></plist>r   r   s    r   test_invalidrealzTestPlistlib.test_invalidreal  s2    *hnG	I 	I 	I 	I 	Ir   c                    d}t          j        |          }|                     |d           d}t          j        |          }|                     |d           d}t          j        |          }|                     |d           d S )Ns%   <plist><integer>456</integer></plist>i  s%   <plist><integer>0xa</integer></plist>r+   s&   <plist><integer>0123</integer></plist>{   )rK   rg   rD   )r   rA   values      r   test_integer_notationsz#TestPlistlib.test_integer_notations  s    5r""$$$5r""###6r""$$$$$r   c                 @   t           t          j                 }ddt          j        fddt          j        fddt          j        ffD ]\  }}}|                     t          j                  }|                     |          5  |	                    d|          }||
                    d                              |          z   }t          j        |          }|                     t          |          t          |                     d d d            n# 1 swxY w Y   d S )	Ns   utf-8zutf-8s   utf-16z	utf-16-lez	utf-16-berU   )encodings   UTF-8)r   rK   r   codecsBOM_UTF8BOM_UTF16_LEBOM_UTF16_BErB   rX   replacedecoder   rg   rD   r=   )r   basexml_encodingr  bomrA   rl   rQ   s           r   test_xml_encodingszTestPlistlib.test_xml_encodings  sC   () w8V-@AV-@A, 	6 	6'L(C ("233Bx00 6 6||Hl;;T[[1188BBBnT**  b499555	6 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s    BDD	D	c                     |                      t                    5  t          j        i d           d d d            d S # 1 swxY w Y   d S )NblahrU   )rN   r^   rK   rZ   r   s    r   test_dump_invalid_formatz%TestPlistlib.test_dump_invalid_format0  s    z** 	+ 	+N26****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   ?AAc                     |                      t          j                  5  t          j        d           d d d            d S # 1 swxY w Y   d S )Ns!   these are not plist file contents)rN   rK   InvalidFileExceptionrg   r   s    r   test_load_invalid_filez#TestPlistlib.test_load_invalid_file4  s    x<== 	A 	AN?@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   AA	Ac                     t          d          }d|_        |                     t                    5  t	          j        |t          j                   d d d            d S # 1 swxY w Y   d S )Nr   rU   )r   rl   rN   r^   rK   rZ   r   )r   neg_uids     r   test_modified_uid_negativez'TestPlistlib.test_modified_uid_negative8  s    a&&z** 	= 	=N7(;<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=   !AA#&A#c                     t          d          }d|_        |                     t                    5  t	          j        |t          j                   d d d            d S # 1 swxY w Y   d S )Nr   r]   rU   )r   rl   rN   rj   rK   rZ   r   )r   huge_uids     r   test_modified_uid_hugez#TestPlistlib.test_modified_uid_huge>  s    q66}-- 	> 	>N8)<====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>r  c                     |                      t          j        d          5  t          j        t          t          j                   d d d            d S # 1 swxY w Y   d S )Nz)XML entity declarations are not supportedrU   )assertRaisesRegexrK   r  rg   XML_PLIST_WITH_ENTITYr   r   s    r   test_xml_plist_with_entity_declz,TestPlistlib.test_xml_plist_with_entity_declD  s    ##H$A$OQ Q 	H 	HN0h6FGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   &AAAr   )0__name__
__module____qualname__r   rB   rE   rR   r[   r_   rn   rr   rt   rz   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   r   r   r  r  r  r  r  r   r   r   r
   r
     s            6< < <
E E EJ J J  3 3 3$	2 	2 	2& & &E E EE E EE E Eh h h& & &/ / /
5 5 51 1 14 4 4[ [ [8 8 8J J J
J 
J 
J	6 	6 	6L L L*L L L$L L L: : :*B B B&> > >$> > >$@ @ @; ; ;6 6 61 1 1O O O	\ 	\ 	\L L LI I I% % %6 6 6&+ + +A A A= = => > >H H H H Hr   r
   c                   h    e Zd Zedddd            Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd ZdS )TestBinaryPlistlibr   offset_sizeref_sizec                    dg}d}g }|D ]R}|                     |                    | d                     |                     |           |t          |          z  }St          j        d| |t          |          d|          }|                    |           |                     |           t          j        d                    |          t          j	                  S )N   bplist00   bigz>6xBBQQQr   r   rU   )
appendto_byteslenstructpackextendrK   rg   joinr   )r&  r'  objectsrl   offsetoffsetsxtails           r   r  zTestBinaryPlistlib.decodeL  s    } 	 	ANN6??;>>???KKNNNc!ffFF{:{Hw<<F4 4GD~chhtnn(2EFFFFr   c                 ^    d}|                      t          j        |          ddi           d S )Ns<   bplist00    QaQb                                  r    r!   )rD   rK   rg   ry   s     r   test_nonstandard_refs_sizez-TestBinaryPlistlib.test_nonstandard_refs_size[  s5    4 	--Sz:::::r   c                    d dddddddt          j         dd	d
d	dd          t          d          ddgdddifD ]}|                     |          5  t          j        |gdz  t          j                  }|                     t          |          dt          |                     d d d            n# 1 swxY w Y   d S )NFT90  ^@abcdeu
   абвгд   abcder*   r+   r,   r-   r   Y  r   r?  12r6  i  rU   iL  )	r>   rp   rX   rK   rZ   r   
assertLessr.  r   )r   r6  rl   s      r   test_dump_duplicatesz'TestBinaryPlistlib.test_dump_duplicatesg  s   tUFG\8#D"b"b"==H%%Cy)dC[J 	= 	=A "" = =~qc$hH4GHHHD		4d<<<= = = = = = = = = = = = = = =	= 	=s   AB22B6	9B6	c                    d ddddddt          j         ddd	dd
d
          t          d          ddgdddifD ]}|                     |          5  t          j        |gdz  t          j                  }t          j        |          \  }}t          |t                    rt          |          }| 
                    ||           | 
                    ||           |                     ||           d d d            n# 1 swxY w Y   d S )NFTr;  r<  r=  r>  r*   r+   r,   r-   r   r?  r@  rA  rB  r   rU   )r>   rp   rX   rK   rZ   r   rg   
isinstancetupler?   rD   assertIs)r   r6  rl   r    r!   s        r   test_identityz TestBinaryPlistlib.test_identityp  sW   tUFGX#D"b"b"==H%%Cy)dC[J 
	$ 
	$A "" $ $~qc!e1DEEE~d++1a''  QA  A&&&  A&&&a###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
	$ 
	$s   B"C==D	D	c                 ^   g }|                     |           t          j        t          j        |t          j                            }|                     |d         |           g f}|d                              |           t          j        t          j        |t          j                            }|                     |d         d         |           i }||d<   t          j        t          j        |t          j                            }|                     |d         |           d S )NrU   r   r6  )r,  rK   rg   rZ   r   rH  )r   r    r!   s      r   test_cycleszTestBinaryPlistlib.test_cycles}  s    	N8>!1DEEEFFadAE	!AN8>!1DEEEFFad1gq!!!#N8>!1DEEEFFafa     r   c                 f   dD ]}d t          |          D             }	  | j        g |dR ddd}t          |          D ]H}|                     |t                     |                     t          |          d           |d         }I|                     |d           # t          $ r Y w xY wd S )	N)i,  順 c                 F    g | ]}d |dz                        dd          z   S )   r   r   r+  )r-  ).0r   s     r   
<listcomp>z8TestBinaryPlistlib.test_deep_nesting.<locals>.<listcomp>  s1    MMMqgQ 0 0E : ::MMMr   s   Tseedr   r%  r   r   seed)r   r  rh   r?   rD   r.  RecursionError)r   Nchunksresultr   s        r   test_deep_nestingz$TestBinaryPlistlib.test_deep_nesting  s     	1 	1AMME!HHMMMF	1$UfUkUUqSTUUU q ' 'A))&$777$$S[[!444#AYFF  0000 "   		1 	1s   B!!
B.-B.c                 f   dD ]}|                      |          5  t          j                            d          t          j        |          z   }t	          j        |t          j                  }|                     t	          j        |          |           d d d            n# 1 swxY w Y   d S )N)l    l        )tsr   )secondsrU   )	rX   r>   utcfromtimestamp	timedeltarK   rZ   r   rD   rg   )r   rY  drl   s       r   test_large_timestampz'TestBinaryPlistlib.test_large_timestamp  s    ! 	: 	:B$$ : :&77::'3334~aX-@AAA  !5!5q999	: : : : : : : : : : : : : : :	: 	:s   A>B%%B)	,B)	c                 N   |                      |                     d          d            |                      |                     d          d           |                      |                     d          d           |                     |                     d          d           d S )N       F   	T   r   )rH  r  rD   r   s    r   test_load_singletonsz'TestBinaryPlistlib.test_load_singletons  s    dkk'**D111dkk'**E222dkk'**D111W--s33333r   c                    |                      |                     d          d           |                      |                     d          d           |                      |                     d          d           |                      |                     d          d           |                      |                     d	          d
           |                      |                     d          d           d S )Ns    r   s      s   i  s   ܺl   :} s	   #Egl   MW	s	   ܺvT2lMW	)rD   r  r   s    r   test_load_intz TestBinaryPlistlib.test_load_int  s    [111555[114888_55v>>>%<==zJJJ%LMM+	- 	- 	-%LMM+	- 	- 	- 	- 	-r   c                     g t          dd          t          dd          ddt          dd          t          d	d
          }dD ]0|                    fdt          d          D                        1|D ]}|                     d|d          5  |                     t          j                  5  |                     t          |g          dz              d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr   r*  r+      r   r-   $   3   4   @   )p                  c              3   "   K   | ]	}|z   V  
d S r   r"  )rP  jr   s     r   	<genexpr>z6TestBinaryPlistlib.test_unsupported.<locals>.<genexpr>  s'      88q1u888888r      ztoken 02xs                   )r   r1  rX   rN   rK   r  r  rq   )r   unsupportedtokenr   s      @r   test_unsupportedz#TestBinaryPlistlib.test_unsupported  s   Ka KeBmm KK!K$)$$5$5K8=dD8I8IK5 	9 	9A8888eBii8888888  	= 	=E2u22233 = =&&x'DEE = =KKug ;<<<= = = = = = = = = = = = = = == = = = = = = = = = = = = = =	= 	=s6    D8'C+D+C//D2C/3DD		D	c                 .   t           D ]\  }}|                     |          5  |                     t          j                  5  t          j        d|z   t          j                   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr)  rU   )INVALID_BINARY_PLISTSrX   rN   rK   r  rg   r   )r   namerl   s      r   test_invalid_binaryz&TestBinaryPlistlib.test_invalid_binary  s6   / 	P 	PJD$d## P P&&x'DEE P PN;#58;NOOOOP P P P P P P P P P P P P P PP P P P P P P P P P P P P P P	P 	Ps5    B	$A2&B	2A66B	9A6:B		B	B	N)r  r   r!  staticmethodr  r9  rD  rI  rK  rW  r^  rd  rg  r{  r  r"  r   r   r$  r$  J  s        %& G G G G \G
; 
; 
;= = =$ $ $! ! !"1 1 1: : :4 4 4- - -= = =P P P P Pr   r$  c                       e Zd Zd ZdS )TestKeyedArchivec                     dddt          d          dddg dd	d
gdgddt          d          id}|                     t          j        t          d                   |           d S )NrM  z$nullr   r   zKeyArchive UID Test)pytypez$classz	NS.stringOC_BuiltinPythonUnicode)r  OC_PythonUnicodeNSStringNSObjectOC_PythonStringr  )z
$classnamez$classesz$classhintsNSKeyedArchiverroot)z$versionz$objectsz	$archiverz$topr   )r   rD   rK   rg   r   ry   s     r   test_keyed_archive_dataz(TestKeyedArchive.test_keyed_archive_data  s     !!ff!6  #<! ! ! *:$ & +A-
 
4 	(ABBDIIIIIr   N)r  r   r!  r  r"  r   r   r  r    s(        J J J J Jr   r  c                       e Zd Zd ZdS )MiscTestCasec                 F    ddh}t          j        | t          |           d S )NPlistFormatPLISTHEADER)not_exported)r   check__all__rK   )r   r  s     r   test__all__zMiscTestCase.test__all__  s*    %}5T8,GGGGGGr   N)r  r   r!  r  r"  r   r   r  r    s(        H H H H Hr   r  darwinzplutil utility is for Mac osc                       e Zd ZdZddddddZddddddZdd	d
Zedd            Zedd            Z	d Z
d Zd Zd Zd Zd Zd Zd ZdS )
TestPlutilzplutil_test.plistHr   d   rw  )r    r!   )fnamelnamemarks  S   )HexTypeIntTypereturnNc                     t          | j        d          5 }t          j        | j        |t          j                   d d d            d S # 1 swxY w Y   d S )NrG   rU   )rJ   	file_namerK   rL   
propertiesr   )clsfs     r   
setUpClasszTestPlutil.setUpClass  s     #-%% 	FM#.!1DEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F   'A

AAc                 8    t          j        | j                   d S r   )r   remover  )r  s    r   tearDownClasszTestPlutil.tearDownClass  s    
	#-     r   c                 J    t          j        dd| j        gdd          j        S )Nplutilz-lintT)capture_outputr   )
subprocessrunr  stdoutr   s    r   get_lint_statuszTestPlutil.get_lint_status  s'    ~x$.ARV]abbbiir   c                 @    t          j        ddd| j        g           dS )z1Convert binary file to json using plutil
        r  -convertjsonNr  r  r  r   s    r   convert_to_jsonzTestPlutil.convert_to_json
  s%     	*fdnEFFFFFr   c                 @    t          j        ddd| j        g           dS )z,Convert file to binary using plutil
        r  r  binary1Nr  r   s    r   convert_to_binzTestPlutil.convert_to_bin  s%     	*iHIIIIIr   c                     t          | j        d          5 }t          j        | j        |t          j                   ddd           dS # 1 swxY w Y   dS )z6Write Hex properties to file using writePlist
        rG   rU   N)rJ   r  rK   rL   rA   r   r   r  s     r   write_plzTestPlutil.write_pl  s     $.$'' 	?1M$'1(*=>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?r  c                 f    |                      | j         d|                                            d S )Nz: OK
)rD   r  r  r   s    r   test_lint_statuszTestPlutil.test_lint_status  s5    DN222D4H4H4J4JKKKKKr   c                 
   |                                   t          | j                  5 }t          j        |                                          }|                     || j                   d d d            d S # 1 swxY w Y   d S r   )r  rJ   r  r  rg   readrD   exptected_properties)r   r  ffs      r   check_contentzTestPlutil.check_content  s    $.!! 	<QAFFHH%%BR!:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AA88A<?A<c                     |                                   t          | j        d          5 }|                     t	          j        |          | j                   d d d            d S # 1 swxY w Y   d S )NrH   )r  rJ   r  rD   rK   rM   r  r  s     r   check_plistlib_parsezTestPlutil.check_plistlib_parse%  s    $.$'' 	J1X]1--t/HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   .A%%A),A)c                    |                                   |                                  t          | j        d          5 }t	          j        |                                          }|                     |                    d          d           |                     |                    d          d           d d d            d S # 1 swxY w Y   d S )Nrr  r  r  r  )	r  r  rJ   r  r  rg   r  rD   get)r   r  ps      r   test_octal_and_hexzTestPlutil.test_octal_and_hex+  s    $.#&& 	3!
16688$$AQUU9--x888QUU9--r222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   A9CCC)r  N)r  r   r!  r  r  r  rA   classmethodr  r  r  r  r  r  r  r  r  r  r"  r   r   r  r    s5       #ID))
 
J ##  #

 

B
 F F F [F
 ! ! ! [!j j jG G G
J J J
? ? ?L L L< < <J J J3 3 3 3 3r   r  __main__)&r   r   r   r/  unittestrK   r   sysr  r>   r  r  binasciir   rv   r   test.supportr   ior   r   r   r   rW   
a2b_base64r   r  r}  TestCaser
   r$  r  r  
skipUnlessplatformr  r  mainr"  r   r   <module>r     s         				 



                   " " " " " "            x23
 )h) 3+8 39 39h ,, .@ A A* (X( 
* 
 
UU
n U U U pqH qH qH qH qH8$ qH qH qHhyP yP yP yP yP* yP yP yPxJ J J J Jx( J J J@H H H H H8$ H H H
 S\X-/MNNE3 E3 E3 E3 E3" E3 E3 ONE3N zHMOOOOO r   