};edZeZddlZddlZddlZddlZddlZddlm Z m Z ejddk\Z e re ZneZGddej ZGddeZy) z Tests for the atomic file cache.N)AtomicFileCachesafenameceZdZdZej ZdZejdZ fdZ fdZ dZ dZ dZd Zd Zd Zd Zd ZdZdZdZdZdZdZxZS)TestFileCacheInterfaceTests for ``AtomicFileCache``.s paɪθənutf-8c\tt| tj|_yN)superrsetUptempfilemkdtemp cache_dirself __class__s O/usr/lib/python3/dist-packages/lazr/restfulclient/tests/test_atomicfilecache.pyr zTestFileCacheInterface.setUp.s! $d13!))+chtj|jtt|yr )shutilrmtreerr rtearDownrs rrzTestFileCacheInterface.tearDown2s! dnn% $d46rcB|j|jtS)z*Make a FileCache-like object to be tested.)file_cache_factoryrr)rs rmake_file_cachez&TestFileCacheInterface.make_file_cache6s&&t~~x@@rcf|j}|jd|jdyN nonexistent)rassertIsgetrcaches rtest_get_non_existent_keyz0TestFileCacheInterface.test_get_non_existent_key:s'$$& dEIIm45rc|j}|jdd|jd|jdyNkeyvaluerset assertEqualr!r"s r test_set_keyz#TestFileCacheInterface.test_set_key?s7$$& %" 599U#34rc|j}|jdd|jdd|jd|jdy)Nr'r(s new-valuer)r"s rtest_set_twice_overridesz/TestFileCacheInterface.test_set_twice_overridesEsE$$& %" %& uyy'78rc|j}|jd|jd|jdyr)rdeleter r!r"s rtest_delete_absent_keyz-TestFileCacheInterface.test_delete_absent_keyLs3$$& ]# dEIIm45rc|j}|jdd|jd|jd|j dyr&)rr*r0r r!r"s rtest_delete_keyz&TestFileCacheInterface.test_delete_keyRsC$$& %" U dEIIe,-rcf|j}|jt|jdyN*)r assertRaises TypeErrorr!r"s rtest_get_non_string_keyz.TestFileCacheInterface.test_get_non_string_keyZs&$$& )UYY3rcf|j}|jt|jdyr5)rr7r8r0r"s rtest_delete_non_string_keyz1TestFileCacheInterface.test_delete_non_string_key_s&$$& )U\\26rch|j}|jt|jddy)Nr6z the answer)rr7r8r*r"s rtest_set_non_string_keyz.TestFileCacheInterface.test_set_non_string_keyds($$& )UYYLArc|j}|jt|jdd|j d|j dy)Nanswerr6r)rr7r8r*r+r!r"s rtest_set_non_string_valuez0TestFileCacheInterface.test_set_non_string_valueisC$$& )UYY"= eii12rcz|j}|jd|j|jyr )rr r! unicode_textr"s rtest_get_unicodez'TestFileCacheInterface.test_get_unicodeqs-$$& dEIId&7&789rc|j}|j|jd|jd|j |jyNr()rr*rBr+r!r"s rtest_set_unicode_keysz,TestFileCacheInterface.test_set_unicode_keysvsC$$& $##X. 599T->->#?@rc|j}trtnt}|j ||j d|j yNr')rPY3r8UnicodeEncodeErrorr7r*rB)rr#errors rtest_set_unicode_valuez-TestFileCacheInterface.test_set_unicode_value{s8$$& &8 %E43D3DErc|j}|j|jd|j|j|j d|j |jyrE)rr*rBr0r r!r"s rtest_delete_unicodez*TestFileCacheInterface.test_delete_unicodesS$$& $##X. T&&' dEIId&7&789r)__name__ __module__ __qualname____doc__httplib2 FileCacher unicode_bytesdecoderBr rrr$r,r.r1r3r9r;r=r@rCrFrLrN __classcell__)rs@rrr&s{(!++2M ''0L,7A6 5 96 .4 7 B 3: A F :rrc<eZdZdZeZedZdZdZ dZ dZ y)TestAtomicFileCachercjt|tr|jd}tj|zS)Nr ) isinstance binary_typerVrTEMPFILE_PREFIX)xs rprefix_safenamez#TestAtomicFileCache.prefix_safenames+ a %!A..22rc|j}|jt|jdd|j d|j dy)Nr?r6)rr7r8r*r r!r"s rr@z-TestAtomicFileCache.test_set_non_string_valuesA $$& )UYY"= dEIIh/0rc|j}t|j|}|jt|j dyrH)r_rrr7 ValueErrorr!rrr#s rtest_bad_safename_getz)TestAtomicFileCache.test_bad_safename_gets3''9 *eii7rc|j}t|j|}|jt|j ddyr&)r_rrr7rbr*rcs rtest_bad_safename_setz)TestAtomicFileCache.test_bad_safename_sets5''9 *eiiArc|j}t|j|}|jt|j dyrH)r_rrr7rbr0rcs rtest_bad_safename_deletez,TestAtomicFileCache.test_bad_safename_deletes3''9 *ellE:rN) rOrPrQrRrr staticmethodr_r@rdrfrhrrrYrYs2((33 18 B ;rrY)rRtype __metaclass__rsysrunittestrSlazr.restfulclient._browserrr version_inforIbytesr\strTestCaserrYrjrrrtse$' A qQKK`:X..`:F#;0#;r