def test_override_previous_list(self, r, str_list, another_str_list): """ Should be equal to another_str_list. Despite of it was initialized with str_list. """ redis_list = RedisList(r, REDIS_TEST_KEY_NAME, str_list) assert list(redis_list) == str_list redis_list = RedisList(r, REDIS_TEST_KEY_NAME, another_str_list) assert list(redis_list) == another_str_list != str_list
def redis_list_without_pickling(r, str_list): """ RedisList bonded to BYTES_LIST list in Redis. RedisList: [b'VAL_1', b'VAL_2', b'VAL_2'] """ return RedisList(r, REDIS_TEST_KEY_NAME, str_list, pickling=False)
def redis_list(r, str_list): """ RedisList bonded to STR_LIST list in Redis. RedisList: ['VAL_1', 'VAL_2', 'VAL_2'] """ return RedisList(r, REDIS_TEST_KEY_NAME, str_list)
def redis_empty_list(r): """ RedisList bonded to empty list in Redis. RedisList: [] """ return RedisList(r, REDIS_TEST_KEY_NAME)
def test_bind_to_existing_list(self, r, bytes_list): """ Should be equal to bytes_list. Since the items are stored in the Redis as bytes, pickling is disabled. """ r.rpush(REDIS_TEST_KEY_NAME, *bytes_list) redis_list = RedisList(r, REDIS_TEST_KEY_NAME, pickling=False) assert list(redis_list) == bytes_list
def test_init_with_empty_list(self, r, str_list): """Should override existing value with empty list by removing the key.""" r.rpush(REDIS_TEST_KEY_NAME, *str_list) redis_list = RedisList(r, REDIS_TEST_KEY_NAME, [], pickling=False) assert list(redis_list) == [] assert r.keys() == []
def test_equal_items(self, r, redis_list, str_list): """Should return True.""" other_redis_list = RedisList(r, self.OTHER_HASH_NAME, str_list) assert redis_list == other_redis_list and list(redis_list) == list(other_redis_list) \ and redis_list.key_name != other_redis_list.key_name
def test_bind_to_none(self, r): """Should be equal to empty string.""" redis_list = RedisList(r, REDIS_TEST_KEY_NAME) assert list(redis_list) == []
def test_bind_to_bytes_list(self, r, str_list): """Should raise ValueError.""" r.rpush(REDIS_TEST_KEY_NAME, *str_list) with pytest.raises(ValueError): list(RedisList(r, REDIS_TEST_KEY_NAME))
def test_equal_key_names(self, r, redis_list): """Should return True.""" other_redis_list = RedisList(r, REDIS_TEST_KEY_NAME) assert redis_list == other_redis_list and other_redis_list.key_name == redis_list.key_name
def test_two_different_redis_lists(self, r, redis_list, another_str_list): """Should return False.""" other_redis_list = RedisList(r, self.OTHER_HASH_NAME, another_str_list) assert redis_list != other_redis_list and isinstance(other_redis_list, type(redis_list))
def test_bind_to_wrong_type(self, r): """Should raise TypeError.""" r.set(REDIS_TEST_KEY_NAME, 1) with pytest.raises(TypeError): RedisList(r, REDIS_TEST_KEY_NAME)
def test_init_with_not_iterable_data_type(self, r): """Should raise ValueError.""" with pytest.raises(ValueError): RedisList(r, REDIS_TEST_KEY_NAME, 1)