Skip to content
Snippets Groups Projects
Commit a8b77300 authored by NolanB's avatar NolanB
Browse files

Modif code with the review

parent fb7d0b7f
No related branches found
No related tags found
No related merge requests found
Pipeline #79513 passed
......@@ -210,15 +210,15 @@ class EntityMixin(object):
def list_corpus_entities(
self,
corpus: Corpus,
name: str,
parent: str,
name: str = None,
parent: str or Element = None,
):
"""
List all entities in a corpus
This method does not support cache
:param corpus Corpus: The corpus that contains the entities to list.
:param name str: uuid for filter entities by part of their name (case-insensitive)
:param name str: For filter entities by part of their name (case-insensitive)
:param parent str: uuid for restrict entities to those linked to all transcriptions of an element and all its descendants. Note that links to metadata are ignored.
"""
query_params = {}
......@@ -226,16 +226,21 @@ class EntityMixin(object):
corpus, Corpus
), "corpus shouldn't be null and should be a Corpus"
assert name and isinstance(
name, str
), "name shouldn't be null and should be of type str"
assert parent and isinstance(
parent, str
), "parent shouldn't be null and should be of type str"
query_params["name"] = name
query_params["parent"] = parent
if name is not None:
assert name and isinstance(name, str), "name should be of type str"
query_params["name"] = name
if parent is not None:
assert (
parent
and isinstance(parent, str)
or parent
and isinstance(parent, Element)
), "parent should be of type str or Element"
query_params["parent"] = parent
if type(parent) == Element:
query_params["parent"] = parent.id
return self.api_client.paginate(
"ListCorpusEntities", id=corpus.id, **query_params
......
......@@ -688,20 +688,35 @@ def test_list_transcription_entities(fake_dummy_worker):
assert len(fake_dummy_worker.api_client.responses) == 0
def test_list_corpus_entities(fake_dummy_worker):
@pytest.mark.parametrize(
"name, parent",
[
(None, None),
("fake_name", "fake_parent"),
("fake_name", Element({"id": "fake_parent_id"})),
(None, "fake_parent"),
("fake_name", None),
],
)
def test_list_corpus_entities(fake_dummy_worker, name, parent):
corpus = Corpus({"id": "fake_corpus_id"})
name = "fake_name"
parent = "fake_parent"
query_params = {}
if name is not None:
query_params["name"] = name
if parent is not None:
query_params["parent"] = parent
if type(parent) == Element:
query_params["parent"] = parent.id
fake_dummy_worker.api_client.add_response(
"ListCorpusEntities",
id=corpus.id,
name=name,
parent=parent,
response={"id": "fake_entity_id"},
**query_params,
)
assert fake_dummy_worker.list_corpus_entities(corpus, name, parent) == {
assert fake_dummy_worker.list_corpus_entities(corpus, **query_params) == {
"id": "fake_entity_id"
}
assert len(fake_dummy_worker.api_client.history) == 1
assert len(fake_dummy_worker.api_client.responses) == 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment