Ejemplo n.º 1
0
class TestHashcache(TestCase):
    """Test the Hashcache class"""
    
    # MD5 hashes used in these examples:
    # 'my_key1': 'aaf08daa8898fe4fecaec3e586748f1f',
    # 'my_key2': '6a3d7f4295a5cd351d746fad80bb6c90',
    # u'\xed': '9defdf606bd9e5ba7861b78c0b50ecb2'
    
    @setup
    def stub_cache(self):
        self.cache = flexmock(
            get=lambda key: None,
            set=lambda key, *args: True)
        self.hashcache = Hashcache(self.cache)
    
    def test_raises_if_no_cache(self):
        assert_raises(AssertionError, Hashcache, None)
    
    def test_gets_from_cache_using_hashed_key(self):
        self.cache.should_receive('get').with_args('aaf08daa8898fe4fecaec3e586748f1f').once.and_return('val1').ordered
        self.cache.should_receive('get').with_args('6a3d7f4295a5cd351d746fad80bb6c90').once.and_return('val2').ordered
        assert self.hashcache.get('my_key1') == 'val1'
        assert self.hashcache.get('my_key2') == 'val2'
    
    def test_sets_cache_using_hashed_key(self):
        self.cache.should_receive('set').with_args('aaf08daa8898fe4fecaec3e586748f1f', 'val1').once
        self.hashcache.set('my_key1', 'val1')
    
    def test_sets_cache_using_hashed_key_with_expiration(self):
        self.cache.should_receive('set').with_args('6a3d7f4295a5cd351d746fad80bb6c90', 'val2', 30).once
        self.hashcache.set('my_key2', 'val2', 30)
    
    def test_handles_non_ascii_keys(self):
        self.cache.should_receive('set').with_args('9defdf606bd9e5ba7861b78c0b50ecb2', 'val').once
        self.hashcache.set(u'\xed', 'val')
Ejemplo n.º 2
0
 def stub_cache(self):
     self.cache = flexmock(
         get=lambda key: None,
         set=lambda key, *args: True)
     self.hashcache = Hashcache(self.cache)