diff --git a/CHANGES.rst b/CHANGES.rst index 70db4639d45f92a18762503746c17a3e39de13e3..f55155226d8ca92fdaa316c4dc903058368ce489 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 3eefcb9dd5b38e2c1dc061052455dd97bcd51e6c..7dea76edb3dc51b6e5e8223e9f941a35c1e364d6 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 79258a06e7d6577cfed4567389532784c482889b..c38aa8cc42bda67a3668feaa4089da1adc0d5a34 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 45464b060f13e62c4dde4cb92d710b69591d3c5f..2bed88733c7b0c1970461cab84a7a163cd23af30 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