diff --git a/inventory_provider/routes/jobs.py b/inventory_provider/routes/jobs.py index ac117e84e5057202bbc46f188a09e93efeef4cd8..384e62a28ac2842f2edb00f95fa82e3652c6142d 100644 --- a/inventory_provider/routes/jobs.py +++ b/inventory_provider/routes/jobs.py @@ -93,7 +93,7 @@ def load_task_log(): r = common.get_next_redis() for k in r.scan_iter('joblog:*'): - value = r.get(k) + value = r.get(k.decode('utf-8')) if not value: logger.error(f'no data for log entry: {k.decode("utf-8")}') continue diff --git a/test/test_job_routes.py b/test/test_job_routes.py index 4f2b473c3abe34cc5c0744e0b48cde14c96522eb..b563ca1312a26d1eeb919de01d5e6c52f38b1a40 100644 --- a/test/test_job_routes.py +++ b/test/test_job_routes.py @@ -254,3 +254,29 @@ def test_latchdb(client, mocked_redis): assert rv.status_code == 200 latch = json.loads(rv.data.decode('utf-8')) jsonschema.validate(latch, DB_LATCH_SCHEMA) + + + +TEST_EVENTS = { + 'joblog:AAAA:task-aaa': {'type': 'task-aaaa', 'uuid': 'AAAA', 'clock': 999}, + 'joblog:AAAB:task-infox': {'type': 'task-infox', 'uuid': 'AAAB', 'clock': 999}, + 'joblog:BBBB:task-info:99': {'type': 'task-info', 'uuid': 'BBBB', 'clock': 99}, + 'joblog:BBBB:task-info:999': {'type': 'task-info', 'uuid': 'BBBB', 'clock': 999}, + 'joblog:AAAA:task-warning:88': {'type': 'task-warning', 'uuid': 'AAAA', 'clock': 88}, + 'joblog:AAAA:task-warning:888': {'type': 'task-warning', 'uuid': 'AAAA', 'clock': 888}, + 'joblog:AAAA:task-error:77': {'type': 'task-error', 'uuid': 'AAAA', 'clock': 77}, + 'joblog:AAAA:task-error:777': {'type': 'task-error', 'uuid': 'AAAA', 'clock': 777} +} + +def test_job_log(client): + + db = backend_db() + for k, v in TEST_EVENTS.items(): + db[k] = json.dumps(v) + + rv = client.post( + 'jobs/log', + headers=DEFAULT_REQUEST_HEADERS) + assert rv.status_code == 200 + result = json.loads(rv.data.decode('utf-8')) + assert len(result.keys()) == 3 # TODO: make a proper test \ No newline at end of file