def setUp(self): self.s = MemStorageBackend()
class TestCaseMemStorageBackend(unittest.TestCase): def setUp(self): self.s = MemStorageBackend() def test_set(self): self.assertTrue(self.s.set('mykey', 'myval')) def test_contains_in(self): self.s.set('mykey', 'myval') self.assertTrue('mykey' in self.s) def test_get_exists(self): self.assertTrue(self.s.set('mykey', 'myval')) self.assertEqual(self.s.get('mykey'), 'myval') def test_get_not_exists(self): self.assertTrue(self.s.set('mykey', 'myval')) self.assertRaises(KeyError, self.s.get, 'badkey') def test_delete_exists(self): self.assertTrue(self.s.set('mykey', 'myval')) self.assertEqual(self.s.get('mykey'), 'myval') self.s.delete('mykey') self.assertRaises(KeyError, self.s.get, 'mykey') def test_delete_not_exists(self): self.assertRaises(KeyError, self.s.delete, 'mykey') def test_int_key(self): self.assertTrue(self.s.set(123, 'myval')) # self.assertRaises(KeyError, self.s.get, '123') self.assertEqual(self.s.get(123), 'myval') def test_dict_value(self): # Check that we are able to store a complex value type # since most backends only support string we will return # a string type no matter what was saved. mykey = '234234' myval = { 'spot': 'likes to run', 'kind': 1234, 'cmplx': (1, 2, 3, '123') } self.assertTrue(self.s.set(mykey, myval)) self.assertEqual(str(self.s.get(mykey)), str(myval)) def test_len(self): self.assertEqual(len(self.s), 0) self.assertTrue(self.s.set('mykey', 'myval')) self.assertEqual(len(self.s), 1) self.assertTrue(self.s.set('mykey2', 'myval2')) self.assertEqual(len(self.s), 2) self.assertTrue(self.s.set('mykey', 'myval')) self.assertEqual(len(self.s), 2) self.s.delete('mykey') self.assertEqual(len(self.s), 1) self.assertTrue(self.s.set('mykey', 'myval')) self.assertEqual(len(self.s), 2) self.assertTrue(self.s.set('mykey3', 'myval3')) self.assertEqual(len(self.s), 3) def test_iter(self): self.s.set('mykey', 'myval') self.s.set('mykey2', 'myval2') self.s.set('mykey', 'myval') self.s.delete('mykey') self.s.set('mykey', 'myval4') self.s.set('mykey3', 'myval3') self.assertItemsEqual( self.s.items(), [ ('mykey', 'myval4'), ('mykey2', 'myval2'), ('mykey3', 'myval3'), ] ) i = iter(self.s) items = [i.next(), i.next(), i.next()] self.assertItemsEqual( items, ['mykey', 'mykey2', 'mykey3']) self.assertRaises(StopIteration, i.next) i = iter(self.s) for k, v in self.s.iteritems(): self.assertTrue((k, v))