diff --git a/tests/test_reporting.py b/tests/test_reporting.py index 3332702e1962c98132bb74effa54a813a7195438..11e45c52da153d7fb61de00d8cf532a09e0bc7a3 100644 --- a/tests/test_reporting.py +++ b/tests/test_reporting.py @@ -1,4 +1,9 @@ # -*- coding: utf-8 -*- +import json +import uuid +from datetime import datetime +from tempfile import NamedTemporaryFile + import pytest from apistar.exceptions import ErrorResponse @@ -6,10 +11,16 @@ from arkindex_worker.reporting import Reporter def test_init(): - reporter = Reporter("worker") + version_id = str(uuid.uuid4()) + reporter = Reporter(name="Worker", slug="worker-slug", version=version_id) assert "started" in reporter.report_data del reporter.report_data["started"] - assert reporter.report_data == {"slug": "worker", "version": "0.0", "elements": {}} + assert reporter.report_data == { + "name": "Worker", + "slug": "worker-slug", + "version": version_id, + "elements": {}, + } def test_process(): @@ -213,3 +224,32 @@ def test_error(): "content": '{"coffee": "Can\'t touch this"}', }, ] + + +def test_reporter_save(mocker): + datetime_mock = mocker.MagicMock() + datetime_mock.utcnow.return_value = datetime(2000, 1, 1) + mocker.patch("arkindex_worker.reporting.datetime", datetime_mock) + version_id = str(uuid.uuid4()) + reporter = Reporter(name="Worker", slug="worker-slug", version=version_id) + reporter.add_element("myelement", type="text_line", type_count=4) + with NamedTemporaryFile() as f: + reporter.save(f.name) + exported_data = json.load(f) + assert exported_data == { + "name": "Worker", + "slug": "worker-slug", + "started": "2000-01-01T00:00:00", + "version": version_id, + "elements": { + "myelement": { + "classifications": {}, + "elements": {"text_line": 4}, + "entities": [], + "errors": [], + "metadata": [], + "started": "2000-01-01T00:00:00", + "transcriptions": 0, + } + }, + }