From 654c5cda29aea1b4729df58c2e7f526d2ed30012 Mon Sep 17 00:00:00 2001 From: Eva Bardou <ebardou@teklia.com> Date: Mon, 26 Apr 2021 10:08:16 +0000 Subject: [PATCH] Retrieve ARKINDEX_CORPUS_ID in create_entity when corpus is None --- arkindex_worker/worker/entity.py | 10 +++++++--- tests/test_elements_worker/test_entities.py | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/arkindex_worker/worker/entity.py b/arkindex_worker/worker/entity.py index b29b267c..30c1637d 100644 --- a/arkindex_worker/worker/entity.py +++ b/arkindex_worker/worker/entity.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- - - +import os from enum import Enum from arkindex_worker import logger @@ -19,11 +18,16 @@ class EntityType(Enum): class EntityMixin(object): - def create_entity(self, element, name, type, corpus, metas=None, validated=None): + def create_entity( + self, element, name, type, corpus=None, metas=None, validated=None + ): """ Create an entity on the given corpus through API Return the ID of the created entity """ + if corpus is None: + corpus = os.environ.get("ARKINDEX_CORPUS_ID") + assert element and isinstance( element, (Element, CachedElement) ), "element shouldn't be null and should be an Element or CachedElement" diff --git a/tests/test_elements_worker/test_entities.py b/tests/test_elements_worker/test_entities.py index caa0a341..1fe38b36 100644 --- a/tests/test_elements_worker/test_entities.py +++ b/tests/test_elements_worker/test_entities.py @@ -87,9 +87,22 @@ def test_create_entity_wrong_type(mock_elements_worker): assert str(e.value) == "type shouldn't be null and should be of type EntityType" -def test_create_entity_wrong_corpus(mock_elements_worker): +def test_create_entity_wrong_corpus(monkeypatch, mock_elements_worker): elt = Element({"id": "12341234-1234-1234-1234-123412341234"}) + # Triggering an error on metas param, not giving corpus should work since + # ARKINDEX_CORPUS_ID environment variable is set on mock_elements_worker + with pytest.raises(AssertionError) as e: + mock_elements_worker.create_entity( + element=elt, + name="Bob Bob", + type=EntityType.Person, + metas="wrong metas", + ) + assert str(e.value) == "metas should be of type dict" + + # Removing ARKINDEX_CORPUS_ID environment variable should give an error when corpus=None + monkeypatch.delenv("ARKINDEX_CORPUS_ID") with pytest.raises(AssertionError) as e: mock_elements_worker.create_entity( element=elt, -- GitLab