Skip to content

Commit ba8a277

Browse files
committed
fix R77 issue with lists of alternative labels + new test_b03m
1 parent f781e58 commit ba8a277

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

src/pyirk/core.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,10 +1539,12 @@ def process(self):
15391539
existing_value = self.new_kwargs.get(skwap.new_key)
15401540
if existing_value is None:
15411541
self.new_kwargs[skwap.new_key] = skwap.new_value
1542-
elif isinstance(existing_value, list):
1543-
existing_value.append(skwap.new_value)
15441542
else:
1545-
self.new_kwargs[skwap.new_key] = [existing_value, skwap.new_value]
1543+
if not isinstance(existing_value, list):
1544+
existing_value = [existing_value]
1545+
if not isinstance(skwap.new_value, list):
1546+
skwap.new_value = [skwap.new_value]
1547+
self.new_kwargs[skwap.new_key] = [*existing_value, *skwap.new_value]
15461548

15471549
return self.new_kwargs, self.lang_related_kwargs
15481550

tests/test_core.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1958,6 +1958,28 @@ def test_b02m__multilingual_relations2(self):
19581958
expected_result = [p.Literal("test1", lang="en"), p.Literal("test2", lang="en")]
19591959
self.assertEqual(I1001.R77__has_alternative_label, expected_result)
19601960

1961+
def test_b03m__multilingual_relations3(self):
1962+
"""test list of multiple alternative labels"""
1963+
with p.uri_context(uri=TEST_BASE_URI, prefix="ut"):
1964+
I1000 = p.create_item(
1965+
R1__has_label="foo",
1966+
R77__has_alternative_label=["df1", "df2"],
1967+
R77__has_alternative_label__de="de1",
1968+
)
1969+
self.assertEqual(I1000.R77__has_alternative_label, ["df1" @ p.df, "df2" @ p.df, "de1" @ p.de])
1970+
I1001 = p.create_item(
1971+
R1__has_label="foo",
1972+
R77__has_alternative_label="df1",
1973+
R77__has_alternative_label__de=["de1", "de2"],
1974+
)
1975+
self.assertEqual(I1001.R77__has_alternative_label, ["df1" @ p.df, "de1" @ p.de, "de2" @ p.de])
1976+
I1002 = p.create_item(
1977+
R1__has_label="foo",
1978+
R77__has_alternative_label=["df1", "df2"],
1979+
R77__has_alternative_label__de=["de1", "de2"],
1980+
)
1981+
self.assertEqual(I1002.R77__has_alternative_label, ["df1" @ p.df, "df2" @ p.df, "de1" @ p.de, "de2" @ p.de])
1982+
19611983

19621984
class Test_04_Core(HousekeeperMixin, unittest.TestCase):
19631985
"""

0 commit comments

Comments
 (0)