def redis_dict_without_pickling(r, str_dict): """ RedisDict bonded to BYTES_DICT hash in Redis. RedisDict: {b'KEY_1': b'VAL_1', b'KEY_2': b'VAL_2'} """ return RedisDict(r, REDIS_TEST_KEY_NAME, str_dict, pickling=False)
def redis_dict(r, str_dict): """ RedisDict bonded to STR_DICT hash in Redis. RedisDict: {'KEY_1': 'VAL_1', 'KEY_2': 'VAL_2'} """ return RedisDict(r, REDIS_TEST_KEY_NAME, str_dict)
def redis_empty_dict(r): """ RedisDict bonded to empty hash in Redis. RedisDict: {} """ return RedisDict(r, REDIS_TEST_KEY_NAME)
def test_override_previous_hash(self, r, str_dict, another_str_dict): """ Should be equal to another_str_dict. Despite of it was initialized with str_dict. """ redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME, str_dict) assert redis_dict.copy() == str_dict redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME, another_str_dict) assert redis_dict.copy() == another_str_dict != str_dict
def test_equal_items(self, r, redis_dict, str_dict): """Should return True.""" other_redis_dict = RedisDict(r, self.OTHER_HASH_NAME, str_dict) assert redis_dict == other_redis_dict and redis_dict.items() == other_redis_dict.items() \ and redis_dict.key_name != other_redis_dict.key_name
def test_equal_key_names(self, r, redis_dict): """Should return True.""" other_redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME) assert redis_dict == other_redis_dict and redis_dict.key_name == other_redis_dict.key_name
def test_two_different_redis_dicts(self, r, redis_dict, another_str_dict): """Should return False.""" other_redis_dict = RedisDict(r, self.OTHER_HASH_NAME, another_str_dict) assert redis_dict != other_redis_dict and isinstance( other_redis_dict, type(redis_dict))
def test_bind_to_existing_hash(self, r, bytes_dict): """Should be equal to bytes_dict.""" r.hmset(REDIS_TEST_KEY_NAME, bytes_dict) redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME, pickling=False) assert redis_dict.copy() == bytes_dict
def test_value_is_none(self, r): """Should return None.""" redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME, {KEY_1: None}) assert redis_dict[KEY_1] is None
def test_bind_to_none(self, r): """Should be equal to empty dictionary.""" redis_dict = RedisDict(r, REDIS_TEST_KEY_NAME) assert redis_dict.copy() == {}
def test_bind_to_wrong_type(self, r): """Should raise TypeError.""" r.set(REDIS_TEST_KEY_NAME, 1) with pytest.raises(TypeError): RedisDict(r, REDIS_TEST_KEY_NAME)
def test_init_with_not_mapping_data_type(self, r): """Should raise ValueError.""" with pytest.raises(ValueError): RedisDict(r, REDIS_TEST_KEY_NAME, 1)