Skip to content

Commit b8cbd22

Browse files
authored
Added List Messwerte to COM Zaehlwerk (#1044)
closes #994 Wie im Workshop am 11.11.2025 besprochen Ergänzung der Messwerte zum Zählwerk and added missing test class test_zaehlwerk.py
1 parent 9b0da05 commit b8cbd22

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

src/bo4e/com/zaehlwerk.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
if TYPE_CHECKING:
1515
from ..com.konzessionsabgabe import Konzessionsabgabe
16+
from ..com.messwert import Messwert
1617
from ..com.verwendungszweckpromarktrolle import VerwendungszweckProMarktrolle
1718
from ..com.zaehlzeitregister import Zaehlzeitregister
1819
from ..enum.energierichtung import Energierichtung
@@ -82,3 +83,5 @@ class Zaehlwerk(COM):
8283
"""Anzahl Ablesungen pro Jahr"""
8384
zaehlzeitregister: Optional["Zaehlzeitregister"] = None
8485
"""Erweiterte Definition der Zählzeit in Bezug auf ein Register"""
86+
messwerte: Optional[list["Messwert"]] = None
87+
"""Gemessene Werte des Zählwerks"""

tests/test_zaehlwerk.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from decimal import Decimal
2+
3+
import pytest
4+
5+
from bo4e import (
6+
Energierichtung,
7+
Konzessionsabgabe,
8+
Mengeneinheit,
9+
Messwert,
10+
Verbrauchsart,
11+
VerwendungszweckProMarktrolle,
12+
Waermenutzung,
13+
Zaehlwerk,
14+
Zaehlzeitregister,
15+
)
16+
from tests.serialization_helper import assert_serialization_roundtrip
17+
18+
19+
class TestZaehlwerk:
20+
@pytest.mark.parametrize(
21+
"zaehlwerk",
22+
[
23+
pytest.param(
24+
Zaehlwerk(
25+
zaehlwerk_id="zw-id",
26+
bezeichnung="zw-bezeichnung",
27+
richtung=Energierichtung.AUSSP,
28+
obis_kennzahl="1-0:1.8.1",
29+
wandlerfaktor=Decimal(1),
30+
einheit=Mengeneinheit.KWH,
31+
ist_schwachlastfaehig=True,
32+
verwendungszwecke=[VerwendungszweckProMarktrolle()],
33+
verbrauchsart=Verbrauchsart.W,
34+
ist_unterbrechbar=True,
35+
waermenutzung=Waermenutzung.WAERMEPUMPE,
36+
konzessionsabgabe=Konzessionsabgabe(),
37+
ist_steuerbefreit=True,
38+
vorkommastelle=6,
39+
nachkommastelle=3,
40+
ist_abrechnungsrelevant=True,
41+
anzahlAblesungen=42,
42+
zaehlzeitregister=Zaehlzeitregister(),
43+
messwerte=[Messwert()],
44+
),
45+
),
46+
],
47+
)
48+
def test_serialization_roundtrip(self, zaehlwerk: Zaehlwerk) -> None:
49+
"""
50+
Test de-/serialisation of Zaehler.
51+
"""
52+
assert_serialization_roundtrip(zaehlwerk)

0 commit comments

Comments
 (0)