From 542eb574919b431fef04f9fc740fe19ddc7e5486 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Tue, 11 Nov 2025 14:05:17 +0100 Subject: [PATCH 1/4] #994 Added Messwerte to Zaehlwerk and Testclass --- src/bo4e/com/zaehlwerk.py | 3 +++ tests/test_zaehlwerk.py | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 tests/test_zaehlwerk.py diff --git a/src/bo4e/com/zaehlwerk.py b/src/bo4e/com/zaehlwerk.py index d1ca989ec..65f0b0761 100644 --- a/src/bo4e/com/zaehlwerk.py +++ b/src/bo4e/com/zaehlwerk.py @@ -12,6 +12,7 @@ from .com import COM if TYPE_CHECKING: + from ..com.messwert import Messwert from ..com.konzessionsabgabe import Konzessionsabgabe from ..com.verwendungszweckpromarktrolle import VerwendungszweckProMarktrolle from ..com.zaehlzeitregister import Zaehlzeitregister @@ -82,3 +83,5 @@ class Zaehlwerk(COM): """Anzahl Ablesungen pro Jahr""" zaehlzeitregister: Optional["Zaehlzeitregister"] = None """Erweiterte Definition der Zählzeit in Bezug auf ein Register""" + messwerte: Optional[list["Messwert"]] = None + """Gemessene Werte des Zählwerks""" diff --git a/tests/test_zaehlwerk.py b/tests/test_zaehlwerk.py new file mode 100644 index 000000000..91d40bb5a --- /dev/null +++ b/tests/test_zaehlwerk.py @@ -0,0 +1,42 @@ +from decimal import Decimal + +import pytest + +from bo4e import Energierichtung, Mengeneinheit, Messwert, Konzessionsabgabe, Verbrauchsart, Verwendungszweck, Waermenutzung, Zaehlwerk, Zaehlzeitregister +from tests.serialization_helper import assert_serialization_roundtrip + + +class TestZaehlwerk: + @pytest.mark.parametrize( + "zaehlwerk", + [ + pytest.param( + Zaehlwerk( + zaehlwerk_id="zw-id", + bezeichnung="zw-bezeichnung", + richtung=Energierichtung.AUSSP, + obis_kennzahl="1-0:1.8.1", + wandlerfaktor=Decimal(1), + einheit=Mengeneinheit.KWH, + ist_schwachlastfaehig=True, + verwendungszwecke=[Verwendungszweck()], + verbrauchsart=Verbrauchsart.W, + ist_unterbrechbar=True, + waermenutzung=Waermenutzung.WAERMEPUMPE, + konzessionsabgabe=Konzessionsabgabe(), + ist_steuerbefreit=True, + vorkommastelle=6, + nachkommastelle=3, + ist_abrechnungsrelevant=True, + anzahlAblesungen=42, + zaehlzeitregister=Zaehlzeitregister(), + messwerte=[Messwert()], + ), + ), + ], + ) + def test_serialization_roundtrip(self, zaehlwerk: Zaehlwerk) -> None: + """ + Test de-/serialisation of Zaehler. + """ + assert_serialization_roundtrip(zaehlwerk) From c9c04fc381c8b44b0c0bb7362c3887f8992720bf Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Tue, 11 Nov 2025 14:08:32 +0100 Subject: [PATCH 2/4] #994 fix linting --- tests/test_zaehlwerk.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/test_zaehlwerk.py b/tests/test_zaehlwerk.py index 91d40bb5a..8a04341d9 100644 --- a/tests/test_zaehlwerk.py +++ b/tests/test_zaehlwerk.py @@ -2,7 +2,17 @@ import pytest -from bo4e import Energierichtung, Mengeneinheit, Messwert, Konzessionsabgabe, Verbrauchsart, Verwendungszweck, Waermenutzung, Zaehlwerk, Zaehlzeitregister +from bo4e import ( + Energierichtung, + Mengeneinheit, + Messwert, + Konzessionsabgabe, + Verbrauchsart, + Verwendungszweck, + Waermenutzung, + Zaehlwerk, + Zaehlzeitregister, +) from tests.serialization_helper import assert_serialization_roundtrip From 74dd6967c96023db7453b9e711556c7f187e45cf Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Tue, 11 Nov 2025 14:10:42 +0100 Subject: [PATCH 3/4] #994 fix Verwendungszweck Type --- tests/test_zaehlwerk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_zaehlwerk.py b/tests/test_zaehlwerk.py index 8a04341d9..914ad720d 100644 --- a/tests/test_zaehlwerk.py +++ b/tests/test_zaehlwerk.py @@ -8,7 +8,7 @@ Messwert, Konzessionsabgabe, Verbrauchsart, - Verwendungszweck, + VerwendungszweckProMarktrolle, Waermenutzung, Zaehlwerk, Zaehlzeitregister, @@ -29,7 +29,7 @@ class TestZaehlwerk: wandlerfaktor=Decimal(1), einheit=Mengeneinheit.KWH, ist_schwachlastfaehig=True, - verwendungszwecke=[Verwendungszweck()], + verwendungszwecke=[VerwendungszweckProMarktrolle()], verbrauchsart=Verbrauchsart.W, ist_unterbrechbar=True, waermenutzung=Waermenutzung.WAERMEPUMPE, From 311bcaa8d98e5a3acc8947111141a4459b14c414 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Tue, 11 Nov 2025 14:12:33 +0100 Subject: [PATCH 4/4] #994 Linting --- src/bo4e/com/zaehlwerk.py | 2 +- tests/test_zaehlwerk.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bo4e/com/zaehlwerk.py b/src/bo4e/com/zaehlwerk.py index 65f0b0761..6dbb138af 100644 --- a/src/bo4e/com/zaehlwerk.py +++ b/src/bo4e/com/zaehlwerk.py @@ -12,8 +12,8 @@ from .com import COM if TYPE_CHECKING: - from ..com.messwert import Messwert from ..com.konzessionsabgabe import Konzessionsabgabe + from ..com.messwert import Messwert from ..com.verwendungszweckpromarktrolle import VerwendungszweckProMarktrolle from ..com.zaehlzeitregister import Zaehlzeitregister from ..enum.energierichtung import Energierichtung diff --git a/tests/test_zaehlwerk.py b/tests/test_zaehlwerk.py index 914ad720d..7008a0517 100644 --- a/tests/test_zaehlwerk.py +++ b/tests/test_zaehlwerk.py @@ -4,9 +4,9 @@ from bo4e import ( Energierichtung, + Konzessionsabgabe, Mengeneinheit, Messwert, - Konzessionsabgabe, Verbrauchsart, VerwendungszweckProMarktrolle, Waermenutzung,