o j ð[Äã@s‚dZeZddlZddlZddlZddlZejddkZer e Z ne Z ddl Z ddl mZmZGdd„dejƒZGdd„deƒZdS) z Tests for the atomic file cache.éNé)ÚAtomicFileCacheÚsafenamecs°eZdZdZejZdZe d¡Z ‡fdd„Z ‡fdd„Z dd „Z d d „Z d d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Z‡ZS)$ÚTestFileCacheInterfaceúTests for ``AtomicFileCache``.s paɪθənúutf-8cstt|ƒ ¡t ¡|_dS©N)ÚsuperrÚsetUpÚtempfileÚmkdtempÚ cache_dir©Úself©Ú __class__©úO/usr/lib/python3/dist-packages/lazr/restfulclient/tests/test_atomicfilecache.pyr /szTestFileCacheInterface.setUpcst |j¡tt|ƒ ¡dSr)ÚshutilÚrmtreer r rÚtearDownrrrrr3s zTestFileCacheInterface.tearDowncCs| |jt¡S)z*Make a FileCache-like object to be tested.)Úfile_cache_factoryr rrrrrÚmake_file_cache7sz&TestFileCacheInterface.make_file_cachecCs| ¡}| d| d¡¡dS©NÚ nonexistent)rÚassertIsÚget©rÚcacherrrÚtest_get_non_existent_key;óz0TestFileCacheInterface.test_get_non_existent_keycCs*| ¡}| dd¡| d| d¡¡dS©NÚkeyóvalue©rÚsetÚ assertEqualrrrrrÚ test_set_key@s z#TestFileCacheInterface.test_set_keycCs6| ¡}| dd¡| dd¡| d| d¡¡dS)Nr"r#s new-valuer$rrrrÚtest_set_twice_overridesFs  z/TestFileCacheInterface.test_set_twice_overridescCs(| ¡}| d¡| d| d¡¡dSr)rÚdeleterrrrrrÚtest_delete_absent_keyMs z-TestFileCacheInterface.test_delete_absent_keycCs4| ¡}| dd¡| d¡| d| d¡¡dSr!)rr%r)rrrrrrÚtest_delete_keySs  z&TestFileCacheInterface.test_delete_keycCó| ¡}| t|jd¡dS©Né*)rÚ assertRaisesÚ TypeErrorrrrrrÚtest_get_non_string_key[óz.TestFileCacheInterface.test_get_non_string_keycCr,r-)rr/r0r)rrrrÚtest_delete_non_string_key`r2z1TestFileCacheInterface.test_delete_non_string_keycCs| ¡}| t|jdd¡dS)Nr.z the answer)rr/r0r%rrrrÚtest_set_non_string_keyer z.TestFileCacheInterface.test_set_non_string_keycCs0| ¡}| t|jdd¡| d| d¡¡dS)NÚanswerr.ó)rr/r0r%r&rrrrrÚtest_set_non_string_valuejsz0TestFileCacheInterface.test_set_non_string_valuecCs | ¡}| d| |j¡¡dSr)rrrÚ unicode_textrrrrÚtest_get_unicodersz'TestFileCacheInterface.test_get_unicodecCs.| ¡}| |jd¡| d| |j¡¡dS©Nr#)rr%r8r&rrrrrÚtest_set_unicode_keyswsz,TestFileCacheInterface.test_set_unicode_keyscCs,| ¡}trtnt}| ||jd|j¡dS©Nr")rÚPY3r0ÚUnicodeEncodeErrorr/r%r8)rrÚerrorrrrÚtest_set_unicode_value|s   ÿz-TestFileCacheInterface.test_set_unicode_valuecCs:| ¡}| |jd¡| |j¡| d| |j¡¡dSr:)rr%r8r)rrrrrrÚtest_delete_unicodeƒs z*TestFileCacheInterface.test_delete_unicode)Ú__name__Ú __module__Ú __qualname__Ú__doc__Úhttplib2Ú FileCacherÚ unicode_bytesÚdecoder8r rrrr'r(r*r+r1r3r4r7r9r;r@rAÚ __classcell__rrrrr's*   rc@s@eZdZdZeZedd„ƒZdd„Zdd„Z dd „Z d d „Z d S) ÚTestAtomicFileCachercCst|tƒr | d¡}tj|S)Nr)Ú isinstanceÚ binary_typerIrÚTEMPFILE_PREFIX)ÚxrrrÚprefix_safenames   z#TestAtomicFileCache.prefix_safenamecCs0| ¡}| t|jdd¡| d| d¡¡dS)Nr5r.)rr/r0r%rrrrrrr7–sz-TestAtomicFileCache.test_set_non_string_valuecCó&|j}t|j|ƒ}| t|jd¡dSr<)rPrr r/Ú ValueErrorr©rrrrrrÚtest_bad_safename_get¡ó z)TestAtomicFileCache.test_bad_safename_getcCs(|j}t|j|ƒ}| t|jdd¡dSr!)rPrr r/rRr%rSrrrÚtest_bad_safename_set¦s z)TestAtomicFileCache.test_bad_safename_setcCrQr<)rPrr r/rRr)rSrrrÚtest_bad_safename_delete«rUz,TestAtomicFileCache.test_bad_safename_deleteN) rBrCrDrErrÚ staticmethodrPr7rTrVrWrrrrrK‹s   rK)rEÚtypeÚ __metaclass__rr ÚunittestÚsysÚ version_infor=ÚbytesrMÚstrrFÚlazr.restfulclient._browserrrÚTestCaserrKrrrrÚsd