Ë
    }–;e°  ã                   ó¶   — d Z e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	m
Z
 ej                  d   dk\  ZereZneZ G d„ dej                   «      Z G d„ de«      Zy)	z Tests for the atomic file cache.é    N)ÚAtomicFileCacheÚsafenameé   c                   ó¾   ‡ — e Zd ZdZej
                  ZdZej                  d«      Z	ˆ fd„Z
ˆ f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ˆ xZS )ÚTestFileCacheInterfaceúTests for ``AtomicFileCache``.s	   paÉªÎ¸É™núutf-8c                 ó\   •— t         t        | �  «        t        j                  «       | _        y ©N)Úsuperr   ÚsetUpÚtempfileÚmkdtempÚ	cache_dir©ÚselfÚ	__class__s    €úO/usr/lib/python3/dist-packages/lazr/restfulclient/tests/test_atomicfilecache.pyr   zTestFileCacheInterface.setUp.   s!   ø€ ÜÔ$ dÑ1Ô3Ü!×)Ñ)Ó+ˆ�ó    c                 óh   •— t        j                  | j                  «       t        t        | �  «        y r   )ÚshutilÚrmtreer   r   r   ÚtearDownr   s    €r   r   zTestFileCacheInterface.tearDown2   s!   ø€ Ü�‰�d—n‘nÔ%ÜÔ$ dÑ4Õ6r   c                 óB   — | j                  | j                  t        «      S )z*Make a FileCache-like object to be tested.)Úfile_cache_factoryr   r   )r   s    r   Úmake_file_cachez&TestFileCacheInterface.make_file_cache6   s   € à×&Ñ& t§~¡~´xÓ@Ð@r   c                 óf   — | j                  «       }| j                  d |j                  d«      «       y ©NÚnonexistent)r   ÚassertIsÚget©r   Úcaches     r   Útest_get_non_existent_keyz0TestFileCacheInterface.test_get_non_existent_key:   s'   € à×$Ñ$Ó&ˆØ�‰�d˜EŸI™I mÓ4Õ5r   c                 óŠ   — | j                  «       }|j                  dd«       | j                  d|j                  d«      «       y ©NÚkeyó   value©r   ÚsetÚassertEqualr!   r"   s     r   Útest_set_keyz#TestFileCacheInterface.test_set_key?   s7   € à×$Ñ$Ó&ˆØ�	‰	�%˜Ô"Ø×Ñ˜ 5§9¡9¨UÓ#3Õ4r   c                 ó®   — | j                  «       }|j                  dd«       |j                  dd«       | j                  d|j                  d«      «       y )Nr'   r(   s	   new-valuer)   r"   s     r   Útest_set_twice_overridesz/TestFileCacheInterface.test_set_twice_overridesE   sE   € à×$Ñ$Ó&ˆØ�	‰	�%˜Ô"Ø�	‰	�%˜Ô&Ø×Ñ˜ u§y¡y°Ó'7Õ8r   c                 óˆ   — | j                  «       }|j                  d«       | j                  d |j                  d«      «       y r   )r   Údeleter    r!   r"   s     r   Útest_delete_absent_keyz-TestFileCacheInterface.test_delete_absent_keyL   s3   € à×$Ñ$Ó&ˆØ�‰�]Ô#Ø�‰�d˜EŸI™I mÓ4Õ5r   c                 ó¬   — | j                  «       }|j                  dd«       |j                  d«       | j                  d |j	                  d«      «       y r&   )r   r*   r0   r    r!   r"   s     r   Útest_delete_keyz&TestFileCacheInterface.test_delete_keyR   sC   € ð ×$Ñ$Ó&ˆØ�	‰	�%˜Ô"Ø�‰�UÔØ�‰�d˜EŸI™I eÓ,Õ-r   c                 óf   — | j                  «       }| j                  t        |j                  d«       y ©Né*   )r   ÚassertRaisesÚ	TypeErrorr!   r"   s     r   Útest_get_non_string_keyz.TestFileCacheInterface.test_get_non_string_keyZ   s&   € à×$Ñ$Ó&ˆØ×Ñœ) U§Y¡Y°Õ3r   c                 óf   — | j                  «       }| j                  t        |j                  d«       y r5   )r   r7   r8   r0   r"   s     r   Útest_delete_non_string_keyz1TestFileCacheInterface.test_delete_non_string_key_   s&   € à×$Ñ$Ó&ˆØ×Ñœ) U§\¡\°2Õ6r   c                 óh   — | j                  «       }| j                  t        |j                  dd«       y )Nr6   z
the answer)r   r7   r8   r*   r"   s     r   Útest_set_non_string_keyz.TestFileCacheInterface.test_set_non_string_keyd   s(   € à×$Ñ$Ó&ˆØ×Ñœ) U§Y¡Y°°LÕAr   c                 óª   — | j                  «       }| j                  t        |j                  dd«       | j	                  d|j                  d«      «       y )NÚanswerr6   r   )r   r7   r8   r*   r+   r!   r"   s     r   Útest_set_non_string_valuez0TestFileCacheInterface.test_set_non_string_valuei   sC   € ð ×$Ñ$Ó&ˆØ×Ñœ) U§Y¡Y°¸"Ô=Ø×Ñ˜˜eŸi™i¨Ó1Õ2r   c                 óz   — | j                  «       }| j                  d |j                  | j                  «      «       y r   )r   r    r!   Úunicode_textr"   s     r   Útest_get_unicodez'TestFileCacheInterface.test_get_unicodeq   s-   € à×$Ñ$Ó&ˆØ�‰�d˜EŸI™I d×&7Ñ&7Ó8Õ9r   c                 ó²   — | j                  «       }|j                  | j                  d«       | j                  d|j	                  | j                  «      «       y ©Nr(   )r   r*   rB   r+   r!   r"   s     r   Útest_set_unicode_keysz,TestFileCacheInterface.test_set_unicode_keysv   sC   € Ø×$Ñ$Ó&ˆØ�	‰	�$×#Ñ# XÔ.Ø×Ñ˜ 5§9¡9¨T×->Ñ->Ó#?Õ@r   c                 ó˜   — | j                  «       }t        rt        nt        }| j	                  ||j
                  d| j                  «       y ©Nr'   )r   ÚPY3r8   ÚUnicodeEncodeErrorr7   r*   rB   )r   r#   Úerrors      r   Útest_set_unicode_valuez-TestFileCacheInterface.test_set_unicode_value{   s8   € à×$Ñ$Ó&ˆÝ •	Ô&8ˆØ×Ñ˜% §¡¨E°4×3DÑ3DÕEr   c                 óè   — | j                  «       }|j                  | j                  d«       |j                  | j                  «       | j	                  d |j                  | j                  «      «       y rE   )r   r*   rB   r0   r    r!   r"   s     r   Útest_delete_unicodez*TestFileCacheInterface.test_delete_unicode�   sS   € à×$Ñ$Ó&ˆØ�	‰	�$×#Ñ# XÔ.Ø�‰�T×&Ñ&Ô'Ø�‰�d˜EŸI™I d×&7Ñ&7Ó8Õ9r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úhttplib2Ú	FileCacher   Úunicode_bytesÚdecoderB   r   r   r   r$   r,   r.   r1   r3   r9   r;   r=   r@   rC   rF   rL   rN   Ú__classcell__)r   s   @r   r   r   &   s{   ø„ Ù(à!×+Ñ+Ðà2€MØ ×'Ñ'¨Ó0€Lô,ô7òAò6ò
5ò9ò6ò.ò4ò
7ò
Bò
3ò:ò
Aò
Fö:r   r   c                   ó<   — e Zd ZdZeZed„ «       Zd„ Zd„ Z	d„ Z
d„ Zy)ÚTestAtomicFileCacher   c                 ój   — t        | t        «      r| j                  d«      } t        j                  | z   S )Nr	   )Ú
isinstanceÚbinary_typerV   r   ÚTEMPFILE_PREFIX)Úxs    r   Úprefix_safenamez#TestAtomicFileCache.prefix_safenameŽ   s+   € ä�aœÔ%Ø—‘˜Ó!ˆAÜ×.Ñ.°Ñ2Ð2r   c                 óª   — | j                  «       }| j                  t        |j                  dd«       | j	                  d |j                  d«      «       y )Nr?   r6   )r   r7   r8   r*   r    r!   r"   s     r   r@   z-TestAtomicFileCache.test_set_non_string_value”   sA   € ð
 ×$Ñ$Ó&ˆØ×Ñœ) U§Y¡Y°¸"Ô=Ø�‰�d˜EŸI™I hÓ/Õ0r   c                 óŠ   — | j                   }t        | j                  |«      }| j                  t        |j
                  d«       y rH   )r_   r   r   r7   Ú
