From bfa6e577c442fd5a8692a3dd82f009a67ba8b8ab Mon Sep 17 00:00:00 2001 From: Lorenzo Vagliano Date: Mon, 13 Jan 2025 12:53:01 +0100 Subject: [PATCH] fix[data builder]: Access doi value directly in literature Signed-off-by: Lorenzo Vagliano --- inspire_schemas/builders/data.py | 5 +++-- tests/integration/test_builders.py | 4 +++- tests/unit/test_data_builder.py | 11 +++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/inspire_schemas/builders/data.py b/inspire_schemas/builders/data.py index 7e1f9c0d..1dede933 100644 --- a/inspire_schemas/builders/data.py +++ b/inspire_schemas/builders/data.py @@ -301,7 +301,7 @@ def add_literature(self, doi=None, record=None): """Add literature. :param doi: doi of the literature - :type doi: dict + :type doi: str :param record: dictionary with ``$ref`` pointing to proper record. :type record: dict @@ -311,6 +311,7 @@ def add_literature(self, doi=None, record=None): } if doi: - literature_dict['doi'] = doi + doi_dict = {"value": doi} + literature_dict['doi'] = doi_dict self._append_to('literature', literature_dict) diff --git a/tests/integration/test_builders.py b/tests/integration/test_builders.py index 09adccf4..285c1e47 100644 --- a/tests/integration/test_builders.py +++ b/tests/integration/test_builders.py @@ -485,7 +485,9 @@ def test_data_builder(data_data): literatures = data_data['literature'] for literature in literatures: - builder.add_literature(literature.get("doi"), literature.get('record')) + doi_value = literature.get("doi", {}).get("value") + record = literature.get("record") + builder.add_literature(doi_value, record) assert builder.record['literature'] == literatures urls = data_data['urls'] diff --git a/tests/unit/test_data_builder.py b/tests/unit/test_data_builder.py index fb39cb7f..5d4f03bb 100644 --- a/tests/unit/test_data_builder.py +++ b/tests/unit/test_data_builder.py @@ -119,10 +119,13 @@ def test_add_literature(): result = builder.record.get("literature") expected = [ - { - "doi": doi, - "record": record, - } + { + "doi": + { + "value":"10.1234/example.doi" + }, + "record": record + } ] assert result == expected