def test_json_decoded(temp_file: str, mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({ 'product:a': '{ "name": "kaas" }', 'product:b': '{ "name": "kees" }', 'product:c': '{ "name": "koos" }', 'something-else': '{ "name": "kies" }', }) with JsonProcessor(temp_file, True) as p: query.query_with_processor("product:", p) with open(temp_file, "r") as f: obj = json.load(f) assert obj == [{ "key": "product:a", "value": { "name": "kaas" } }, { "key": "product:b", "value": { "name": "kees" } }, { "key": "product:c", "value": { "name": "koos" } }]
def test_csv_omit_header(temp_file: str, mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({ 'product:a': '11', 'product:b': '22', 'product:c': '33', 'something-else': '44' }) with CsvProcessor(temp_file, omit_csv_header=True) as p: query.query_with_processor("product:", p) with open(temp_file, "r") as f: lines = f.read().splitlines() assert lines == ['product:a,11', 'product:b,22', 'product:c,33']
def test_txt(temp_file: str, mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({ 'product:a': '11', 'product:b': '22', 'product:c': '33', 'something-else': '44' }) with TextProcessor(temp_file) as p: query.query_with_processor("product:", p) with open(temp_file, "r") as f: lines = f.read().splitlines() assert lines == ['product:a', '11', 'product:b', '22', 'product:c', '33']
def test_multiple_values(mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({ 'product:a': '11', 'product:b': '22', 'product:c': '33', }) data = query.query("product:") assert len(data) == 3
def test_query_json(mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({ 'product:a': '{ "name": "kaas" }', 'product:b': '{ "name": "kees" }', 'product:c': '{ "name": "koos" }', 'something-else': '{ "name": "kies" }', }) data = query.json("product:b") assert len(data) == 1 assert data[0][0] == "product:b" assert data[0][1]['name'] == "kees"
def test_single_value(mocked_redis: MockedRedis, query: RedisQuery): mocked_redis.add({'a': '1', 'b': '2', 'c': '3'}) data = query.query("b") assert len(data) == 1 assert data[0][0] == "b" assert data[0][1] == "2"
def query() -> RedisQuery: return RedisQuery(None, False, 1000)