|
| 1 | +from datetime import datetime, timezone |
| 2 | +import pytest # type:ignore[import] |
| 3 | + |
| 4 | +from bo4e.com.kriteriumwert import KriteriumWert |
| 5 | +from bo4e.com.regionalepreisgarantie import RegionalePreisgarantie, RegionalePreisgarantieSchema |
| 6 | +from bo4e.com.regionalegueltigkeit import RegionaleGueltigkeit |
| 7 | +from bo4e.enum.preisgarantietyp import Preisgarantietyp |
| 8 | +from bo4e.enum.gueltigkeitstyp import Gueltigkeitstyp |
| 9 | +from bo4e.enum.tarifregionskriterium import Tarifregionskriterium |
| 10 | +from tests.serialization_helper import assert_serialization_roundtrip # type:ignore[import] |
| 11 | +from bo4e.com.zeitraum import Zeitraum |
| 12 | + |
| 13 | + |
| 14 | +class TestRegionalePreisgarantie: |
| 15 | + @pytest.mark.parametrize( |
| 16 | + "regionale_preisgarantie, expected_json_dict", |
| 17 | + [ |
| 18 | + pytest.param( |
| 19 | + RegionalePreisgarantie( |
| 20 | + preisgarantietyp=Preisgarantietyp.NUR_ENERGIEPREIS, |
| 21 | + zeitliche_gueltigkeit=Zeitraum( |
| 22 | + startzeitpunkt=datetime(2011, 2, 5, 16, 43, tzinfo=timezone.utc), |
| 23 | + endzeitpunkt=datetime(2021, 7, 30, tzinfo=timezone.utc), |
| 24 | + ), |
| 25 | + regionale_gueltigkeit=RegionaleGueltigkeit( |
| 26 | + gueltigkeitstyp=Gueltigkeitstyp.NUR_IN, |
| 27 | + kriteriums_werte=[KriteriumWert(kriterium=Tarifregionskriterium.POSTLEITZAHL, wert="01069")], |
| 28 | + ), |
| 29 | + ), |
| 30 | + { |
| 31 | + "beschreibung": None, |
| 32 | + "preisgarantietyp": "NUR_ENERGIEPREIS", |
| 33 | + "regionaleGueltigkeit": { |
| 34 | + "gueltigkeitstyp": "NUR_IN", |
| 35 | + "kriteriumsWerte": [{"kriterium": "POSTLEITZAHL", "wert": "01069"}], |
| 36 | + }, |
| 37 | + "zeitlicheGueltigkeit": { |
| 38 | + "startdatum": None, |
| 39 | + "einheit": None, |
| 40 | + "enddatum": None, |
| 41 | + "dauer": None, |
| 42 | + "endzeitpunkt": "2021-07-30T00:00:00+00:00", |
| 43 | + "startzeitpunkt": "2011-02-05T16:43:00+00:00", |
| 44 | + }, |
| 45 | + }, |
| 46 | + id="only required attributes", |
| 47 | + ), |
| 48 | + ], |
| 49 | + ) |
| 50 | + def test_regionale_preisgarantie_serialization_roundtrip(self, regionale_preisgarantie, expected_json_dict): |
| 51 | + """ |
| 52 | + Test de-/serialisation of RegionalePreisgarantie with minimal attributes. |
| 53 | + """ |
| 54 | + assert_serialization_roundtrip(regionale_preisgarantie, RegionalePreisgarantieSchema(), expected_json_dict) |
| 55 | + |
| 56 | + def test_regionalepreisgarantie_missing_required_attribute(self): |
| 57 | + with pytest.raises(TypeError) as excinfo: |
| 58 | + _ = RegionalePreisgarantie() |
| 59 | + |
| 60 | + assert "missing 3 required" in str(excinfo.value) |
0 commit comments