|
| 1 | +import pytest # type:ignore[import] |
| 2 | + |
| 3 | +from bo4e.bo.preisblattnetznutzung import PreisblattNetznutzung, PreisblattNetznutzungSchema |
| 4 | +from bo4e.enum.bilanzierungsmethode import Bilanzierungsmethode |
| 5 | +from bo4e.enum.kundengruppe import Kundengruppe |
| 6 | +from bo4e.enum.netzebene import Netzebene |
| 7 | +from bo4e.enum.preisstatus import Preisstatus |
| 8 | +from bo4e.enum.sparte import Sparte |
| 9 | +from tests.serialization_helper import assert_serialization_roundtrip # type:ignore[import] |
| 10 | +from tests.test_marktteilnehmer import example_marktteilnehmer # type:ignore[import] |
| 11 | +from tests.test_preisposition import example_preisposition # type:ignore[import] |
| 12 | +from tests.test_zeitraum import example_zeitraum # type:ignore[import] |
| 13 | + |
| 14 | + |
| 15 | +class TestPreisblatt: |
| 16 | + @pytest.mark.parametrize( |
| 17 | + "preisblatt_netznutzung", |
| 18 | + [ |
| 19 | + pytest.param( |
| 20 | + PreisblattNetznutzung( |
| 21 | + bezeichnung="foo", |
| 22 | + sparte=Sparte.STROM, |
| 23 | + preisstatus=Preisstatus.ENDGUELTIG, |
| 24 | + preispositionen=[example_preisposition], |
| 25 | + gueltigkeit=example_zeitraum, |
| 26 | + herausgeber=example_marktteilnehmer, |
| 27 | + bilanzierungsmethode=Bilanzierungsmethode.TLP_GEMEINSAM, |
| 28 | + netzebene=Netzebene.MSP, |
| 29 | + kundengruppe=Kundengruppe.SLP_G_GKO, |
| 30 | + ) |
| 31 | + ), |
| 32 | + ], |
| 33 | + ) |
| 34 | + def test_serialization_roundtrip(self, preisblatt_netznutzung: PreisblattNetznutzung): |
| 35 | + """ |
| 36 | + Test de-/serialisation |
| 37 | + """ |
| 38 | + assert_serialization_roundtrip(preisblatt_netznutzung, PreisblattNetznutzungSchema()) |
| 39 | + |
| 40 | + def test_missing_required_attribute(self): |
| 41 | + with pytest.raises(TypeError) as excinfo: |
| 42 | + _ = PreisblattNetznutzung() |
| 43 | + assert "missing 8 required" in str(excinfo.value) # 5 from preisblatt + 3 from preisblatt netznutzung |
0 commit comments