From a5ff00db096122885f731f1c08b9c6ec2c5fd7c4 Mon Sep 17 00:00:00 2001 From: JoschD <26184899+JoschD@users.noreply.github.com> Date: Thu, 15 Sep 2022 20:57:41 +0200 Subject: [PATCH 1/2] raise and test error --- sdds/classes.py | 5 +++++ tests/test_sdds.py | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/sdds/classes.py b/sdds/classes.py index acf0244..b9fc6c0 100644 --- a/sdds/classes.py +++ b/sdds/classes.py @@ -210,6 +210,11 @@ def __init__(self, version: str, description: Optional[Description], definitions_list: List[Definition], values_list: List[Any]) -> None: self.version = version + + name_list = [definition.name for definition in definitions_list] + if len(name_list) != len(set(name_list)): + raise ValueError("Duplicated name entries found") + self.description = description self.definitions = {definition.name: definition for definition in definitions_list} self.values = {definition.name: value for definition, value diff --git a/tests/test_sdds.py b/tests/test_sdds.py index da109ac..b04d3f1 100644 --- a/tests/test_sdds.py +++ b/tests/test_sdds.py @@ -191,6 +191,16 @@ def test_sdds_write_ascii(self): class TestClasses: + def test_duplicated_entries(self): + with pytest.raises(ValueError) as e: + SddsFile( + version="SDDS1", description=None, + definitions_list=[Parameter(name="test", type_="int"), + Parameter(name="test", type_="str")], + values_list=[1, "hello"], + ) + assert "Duplicated" in str(e) + def test_string_and_repr(self): sdds = SddsFile(version="SDDS1", description=None, definitions_list=[], values_list=[]) assert "SDDS-File" in repr(sdds) From 5e71fbafd39429ab2d039a2a38e047c1a0d7febf Mon Sep 17 00:00:00 2001 From: JoschD <26184899+JoschD@users.noreply.github.com> Date: Thu, 15 Sep 2022 21:00:43 +0200 Subject: [PATCH 2/2] patch version bump --- sdds/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdds/__init__.py b/sdds/__init__.py index f90e710..0454a13 100644 --- a/sdds/__init__.py +++ b/sdds/__init__.py @@ -6,7 +6,7 @@ __title__ = "sdds" __description__ = "SDDS file handling." __url__ = "https://github.com/pylhc/sdds" -__version__ = "0.3.0" +__version__ = "0.3.1" __author__ = "pylhc" __author_email__ = "pylhc@github.com" __license__ = "MIT"