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