From 9faa982bfb51c58f0da65af138f8da52bb636f7e Mon Sep 17 00:00:00 2001 From: Toni Sissala <toni.sissala@tuni.fi> Date: Thu, 9 Jun 2022 12:40:15 +0000 Subject: [PATCH] Release 1.0.1 Render subject in oai_dc metadata regardless if the study.keyword has a value (Fixes #31). --- CHANGES.rst | 10 ++++++++++ VERSION | 2 +- kuha_oai_pmh_repo_handler/templates/oai_dc.xml | 1 - tests/integration/test_metadata_responses.py | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 70db463..f551552 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,16 @@ Kuha OAI-PMH Repo Handler Changelog =================================== +1.0.1 (2022-06-09) +------------------ + +Fixed +^^^^^ + +* Render subject in oai_dc metadata regardless if the study.keyword + has a value. (Fixes `#31`_) + + 1.0.0 (2022-03-16) ------------------ diff --git a/VERSION b/VERSION index 3eefcb9..7dea76e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0 +1.0.1 diff --git a/kuha_oai_pmh_repo_handler/templates/oai_dc.xml b/kuha_oai_pmh_repo_handler/templates/oai_dc.xml index 79258a0..c38aa8c 100644 --- a/kuha_oai_pmh_repo_handler/templates/oai_dc.xml +++ b/kuha_oai_pmh_repo_handler/templates/oai_dc.xml @@ -23,7 +23,6 @@ xml:lang="${abstr.get_language()}">${abstr.get_value()}</dc:description> <dc:subject py:for="keyword in study.keywords" - py:if="keyword.get_value()" py:with="subject_value = keyword.attr_description.get_value() if keyword.attr_description.get_value() else keyword.get_value()" xml:lang="${keyword.get_language()}">${subject_value}</dc:subject> diff --git a/tests/integration/test_metadata_responses.py b/tests/integration/test_metadata_responses.py index 45464b0..2bed887 100644 --- a/tests/integration/test_metadata_responses.py +++ b/tests/integration/test_metadata_responses.py @@ -575,6 +575,20 @@ class TestGetRecordOAIDCResponses(OAIRequestsTestBase): el_text = ''.join(rights_el.itertext()) self.assertEqual(expected[el_lang], el_text) + def test_contains_subject_description_when_keyword_has_no_value(self): + """Test fix for #31 at BB""" + self.return_record.add_keywords(None, 'fi', description='joku kuvaus') + self.return_record.add_keywords(None, 'en', description='some description') + expected = {'fi': 'joku kuvaus', + 'en': 'some description'} + self._request() + subject_els = self._dc_root.findall('oai_dc:dc/dc:subject', self._xmlns) + self.assertEqual(len(subject_els), 2) + for subject_el in subject_els: + el_lang = subject_el.attrib.get('{%s}lang' % (self._xmlns['xml'],)) + el_text = ''.join(subject_el.itertext()) + self.assertEqual(expected[el_lang], el_text) + # ead3 metadataprefix -- GitLab