def test__create_one(self): with mock.patch('redis.StrictRedis') as patchedRedis: redis_connection = patchedRedis(host='localhost', port=6379, db=0) queryset = RedisQueryset(db_conn=redis_connection) shield = TestDoc(id="foo") queryset.create_one(shield) name, args, kwargs = redis_connection.mock_calls[0] self.assertEqual(name, 'hset') self.assertEqual(args, (queryset.api_id, 'foo', '{"_types": ["TestDoc"], "id": "foo", "_cls": "TestDoc"}'))
def test__create_one(self): with mock.patch('redis.StrictRedis') as patchedRedis: redis_connection = patchedRedis(host='localhost', port=6379, db=0) queryset = RedisQueryset(db_conn=redis_connection) shield = TestDoc(id="foo") queryset.create_one(shield) name, args, kwargs = redis_connection.mock_calls[0] self.assertEqual(name, 'hset') self.assertEqual( args, (queryset.api_id, 'foo', '{"_types": ["TestDoc"], "id": "foo", "_cls": "TestDoc"}'))
class TestRedisQueryset(unittest.TestCase): """ a test class for brubeck's RedisQueryset's operations. """ def setUp(self): import redis redis_connection = redis.StrictRedis(host='localhost', port=6379, db=0) self.queryset = RedisQueryset(db_conn=redis_connection) def seed_reads(self): shields = [TestDoc(id="foo"), TestDoc(id="bar"), TestDoc(id="baz")] self.queryset.create_many(shields) return shields def test__create_one(self): # TODO: - fix test # Test will fail, unless the value associated with # 'id': 'foo' is deleted. Normally, during this test an object with id='foo' # exists- test may need to be fixed. If the object "foo" exists # the first operation will return self.queryset.MSG_UPDATED instead # of self.queryset.MSG_FAILED import redis redis_connection = redis.StrictRedis(host='localhost', port=6379, db=0) redis_connection.delete('id') shield = TestDoc(id="foo") status, return_shield = self.queryset.create_one(shield) self.assertEqual(self.queryset.MSG_CREATED, status) self.assertEqual(shield, return_shield) status, return_shield = self.queryset.create_one(shield) self.assertEqual(self.queryset.MSG_UPDATED, status) def test__create_many(self): shield0 = TestDoc(id="foo") shield1 = TestDoc(id="bar") shield2 = TestDoc(id="baz") statuses = self.queryset.create_many([shield0, shield1, shield2]) for status, datum in statuses: self.assertEqual(self.queryset.MSG_CREATED, status) shield3 = TestDoc(id="bloop") statuses = self.queryset.create_many([shield0, shield3, shield2]) status, datum = statuses[1] self.assertEqual(self.queryset.MSG_CREATED, status) status, datum = statuses[0] self.assertEqual(self.queryset.MSG_UPDATED, status) def test__read_all(self): shields = self.seed_reads() statuses = self.queryset.read_all() for status, datum in statuses: self.assertEqual(self.queryset.MSG_OK, status) actual = sorted([datum for trash, datum in statuses]) expected = sorted([shield.to_python() for shield in shields]) self.assertEqual(expected, actual) def test__read_one(self): shields = self.seed_reads() for shield in shields: status, datum = self.queryset.read_one(shield.id) self.assertEqual(self.queryset.MSG_OK, status) self.assertEqual(datum, shield.to_python()) bad_key = 'DOESNTEXIST' status, datum = self.queryset.read(bad_key) self.assertEqual(bad_key, datum) self.assertEqual(self.queryset.MSG_FAILED, status) def test__read_many(self): shields = self.seed_reads() expected = [shield.to_python() for shield in shields] responses = self.queryset.read_many([s.id for s in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_OK, status) self.assertTrue(datum in expected) bad_ids = [s.id for s in shields] bad_ids.append('DOESNTEXIST') status, iid = self.queryset.read_many(bad_ids)[-1] self.assertEqual(self.queryset.MSG_FAILED, status) def test_update_one(self): shields = self.seed_reads() test_shield = shields[0] test_shield.data = "foob" status, datum = self.queryset.update_one(test_shield) self.assertEqual(self.queryset.MSG_UPDATED, status) self.assertEqual('foob', datum['data']) status, datum = self.queryset.read_one(test_shield.id) self.assertEqual('foob', datum['data']) def test_update_many(self): shields = self.seed_reads() for shield in shields: shield.data = "foob" responses = self.queryset.update_many(shields) for status, datum in responses: self.assertEqual(self.queryset.MSG_UPDATED, status) self.assertEqual('foob', datum['data']) for status, datum in self.queryset.read_all(): self.assertEqual('foob', datum['data']) def test_destroy_one(self): shields = self.seed_reads() test_shield = shields[0] status, datum = self.queryset.destroy_one(test_shield.id) self.assertEqual(self.queryset.MSG_UPDATED, status) status, datum = self.queryset.read_one(test_shield.id) self.assertEqual(test_shield.id, datum) self.assertEqual(self.queryset.MSG_FAILED, status) def test_destroy_many(self): shields = self.seed_reads() shield_to_keep = shields.pop() responses = self.queryset.destroy_many( [shield.id for shield in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_UPDATED, status) responses = self.queryset.read_many([shield.id for shield in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_FAILED, status) status, datum = self.queryset.read_one(shield_to_keep.id) self.assertEqual(self.queryset.MSG_OK, status) self.assertEqual(shield_to_keep.to_python(), datum)
class TestRedisQueryset(unittest.TestCase): """ a test class for brubeck's RedisQueryset's operations. """ def setUp(self): import redis redis_connection = redis.StrictRedis(host='localhost', port=6379, db=0) redis_connection.flushdb() self.queryset = RedisQueryset(db_conn=redis_connection) def seed_reads(self): shields = [TestDoc(id="foo"), TestDoc(id="bar"), TestDoc(id="baz")] self.queryset.create_many(shields) return shields def test__create_one(self): # TODO: - fix test # Test will fail, unless the value associated with # 'id': 'foo' is deleted. Normally, during this test an object with id='foo' # exists- test may need to be fixed. If the object "foo" exists # the first operation will return self.queryset.MSG_UPDATED instead # of self.queryset.MSG_FAILED import redis redis_connection = redis.StrictRedis(host='localhost', port=6379, db=0) redis_connection.delete('id') shield = TestDoc(id="foo") status, return_shield = self.queryset.create_one(shield) self.assertEqual(self.queryset.MSG_CREATED, status) self.assertEqual(shield, return_shield) status, return_shield = self.queryset.create_one(shield) self.assertEqual(self.queryset.MSG_UPDATED, status) def test__create_many(self): shield0 = TestDoc(id="foo") shield1 = TestDoc(id="bar") shield2 = TestDoc(id="baz") statuses = self.queryset.create_many([shield0, shield1, shield2]) for status, datum in statuses: self.assertEqual(self.queryset.MSG_CREATED, status) shield3 = TestDoc(id="bloop") statuses = self.queryset.create_many([shield0, shield3, shield2]) status, datum = statuses[1] self.assertEqual(self.queryset.MSG_CREATED, status) status, datum = statuses[0] self.assertEqual(self.queryset.MSG_UPDATED, status) def test__read_all(self): shields = self.seed_reads() statuses = self.queryset.read_all() for status, datum in statuses: self.assertEqual(self.queryset.MSG_OK, status) actual = sorted([datum for trash, datum in statuses]) expected = sorted([shield.to_python() for shield in shields]) self.assertEqual(expected, actual) def test__read_one(self): shields = self.seed_reads() for shield in shields: status, datum = self.queryset.read_one(shield.id) self.assertEqual(self.queryset.MSG_OK, status) self.assertEqual(datum, shield.to_python()) bad_key = 'DOESNTEXIST' status, datum = self.queryset.read(bad_key) self.assertEqual(bad_key, datum) self.assertEqual(self.queryset.MSG_FAILED, status) def test__read_many(self): shields = self.seed_reads() expected = [shield.to_python() for shield in shields] responses = self.queryset.read_many([s.id for s in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_OK, status) self.assertTrue(datum in expected) bad_ids = [s.id for s in shields] bad_ids.append('DOESNTEXIST') status, iid = self.queryset.read_many(bad_ids)[-1] self.assertEqual(self.queryset.MSG_FAILED, status) def test_update_one(self): shields = self.seed_reads() test_shield = shields[0] test_shield.data = "foob" status, datum = self.queryset.update_one(test_shield) self.assertEqual(self.queryset.MSG_UPDATED, status) self.assertEqual('foob', datum['data']) status, datum = self.queryset.read_one(test_shield.id) self.assertEqual('foob', datum['data']) def test_update_many(self): shields = self.seed_reads() for shield in shields: shield.data = "foob" responses = self.queryset.update_many(shields) for status, datum in responses: self.assertEqual(self.queryset.MSG_UPDATED, status) self.assertEqual('foob', datum['data']) for status, datum in self.queryset.read_all(): self.assertEqual('foob', datum['data']) def test_destroy_one(self): shields = self.seed_reads() test_shield = shields[0] status, datum = self.queryset.destroy_one(test_shield.id) self.assertEqual(self.queryset.MSG_UPDATED, status) status, datum = self.queryset.read_one(test_shield.id) self.assertEqual(test_shield.id, datum) self.assertEqual(self.queryset.MSG_FAILED, status) def test_destroy_many(self): shields = self.seed_reads() shield_to_keep = shields.pop() responses = self.queryset.destroy_many([shield.id for shield in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_UPDATED, status) responses = self.queryset.read_many([shield.id for shield in shields]) for status, datum in responses: self.assertEqual(self.queryset.MSG_FAILED, status) status, datum = self.queryset.read_one(shield_to_keep.id) self.assertEqual(self.queryset.MSG_OK, status) self.assertEqual(shield_to_keep.to_python(), datum)