From c54146a0741d0dff14fe04f5500e3f5799f64d99 Mon Sep 17 00:00:00 2001 From: mlbonhomme <bonhomme@teklia.com> Date: Tue, 30 Nov 2021 15:44:11 +0000 Subject: [PATCH] do not send confidence=None in the payload --- arkindex_worker/worker/entity.py | 17 +++-- tests/test_elements_worker/test_entities.py | 81 ++++++++++++++++++++- 2 files changed, 88 insertions(+), 10 deletions(-) diff --git a/arkindex_worker/worker/entity.py b/arkindex_worker/worker/entity.py index 449e8ce3..aa6e9a06 100644 --- a/arkindex_worker/worker/entity.py +++ b/arkindex_worker/worker/entity.py @@ -109,16 +109,19 @@ class EntityMixin(object): ) return + body = { + "entity": entity, + "length": length, + "offset": offset, + "worker_version_id": self.worker_version_id, + } + if confidence is not None: + body["confidence"] = confidence + transcription_ent = self.request( "CreateTranscriptionEntity", id=transcription, - body={ - "entity": entity, - "length": length, - "offset": offset, - "worker_version_id": self.worker_version_id, - "confidence": confidence, - }, + body=body, ) # TODO: Report transcription entity creation diff --git a/tests/test_elements_worker/test_entities.py b/tests/test_elements_worker/test_entities.py index 075f8e5b..99a7492c 100644 --- a/tests/test_elements_worker/test_entities.py +++ b/tests/test_elements_worker/test_entities.py @@ -418,7 +418,7 @@ def test_create_transcription_entity_api_error(responses, mock_elements_worker): ] -def test_create_transcription_entity(responses, mock_elements_worker): +def test_create_transcription_entity_no_confidence(responses, mock_elements_worker): responses.add( responses.POST, "http://testserver/api/v1/transcription/11111111-1111-1111-1111-111111111111/entity/", @@ -451,7 +451,83 @@ def test_create_transcription_entity(responses, mock_elements_worker): "offset": 5, "length": 10, "worker_version_id": "12341234-1234-1234-1234-123412341234", - "confidence": None, + } + + +def test_create_transcription_entity_with_confidence(responses, mock_elements_worker): + responses.add( + responses.POST, + "http://testserver/api/v1/transcription/11111111-1111-1111-1111-111111111111/entity/", + status=200, + json={ + "entity": "11111111-1111-1111-1111-111111111111", + "offset": 5, + "length": 10, + "confidence": 0.33, + }, + ) + + mock_elements_worker.create_transcription_entity( + transcription="11111111-1111-1111-1111-111111111111", + entity="11111111-1111-1111-1111-111111111111", + offset=5, + length=10, + confidence=0.33, + ) + + assert len(responses.calls) == len(BASE_API_CALLS) + 1 + assert [ + (call.request.method, call.request.url) for call in responses.calls + ] == BASE_API_CALLS + [ + ( + "POST", + "http://testserver/api/v1/transcription/11111111-1111-1111-1111-111111111111/entity/", + ), + ] + assert json.loads(responses.calls[-1].request.body) == { + "entity": "11111111-1111-1111-1111-111111111111", + "offset": 5, + "length": 10, + "worker_version_id": "12341234-1234-1234-1234-123412341234", + "confidence": 0.33, + } + + +def test_create_transcription_entity_confidence_none(responses, mock_elements_worker): + responses.add( + responses.POST, + "http://testserver/api/v1/transcription/11111111-1111-1111-1111-111111111111/entity/", + status=200, + json={ + "entity": "11111111-1111-1111-1111-111111111111", + "offset": 5, + "length": 10, + "confidence": None, + }, + ) + + mock_elements_worker.create_transcription_entity( + transcription="11111111-1111-1111-1111-111111111111", + entity="11111111-1111-1111-1111-111111111111", + offset=5, + length=10, + confidence=None, + ) + + assert len(responses.calls) == len(BASE_API_CALLS) + 1 + assert [ + (call.request.method, call.request.url) for call in responses.calls + ] == BASE_API_CALLS + [ + ( + "POST", + "http://testserver/api/v1/transcription/11111111-1111-1111-1111-111111111111/entity/", + ), + ] + assert json.loads(responses.calls[-1].request.body) == { + "entity": "11111111-1111-1111-1111-111111111111", + "offset": 5, + "length": 10, + "worker_version_id": "12341234-1234-1234-1234-123412341234", } @@ -509,7 +585,6 @@ def test_create_transcription_entity_with_cache( "offset": 5, "length": 10, "worker_version_id": "12341234-1234-1234-1234-123412341234", - "confidence": None, } # Check that created transcription entity was properly stored in SQLite cache -- GitLab