ValueErrorr!   ©r   r   r#   s      r   Útest_bad_safename_getz)TestAtomicFileCache.test_bad_safename_getŸ   s3   € Ø×'Ñ'ˆÜ §¡°Ó9ˆØ×Ñœ* e§i¡i°Õ7r   c                 óŒ   — | j                   }t        | j                  |«      }| j                  t        |j
                  dd«       y r&   )r_   r   r   r7   rb   r*   rc   s      r   Útest_bad_safename_setz)TestAtomicFileCache.test_bad_safename_set¤   s5   € Ø×'Ñ'ˆÜ §¡°Ó9ˆØ×Ñœ* e§i¡i°¸ÕAr   c                 óŠ   — | j                   }t        | j                  |«      }| j                  t        |j
                  d«       y rH   )r_   r   r   r7   rb   r0   rc   s      r   Útest_bad_safename_deletez,TestAtomicFileCache.test_bad_safename_delete©   s3   € Ø×'Ñ'ˆÜ §¡°Ó9ˆØ×Ñœ* e§l¡l°EÕ:r   N)rO   rP   rQ   rR   r   r   Ústaticmethodr_   r@   rd   rf   rh   © r   r   rY   rY   ‰   s2   „ Ù(à(Ðàñ3ó ð3ò
1ò8ò
Bó
;r   rY   )rR   ÚtypeÚ__metaclass__r   Úsysr   ÚunittestrS   Úlazr.restfulclient._browserr   r   Úversion_inforI   Úbytesr\   ÚstrÚTestCaser   rY   rj   r   r   ú<module>rt      se   ðñ$ 'à€ã Û 
Û Û ã ç Aà	×Ñ�qÑ˜QÑ€ÙØ�Kà€Kô`:˜X×.Ñ.ô `:ôF#;Ð0õ #;r   