From 8836b7bdcc2c7c0983a2c3c13777318387b9754e Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Thu, 4 Jun 2020 09:25:36 +0200
Subject: [PATCH] skeleton unit test of the new route

---
 inventory_provider/routes/jobs.py |  2 +-
 test/test_job_routes.py           | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/inventory_provider/routes/jobs.py b/inventory_provider/routes/jobs.py
index ac117e84..384e62a2 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 4f2b473c..b563ca13 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
-- 
GitLab