Skip to content

Commit a234635

Browse files
cubewise-gngMariusWirtz
authored andcommitted
Added testcase and argument check
1 parent 0ad7a68 commit a234635

2 files changed

Lines changed: 31 additions & 2 deletions

File tree

TM1py/Services/SubsetService.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,12 @@ def get_element_names(
215215
"""
216216
# backward compatibility for subset_name
217217
if "subset_name" in kwargs:
218-
subset = kwargs["subset_name"]
218+
if subset:
219+
raise ValueError("Only one parameter 'subset' or 'subset_name' may be provided.")
220+
subset = kwargs.pop("subset_name")
219221

220222
if isinstance(subset, str):
221-
subset = self.get(subset, dimension_name, hierarchy_name, private=private, **kwargs)
223+
subset = self.get(subset, dimension_name, hierarchy_name, private, **kwargs)
222224
elif not isinstance(subset, Subset):
223225
raise ValueError(f"subset argument must be of type 'str' or 'Subset', not '{type(subset)}'.")
224226

Tests/SubsetService_test.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,33 @@ def test_get_element_names_dynamic(self):
386386

387387
self.assertEqual(["USD", "EUR", "JPY", "CNY", "GBP", "NZD", "Dum'my"], element_names)
388388

389+
def test_get_element_names_arg_combination(self):
390+
element_names = self.tm1.subsets.get_element_names(
391+
dimension_name=self.dimension_name, hierarchy_name=self.dimension_name, subset=self.subset_name_static,
392+
private=False
393+
)
394+
self.assertEqual(self.static_subset.elements, element_names)
395+
396+
element_names = self.tm1.subsets.get_element_names(
397+
dimension_name=self.dimension_name, hierarchy_name=self.dimension_name, subset=self.static_subset,
398+
private=False
399+
)
400+
self.assertEqual(self.static_subset.elements, element_names)
401+
402+
element_names = self.tm1.subsets.get_element_names(
403+
dimension_name=self.dimension_name, hierarchy_name=self.dimension_name, subset_name=self.subset_name_static,
404+
private=False
405+
)
406+
self.assertEqual(self.static_subset.elements, element_names)
407+
408+
with self.assertRaisesRegex(ValueError, "Only one parameter 'subset' or 'subset_name' may be provided."):
409+
element_names = self.tm1.subsets.get_element_names(
410+
dimension_name=self.dimension_name, hierarchy_name=self.dimension_name,
411+
subset=self.subset_name_static,
412+
subset_name=self.subset_name_static,
413+
private=False
414+
)
415+
389416
def test_create_subset_with_url_unfriendly_characters_in_name(self):
390417
subset = Subset(
391418
subset_name=self.unfriendly_subset_name,

0 commit comments

Comments
 (0)