async def test_enumerate_with_provided_encoding_enumerates_items_with_encoding(self): redis = AsyncMock() items = [ (MagicMock(), MagicMock()) for _ in range(6) ] scans = [ (1, items[:2]), (2, items[2:5]), (0, items[5:]) ] redis.hscan.side_effect = scans key = MagicMock() field_pattern = MagicMock() batch_size = MagicMock() encoding=MagicMock() redis_hash= RedisHash(redis, key) result = [item async for item in redis_hash.enumerate( field_pattern=field_pattern, batch_size=batch_size, encoding=encoding )] self.assertEqual(result, [ (field.decode.return_value, value.decode.return_value) for field, value in items ]) for field, value in items: field.decode.assert_called_once_with(encoding) value.decode.assert_called_once_with(encoding) redis.hscan.assert_has_awaits([ call(key, cursor=cursor, match=field_pattern, count=batch_size) \ for cursor in ['0', 1, 2] ])
async def test_enumerate_with_none_encoding_enumerates_items(self): redis = AsyncMock() items = [ (MagicMock(), MagicMock()) for _ in range(6) ] scans = [ (1, items[:2]), (2, items[2:5]), (0, items[5:]) ] redis.hscan.side_effect = scans key = MagicMock() field_pattern = MagicMock() batch_size = MagicMock() redis_hash= RedisHash(redis, key) result = [item async for item in redis_hash.enumerate( field_pattern=field_pattern, batch_size=batch_size, encoding=None )] self.assertEqual(result, items) redis.hscan.assert_has_awaits([ call(key, cursor=cursor, match=field_pattern, count=batch_size) \ for cursor in ['0', 1, 2] ])
def test_fields_with_default_encoding_uses_utf8(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) redis_hash.fields() redis.hkeys.assert_called_once_with(key, encoding='utf-8')
def test_get_with_default_encoding_uses_utf8(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() redis_hash.get(field) redis.hget.assert_called_once_with(key, field, encoding='utf-8')
def test_get_all_with_default_encoding_uses_utf8(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) result = redis_hash.get_all() redis.hgetall.assert_called_once_with(key, encoding='utf-8') self.assertEqual(result, redis.hgetall.return_value)
def test_length_returns_length(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) result = redis_hash.length() redis.hlen.assert_called_once_with(key) self.assertEqual(result, redis.hlen.return_value)
def test_get_all_works_correctly(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) encoding = MagicMock() result = redis_hash.get_all(encoding=encoding) redis.hgetall.assert_called_once_with(key, encoding=encoding) self.assertEqual(result, redis.hgetall.return_value)
def test_field_exists_works_correctly(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() result = redis_hash.field_exists(field) redis.hexists.assert_called_once_with(key, field) self.assertEqual(result, redis.hexists.return_value)
def test_remove_removes_field(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() result = redis_hash.remove(field) redis.hdel.assert_called_once_with(key, field) self.assertEqual(result, redis.hdel.return_value)
def test_set_all_with_value_sets_all(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) values = MagicMock() result = redis_hash.set_all(values) redis.hmset_dict.assert_called_once_with(key, values) self.assertEqual(result, redis.hmset_dict.return_value)
def test_field_length_returns_field_length(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() result = redis_hash.field_length(field) redis.hstrlen.assert_called_once_with(key, field) self.assertEqual(result, redis.hstrlen.return_value)
def test_get_gets_field(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() encoding = MagicMock() result = redis_hash.get(field, encoding=encoding) redis.hget.assert_called_once_with(key, field, encoding=encoding) self.assertEqual(result, redis.hget.return_value)
def test_set_with_value_set(self): redis = MagicMock() key = MagicMock() redis_hash = RedisHash(redis, key) field = MagicMock() value = MagicMock() result = redis_hash.set(field, value) redis.hset.assert_called_once_with(key, field, value) self.assertEqual(result, redis.hset.return_value)
def test_fields_works_correctly(self): fields = [MagicMock() for _ in range(7)] redis = MagicMock() redis.hkeys.return_value = fields key = MagicMock() encoding = MagicMock() redis_hash = RedisHash(redis, key) result = redis_hash.fields(encoding=encoding) redis.hkeys.assert_called_once_with(key, encoding=encoding) self.assertEqual(result, fields)
def test_init_succeeds(self): redis_hash = RedisHash(MagicMock(), MagicMock()) self.assertIsInstance(redis_hash, RedisHash)
async def test_set_with_none_value_does_nothing(self): key = MagicMock() redis_hash = RedisHash(None, key) await redis_hash.set(MagicMock(), None)