コード例 #1
0
 def test_delete_ok(self):
     cache_storage = MemoryStorage()
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1, description='foo')
     p2 = Policy(2, description='bar')
     ec.add(p1)
     ec.add(p2)
     ec.delete(1)
     ec.delete(2)
     assert [] == cache_storage.get_all(100, 0)
     assert [] == back_storage.get_all(100, 0)
コード例 #2
0
 def test_get_all_return_value(self, storage):
     cache_storage = storage
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1)
     p2 = Policy(2)
     p3 = Policy(3)
     ec.add(p1)
     ec.add(p2)
     ec.add(p3)
     backend_return = back_storage.get_all(100, 0)
     ec_return = back_storage.get_all(100, 0)
     assert backend_return == ec_return
コード例 #3
0
 def test_add_ok(self):
     cache_storage = MemoryStorage()
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1)
     p2 = Policy(2)
     p3 = Policy(3)
     ec.add(p1)
     assert [p1] == cache_storage.get_all(100, 0)
     assert [p1] == back_storage.get_all(100, 0)
     ec.add(p2)
     ec.add(p3)
     assert [p1, p2, p3] == cache_storage.get_all(100, 0)
     assert [p1, p2, p3] == back_storage.get_all(100, 0)
コード例 #4
0
 def test_delete_fail(self):
     cache_storage = MemoryStorage()
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1, description='foo')
     p2 = Policy(2, description='bar')
     ec.add(p1)
     ec.add(p2)
     back_storage.delete = Mock(side_effect=Exception('error!'))
     with pytest.raises(Exception) as excinfo:
         ec.delete(2)
     assert 'error!' == str(excinfo.value)
     assert [p1, p2] == back_storage.get_all(1000, 0)
     assert [p1, p2] == cache_storage.get_all(1000, 0)
コード例 #5
0
 def test_update_ok(self):
     cache_storage = MemoryStorage()
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1, description='foo')
     p2 = Policy(2, description='bar')
     p3 = Policy(3, description='baz')
     ec.add(p1)
     ec.add(p2)
     ec.add(p3)
     p1.description = 'foo2'
     ec.update(p1)
     p2.description = 'bar2'
     ec.update(p2)
     assert [p1, p2, p3] == cache_storage.get_all(100, 0)
     assert [p1, p2, p3] == back_storage.get_all(100, 0)
コード例 #6
0
 def test_add_fail(self):
     cache_storage = MemoryStorage()
     back_storage = MemoryStorage()
     ec = EnfoldCache(back_storage, cache=cache_storage)
     p1 = Policy(1)
     p2 = Policy(2)
     p3 = Policy(3)
     ec.add(p1)
     back_storage.add = Mock(side_effect=PolicyExistsError('2'))
     with pytest.raises(PolicyExistsError) as excinfo:
         ec.add(p2)
     assert 'Conflicting UID = 2' == str(excinfo.value)
     assert [p1] == back_storage.get_all(1000, 0)
     # test general exception
     back_storage.add = Mock(side_effect=Exception('foo'))
     with pytest.raises(Exception) as excinfo:
         ec.add(p3)
     assert 'foo' == str(excinfo.value)
     assert [p1] == back_storage.get_all(1000, 0)
     assert [p1] == cache_storage.get_all(1000, 0)