
    };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!    dnn%$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'    $$&dEIIm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    $$&		%"599U#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    $$&		%"		%&uyy'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    $$&]#dEIIm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dEIIe,-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&    $$&)UYY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(    $$&)UYY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     $$&)UYY"=eii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-    $$&dEIId&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.599T->->#?@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%E43D3D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&&'dEIId&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{    (!++2M ''0L,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    
 $$&)UYY"=dEIIh/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*eii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*eii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*ellE: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   