diff --git a/README.rst b/README.rst index dc6a1b0d7..a9f288276 100644 --- a/README.rst +++ b/README.rst @@ -96,4 +96,3 @@ Andere nennenswerte BO4E Implementierungen * `PHP `_ (und `Schemas `_) .. _`BO4E website`: https://www.bo4e.de/dokumentation -.. _`Contribution Guide`: CONTRIBUTING.md diff --git a/src/bo4e/__init__.py b/src/bo4e/__init__.py index 255977773..dd7220822 100644 --- a/src/bo4e/__init__.py +++ b/src/bo4e/__init__.py @@ -99,7 +99,6 @@ "VerwendungszweckProMarktrolle", "Zaehlwerk", "Zaehlzeitregister", - "Zeitraum", "Zeitreihenwert", "Zeitspanne", "Zustaendigkeit", @@ -293,7 +292,6 @@ from .com.verwendungszweckpromarktrolle import VerwendungszweckProMarktrolle from .com.zaehlwerk import Zaehlwerk from .com.zaehlzeitregister import Zaehlzeitregister -from .com.zeitraum import Zeitraum from .com.zeitreihenwert import Zeitreihenwert from .com.zeitspanne import Zeitspanne from .com.zustaendigkeit import Zustaendigkeit diff --git a/src/bo4e/bo/ausschreibung.py b/src/bo4e/bo/ausschreibung.py index 59840cefe..7d4c5bf8c 100644 --- a/src/bo4e/bo/ausschreibung.py +++ b/src/bo4e/bo/ausschreibung.py @@ -15,7 +15,7 @@ if TYPE_CHECKING: from ..com.ausschreibungslos import Ausschreibungslos - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne from ..enum.ausschreibungsportal import Ausschreibungsportal from ..enum.ausschreibungsstatus import Ausschreibungsstatus from ..enum.ausschreibungstyp import Ausschreibungstyp @@ -52,16 +52,14 @@ class Ausschreibung(Geschaeftsobjekt): Mit diesem Objekt können Geschäftspartner übertragen werden. Sowohl Unternehmen, als auch Privatpersonen können Geschäftspartner sein """ - abgabefrist: Optional["Zeitraum"] = None - """ - Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. - Es muss daher entweder eine Dauer oder ein Zeitraum in Form von Start und Ende angegeben sein - """ - bindefrist: Optional["Zeitraum"] = None - """ - Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. - Es muss daher entweder eine Dauer oder ein Zeitraum in Form von Start und Ende angegeben sein - """ + abgabefrist: Optional["Zeitspanne"] = None + # """ + # Todo: Sinnigen Docstring schreiben + # """ + bindefrist: Optional["Zeitspanne"] = None + # """ + # Todo: Sinnigen Docstring schreiben + # """ #: Die einzelnen Lose, aus denen sich die Ausschreibung zusammensetzt lose: Optional[list["Ausschreibungslos"]] = None diff --git a/src/bo4e/bo/fremdkosten.py b/src/bo4e/bo/fremdkosten.py index 1f4a6bbfb..c16d50a9e 100644 --- a/src/bo4e/bo/fremdkosten.py +++ b/src/bo4e/bo/fremdkosten.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: from ..com.betrag import Betrag from ..com.fremdkostenblock import Fremdkostenblock - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods @@ -36,8 +36,8 @@ class Fremdkosten(Geschaeftsobjekt): """ typ: Annotated[Optional["Typ"], Field(alias="_typ")] = Typ.FREMDKOSTEN - #: Für diesen Zeitraum wurden die Kosten ermittelt - gueltigkeit: Optional["Zeitraum"] = None + #: Für diese Zeitspanne wurden die Kosten ermittelt + gueltigkeit: Optional["Zeitspanne"] = None #: Die Gesamtsumme über alle Kostenblöcke und -positionen summe_kosten: Optional["Betrag"] = None #: In Kostenblöcken werden Kostenpositionen zusammengefasst. Beispiele: Netzkosten, Umlagen, Steuern etc diff --git a/src/bo4e/bo/kosten.py b/src/bo4e/bo/kosten.py index afac21efa..a37fa70ad 100644 --- a/src/bo4e/bo/kosten.py +++ b/src/bo4e/bo/kosten.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: from ..com.betrag import Betrag from ..com.kostenblock import Kostenblock - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne from ..enum.kostenklasse import Kostenklasse @@ -39,8 +39,8 @@ class Kosten(Geschaeftsobjekt): typ: Annotated[Optional["Typ"], Field(alias="_typ")] = Typ.KOSTEN #: Klasse der Kosten, beispielsweise Fremdkosten kostenklasse: Optional["Kostenklasse"] = None - #: Für diesen Zeitraum wurden die Kosten ermittelt - gueltigkeit: Optional["Zeitraum"] = None + #: Für diese Zeitspanne wurden die Kosten ermittelt + gueltigkeit: Optional["Zeitspanne"] = None #: In Kostenblöcken werden Kostenpositionen zusammengefasst. Beispiele: Netzkosten, Umlagen, Steuern etc kostenbloecke: Optional[list["Kostenblock"]] = None diff --git a/src/bo4e/bo/preisblatt.py b/src/bo4e/bo/preisblatt.py index 1c6803719..a379b418d 100644 --- a/src/bo4e/bo/preisblatt.py +++ b/src/bo4e/bo/preisblatt.py @@ -15,7 +15,7 @@ if TYPE_CHECKING: from ..com.preisposition import Preisposition - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne from ..enum.preisstatus import Preisstatus from ..enum.sparte import Sparte from .marktteilnehmer import Marktteilnehmer @@ -47,8 +47,8 @@ class Preisblatt(Geschaeftsobjekt): sparte: Optional["Sparte"] = None #: Merkmal, das anzeigt, ob es sich um vorläufige oder endgültige Preise handelt preisstatus: Optional["Preisstatus"] = None - #: Der Zeitraum für den der Preis festgelegt ist - gueltigkeit: Optional["Zeitraum"] = None + #: Die Zeitspanne, für die der Preis festgelegt ist + gueltigkeit: Optional["Zeitspanne"] = None #: Die einzelnen Positionen, die mit dem Preisblatt abgerechnet werden können. Z.B. Arbeitspreis, Grundpreis etc preispositionen: Optional[list["Preisposition"]] = None #: Der Netzbetreiber, der die Preise veröffentlicht hat diff --git a/src/bo4e/bo/rechnung.py b/src/bo4e/bo/rechnung.py index 2672dbbea..a8655f232 100644 --- a/src/bo4e/bo/rechnung.py +++ b/src/bo4e/bo/rechnung.py @@ -16,7 +16,7 @@ from ..com.betrag import Betrag from ..com.rechnungsposition import Rechnungsposition from ..com.steuerbetrag import Steuerbetrag - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne from ..enum.netznutzungrechnungsart import NetznutzungRechnungsart from ..enum.netznutzungrechnungstyp import NetznutzungRechnungstyp from ..enum.rechnungsstatus import Rechnungsstatus @@ -57,8 +57,8 @@ class Rechnung(Geschaeftsobjekt): faelligkeitsdatum: Optional[pydantic.AwareDatetime] = None #: Ein kontextbezogender Rechnungstyp, z.B. Netznutzungsrechnung rechnungstyp: Optional["Rechnungstyp"] = None - #: Der Zeitraum der zugrunde liegenden Lieferung zur Rechnung - rechnungsperiode: Optional["Zeitraum"] = None + #: Die Zeitspanne der zugrunde liegenden Lieferung zur Rechnung + rechnungsperiode: Optional["Zeitspanne"] = None #: Der Aussteller der Rechnung, die Rollencodenummer kennt man über den im Geschäftspartner verlinkten Marktteilnehmer rechnungsersteller: Optional["Geschaeftspartner"] = None #: Der Aussteller der Rechnung, die Rollencodenummer kennt man über den im Geschäftspartner verlinkten Marktteilnehmer diff --git a/src/bo4e/bo/tarifinfo.py b/src/bo4e/bo/tarifinfo.py index 9919eb232..6bc9914d8 100644 --- a/src/bo4e/bo/tarifinfo.py +++ b/src/bo4e/bo/tarifinfo.py @@ -17,7 +17,7 @@ if TYPE_CHECKING: from ..com.energiemix import Energiemix from ..com.vertragskonditionen import Vertragskonditionen - from ..com.zeitraum import Zeitraum + from ..com.zeitspanne import Zeitspanne from ..enum.kundentyp import Kundentyp from ..enum.registeranzahl import Registeranzahl from ..enum.sparte import Sparte @@ -64,8 +64,8 @@ class Tarifinfo(Geschaeftsobjekt): #: Freitext bemerkung: Optional[str] = None - #: Angabe, in welchem Zeitraum der Tarif gültig ist - zeitliche_gueltigkeit: Optional["Zeitraum"] = None + #: Angabe, in welcher Zeitspanne der Tarif gültig ist + zeitliche_gueltigkeit: Optional["Zeitspanne"] = None #: Der Energiemix, der für diesen Tarif gilt energiemix: Optional["Energiemix"] = None #: Mindestlaufzeiten und Kündigungsfristen zusammengefasst diff --git a/src/bo4e/com/angebotsteil.py b/src/bo4e/com/angebotsteil.py index ee7658e5d..02cb9a2e5 100644 --- a/src/bo4e/com/angebotsteil.py +++ b/src/bo4e/com/angebotsteil.py @@ -13,7 +13,7 @@ from .angebotsposition import Angebotsposition from .betrag import Betrag from .menge import Menge - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods # pylint: disable=no-name-in-module @@ -52,4 +52,4 @@ class Angebotsteil(COM): #: Summe der Jahresenergiekosten aller in diesem Angebotsteil enthaltenen Lieferstellen gesamtkostenangebotsteil: Optional["Betrag"] = None #: Hier kann der Belieferungszeitraum angegeben werden, für den dieser Angebotsteil gilt - lieferzeitraum: Optional["Zeitraum"] = None + lieferzeitraum: Optional["Zeitspanne"] = None diff --git a/src/bo4e/com/aufabschlag.py b/src/bo4e/com/aufabschlag.py index c5006a6d5..46d95feef 100644 --- a/src/bo4e/com/aufabschlag.py +++ b/src/bo4e/com/aufabschlag.py @@ -13,7 +13,7 @@ from ..enum.aufabschlagsziel import AufAbschlagsziel from ..enum.waehrungseinheit import Waehrungseinheit from .preisstaffel import Preisstaffel - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods, too-many-instance-attributes @@ -49,5 +49,5 @@ class AufAbschlag(COM): (Nur im Falle absoluter Aufschlagstypen). """ #: Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind. website: Optional[str] = None - #: Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind. - gueltigkeitszeitraum: Optional["Zeitraum"] = None + #: Zeitspanne, in der die Vereinbarung gültig ist. + gueltigkeitszeitraum: Optional["Zeitspanne"] = None diff --git a/src/bo4e/com/aufabschlagregional.py b/src/bo4e/com/aufabschlagregional.py index 0a97ad4fc..49e3b4535 100644 --- a/src/bo4e/com/aufabschlagregional.py +++ b/src/bo4e/com/aufabschlagregional.py @@ -18,7 +18,7 @@ from .preisgarantie import Preisgarantie from .tarifeinschraenkung import Tarifeinschraenkung from .vertragskonditionen import Vertragskonditionen - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods, too-many-instance-attributes # pylint: disable=no-name-in-module @@ -64,7 +64,7 @@ class AufAbschlagRegional(COM): #: Durch die Anwendung des Auf/Abschlags kann eine Änderung des Tarifnamens auftreten. tarifnamensaenderungen: Optional[str] = None #: Zeitraum, in dem der Abschlag zur Anwendung kommen kann - gueltigkeitszeitraum: Optional["Zeitraum"] = None + gueltigkeitszeitraum: Optional["Zeitspanne"] = None energiemixaenderung: Optional["Energiemix"] = None """ Der Energiemix kann sich durch einen AufAbschlag ändern (z.B. zwei Cent Aufschlag für Ökostrom: Sollte dies der Fall sein, wird hier die neue Zusammensetzung des Energiemix angegeben.""" diff --git a/src/bo4e/com/ausschreibungsdetail.py b/src/bo4e/com/ausschreibungsdetail.py index c7b3481b3..002bc2c3a 100644 --- a/src/bo4e/com/ausschreibungsdetail.py +++ b/src/bo4e/com/ausschreibungsdetail.py @@ -11,7 +11,7 @@ from ..enum.zaehlertyp import Zaehlertyp from .adresse import Adresse from .menge import Menge - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods, too-many-instance-attributes @@ -40,7 +40,7 @@ class Ausschreibungsdetail(COM): #: Die Adresse an der die Marktlokation sich befindet marktlokationsadresse: Optional["Adresse"] = None #: Angefragter Zeitraum für die ausgeschriebene Belieferung - lieferzeitraum: Optional["Zeitraum"] = None + lieferzeitraum: Optional["Zeitspanne"] = None #: Bezeichnung des zuständigen Netzbetreibers, z.B. 'Stromnetz Hamburg GmbH' netzbetreiber: Optional[str] = None diff --git a/src/bo4e/com/ausschreibungslos.py b/src/bo4e/com/ausschreibungslos.py index e42906f08..430b02193 100644 --- a/src/bo4e/com/ausschreibungslos.py +++ b/src/bo4e/com/ausschreibungslos.py @@ -16,7 +16,7 @@ from ..enum.vertragsform import Vertragsform from .ausschreibungsdetail import Ausschreibungsdetail from .menge import Menge - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne @postprocess_docstring @@ -55,7 +55,7 @@ class Ausschreibungslos(COM): lieferstellen: Optional[list["Ausschreibungsdetail"]] = None #: Zeitraum, für den die in diesem Los enthaltenen Lieferstellen beliefert werden sollen - lieferzeitraum: Optional["Zeitraum"] = None + lieferzeitraum: Optional["Zeitspanne"] = None #: Bemerkung des Kunden zum Los bemerkung: Optional[str] = None @@ -66,13 +66,14 @@ class Ausschreibungslos(COM): #: Maximalmenge Toleranzband (kWh, %) wunsch_maximalmenge: Optional["Menge"] = None - wiederholungsintervall: Optional["Zeitraum"] = None + wiederholungsintervall: Optional["Zeitspanne"] = None """ In welchem Intervall die Angebotsabgabe wiederholt werden darf. Angabe nur gesetzt für die 2. Phase bei öffentlich-rechtlichen Ausschreibungen """ + #: Was bedeutet das hier genau? Wär das dann eher eine Menge? #: Kundenwunsch zur Kündigungsfrist in der Ausschreibung - wunsch_kuendingungsfrist: Optional["Zeitraum"] = None + wunsch_kuendingungsfrist: Optional["Zeitspanne"] = None #: Kundenwunsch zum Zahlungsziel in der Ausschreibung - wunsch_zahlungsziel: Optional["Zeitraum"] = None + wunsch_zahlungsziel: Optional["Zeitspanne"] = None diff --git a/src/bo4e/com/preisgarantie.py b/src/bo4e/com/preisgarantie.py index 0d9839724..3bfd6a2ad 100644 --- a/src/bo4e/com/preisgarantie.py +++ b/src/bo4e/com/preisgarantie.py @@ -10,7 +10,7 @@ if TYPE_CHECKING: from ..enum.preisgarantietyp import Preisgarantietyp - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods @@ -31,9 +31,9 @@ class Preisgarantie(COM): #: Festlegung, auf welche Preisbestandteile die Garantie gewährt wird. preisgarantietyp: Optional["Preisgarantietyp"] = None - zeitliche_gueltigkeit: Optional["Zeitraum"] = None - """ Zeitraum, bis zu dem die Preisgarantie gilt, z.B. bis zu einem absolutem / fixem Datum - oder als Laufzeit in Monaten. """ + zeitliche_gueltigkeit: Optional["Zeitspanne"] = None + """ Zeitspanne, in der die Preisgarantie gilt, z.B. bis zu einem absoluten / fixen Datum + oder als Laufzeit mit Startdatum und Enddatum. """ # optionale attributes #: Freitext zur Beschreibung der Preisgarantie. diff --git a/src/bo4e/com/regionaleraufabschlag.py b/src/bo4e/com/regionaleraufabschlag.py index be98031ea..ad6d828c4 100644 --- a/src/bo4e/com/regionaleraufabschlag.py +++ b/src/bo4e/com/regionaleraufabschlag.py @@ -17,7 +17,7 @@ from .regionalepreisstaffel import RegionalePreisstaffel from .tarifeinschraenkung import Tarifeinschraenkung from .vertragskonditionen import Vertragskonditionen - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods, too-many-instance-attributes # pylint: disable=no-name-in-module @@ -71,7 +71,7 @@ class RegionalerAufAbschlag(COM): tarifnamensaenderungen: Optional[str] = None #: Zeitraum, in dem der Abschlag zur Anwendung kommen kann - gueltigkeitszeitraum: Optional["Zeitraum"] = None + gueltigkeitszeitraum: Optional["Zeitspanne"] = None energiemixaenderung: Optional["Energiemix"] = None """ diff --git a/src/bo4e/com/verbrauch.py b/src/bo4e/com/verbrauch.py index f39ebbf28..b49198a75 100644 --- a/src/bo4e/com/verbrauch.py +++ b/src/bo4e/com/verbrauch.py @@ -43,9 +43,9 @@ class Verbrauch(COM): #: Gibt die Einheit zum jeweiligen Wert an einheit: Optional["Mengeneinheit"] = None - #: Inklusiver Beginn des Zeitraumes, für den der Verbrauch angegeben wird + #: Inklusiver Beginn der Zeitspanne, für den der Verbrauch angegeben wird startdatum: Optional[pydantic.AwareDatetime] = None - #: Exklusives Ende des Zeitraumes, für den der Verbrauch angegeben wird + #: Exklusives Ende der Zeitspanne, für den der Verbrauch angegeben wird enddatum: Optional[pydantic.AwareDatetime] = None #: Messwertstatus includes the plausibility of the value messwertstatus: Optional["Messwertstatus"] = None diff --git a/src/bo4e/com/vertragskonditionen.py b/src/bo4e/com/vertragskonditionen.py index f3156812d..718077938 100644 --- a/src/bo4e/com/vertragskonditionen.py +++ b/src/bo4e/com/vertragskonditionen.py @@ -11,7 +11,7 @@ if TYPE_CHECKING: - from .zeitraum import Zeitraum + from .zeitspanne import Zeitspanne # pylint: disable=too-few-public-methods @@ -35,10 +35,11 @@ class Vertragskonditionen(COM): #: Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12 anzahl_abschlaege: Optional[Decimal] = None #: Über diesen Zeitraum läuft der Vertrag - vertragslaufzeit: Optional["Zeitraum"] = None + vertragslaufzeit: Optional["Zeitspanne"] = None #: Innerhalb dieser Frist kann der Vertrag gekündigt werden - kuendigungsfrist: Optional["Zeitraum"] = None + kuendigungsfrist: Optional["Zeitspanne"] = None #: Falls der Vertrag nicht gekündigt wird, verlängert er sich automatisch um die hier angegebene Zeit - vertragsverlaengerung: Optional["Zeitraum"] = None + vertragsverlaengerung: Optional["Zeitspanne"] = None #: In diesen Zyklen werden Abschläge gestellt. Alternativ kann auch die Anzahl in den Konditionen angeben werden. - abschlagszyklus: Optional["Zeitraum"] = None + abschlagszyklus: Optional["Zeitspanne"] = None + #: Todo: auch hier passt ja Zeitspanne nicht wirklich, Zeitraum auch nicht, vielleicht Menge? tbd diff --git a/src/bo4e/com/zeitraum.py b/src/bo4e/com/zeitraum.py deleted file mode 100644 index 90325ab44..000000000 --- a/src/bo4e/com/zeitraum.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -Contains Zeitraum class -and corresponding marshmallow schema for de-/serialization -""" - -from decimal import Decimal -from typing import TYPE_CHECKING, Optional - -import pydantic - -from ..utils import postprocess_docstring -from .com import COM - -if TYPE_CHECKING: - from ..enum.mengeneinheit import Mengeneinheit - - -# pylint: disable=too-few-public-methods - - -@postprocess_docstring -class Zeitraum(COM): - """ - Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. - Es muss daher eine der drei Möglichkeiten angegeben sein: - - Einheit und Dauer oder - - Zeitraum: Startdatum bis Enddatum oder - - Zeitraum: Startzeitpunkt (Datum und Uhrzeit) bis Endzeitpunkt (Datum und Uhrzeit) - - .. raw:: html - - - - .. HINT:: - `Zeitraum JSON Schema `_ - - """ - - einheit: Optional["Mengeneinheit"] = None - dauer: Optional[Decimal] = None - startdatum: Optional[pydantic.AwareDatetime] = None - enddatum: Optional[pydantic.AwareDatetime] = None - startzeitpunkt: Optional[pydantic.AwareDatetime] = None - endzeitpunkt: Optional[pydantic.AwareDatetime] = None diff --git a/src/bo4e/com/zeitreihenwert.py b/src/bo4e/com/zeitreihenwert.py index 2ed922a61..960cd4b65 100644 --- a/src/bo4e/com/zeitreihenwert.py +++ b/src/bo4e/com/zeitreihenwert.py @@ -21,7 +21,7 @@ @postprocess_docstring class Zeitreihenwert(COM): """ - Abbildung eines Zeitreihenwertes bestehend aus Zeitraum, Wert und Statusinformationen. + Abbildung eines Zeitreihenwertes bestehend aus Zeitspanne, Wert und Statusinformationen. .. raw:: html diff --git a/src/bo4e/com/zeitspanne.py b/src/bo4e/com/zeitspanne.py index d794a2499..b11caa381 100644 --- a/src/bo4e/com/zeitspanne.py +++ b/src/bo4e/com/zeitspanne.py @@ -2,10 +2,9 @@ contains the COM Zeitspanne """ +from datetime import date, time from typing import Optional -import pydantic - from bo4e.com.com import COM from ..utils import postprocess_docstring @@ -14,7 +13,7 @@ @postprocess_docstring class Zeitspanne(COM): """ - Eine Zeitspanne ist definiert aus Start und/oder Ende. + Eine Zeitspanne ist definiert aus Start- und Enddatum sowie Start- und Enduhrzeit. Der Unterschied zur Menge (die auch zur Abbildung von Zeitmengen genutzt wird) ist, dass konkrete Start- und Endzeitpunkte angegeben werden. Die Zeitspanne ist aus dem COM Zeitraum hervorgegangen, das in Zeitspanne und Menge aufgeteilt wurde. @@ -27,5 +26,10 @@ class Zeitspanne(COM): """ - start: Optional[pydantic.AwareDatetime] = None #: inklusiver Beginn - ende: Optional[pydantic.AwareDatetime] = None #: exklusives Ende + #: start and ende will be removed + # start: Optional[pydantic.AwareDatetime] = None #: inklusiver Beginn + # ende: Optional[pydantic.AwareDatetime] = None #: exklusives Ende + startdatum: Optional[date] = None #: inklusiver Beginn + enddatum: Optional[date] = None #: inklusives Ende + startuhrzeit: Optional[time] = None #: inklusiver Beginn + enduhrzeit: Optional[time] = None #: exklusives Ende diff --git a/tests/test_angebotsteil.py b/tests/test_angebotsteil.py index 841de0abc..52865b69c 100644 --- a/tests/test_angebotsteil.py +++ b/tests/test_angebotsteil.py @@ -1,6 +1,6 @@ import pytest -from bo4e import Angebotsposition, Angebotsteil, Betrag, Marktlokation, Menge, Zeitraum +from bo4e import Angebotsposition, Angebotsteil, Betrag, Marktlokation, Menge, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -15,7 +15,7 @@ class TestAngebotsteil: lieferstellenangebotsteil=[Marktlokation()], gesamtmengeangebotsteil=Menge(), gesamtkostenangebotsteil=Betrag(), - lieferzeitraum=Zeitraum(), + lieferzeitraum=Zeitspanne(), ), id="all attributes at first level", ), diff --git a/tests/test_aufabschlag.py b/tests/test_aufabschlag.py index 1d7f3ca27..f7b944a07 100644 --- a/tests/test_aufabschlag.py +++ b/tests/test_aufabschlag.py @@ -1,6 +1,6 @@ import pytest -from bo4e import AufAbschlag, AufAbschlagstyp, AufAbschlagsziel, Preisstaffel, Waehrungseinheit, Zeitraum +from bo4e import AufAbschlag, AufAbschlagstyp, AufAbschlagsziel, Preisstaffel, Waehrungseinheit, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -16,7 +16,7 @@ class TestAufAbschlag: auf_abschlagsziel=AufAbschlagsziel.GESAMTPREIS, einheit=Waehrungseinheit.EUR, website="foo.bar", - gueltigkeitszeitraum=Zeitraum(), + gueltigkeitszeitraum=Zeitspanne(), staffeln=[Preisstaffel()], ), id="all attributes at first level", diff --git a/tests/test_aufabschlagregional.py b/tests/test_aufabschlagregional.py index fec3a5c73..1c5a8c44d 100644 --- a/tests/test_aufabschlagregional.py +++ b/tests/test_aufabschlagregional.py @@ -10,7 +10,7 @@ Tarifeinschraenkung, Vertragskonditionen, Waehrungseinheit, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -31,7 +31,7 @@ class TestAufAbschlagRegional: zusatzprodukte=["Asterix", "Obelix"], voraussetzungen=["Petterson", "Findus"], tarifnamensaenderungen="foobar", - gueltigkeitszeitraum=Zeitraum(), + gueltigkeitszeitraum=Zeitspanne(), energiemixaenderung=Energiemix(), vertagskonditionsaenderung=Vertragskonditionen(), garantieaenderung=Preisgarantie(), diff --git a/tests/test_ausschreibung.py b/tests/test_ausschreibung.py index 799aaa7ac..3ba658c39 100644 --- a/tests/test_ausschreibung.py +++ b/tests/test_ausschreibung.py @@ -9,7 +9,7 @@ Ausschreibungsstatus, Ausschreibungstyp, Geschaeftspartner, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -27,8 +27,8 @@ class TestAusschreibung: ausschreibungportal=Ausschreibungsportal.BMWI, webseite="https://meineausschreibungswebsite.inv/", veroeffentlichungszeitpunkt=datetime(2022, 1, 1, 0, 0, 0, tzinfo=timezone.utc), - abgabefrist=Zeitraum(), - bindefrist=Zeitraum(), + abgabefrist=Zeitspanne(), + bindefrist=Zeitspanne(), ausschreibender=Geschaeftspartner(), lose=[Ausschreibungslos()], ), diff --git a/tests/test_ausschreibungsdetail.py b/tests/test_ausschreibungsdetail.py index 8523783e4..9402f8304 100644 --- a/tests/test_ausschreibungsdetail.py +++ b/tests/test_ausschreibungsdetail.py @@ -1,6 +1,6 @@ import pytest -from bo4e import Adresse, Ausschreibungsdetail, Menge, Netzebene, Zaehlertyp, Zeitraum +from bo4e import Adresse, Ausschreibungsdetail, Menge, Netzebene, Zaehlertyp, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -14,7 +14,7 @@ class TestAusschreibungsdetail: netzebene_lieferung=Netzebene.MSP, netzebene_messung=Netzebene.NSP, marktlokationsadresse=Adresse(), - lieferzeitraum=Zeitraum(), + lieferzeitraum=Zeitspanne(), netzbetreiber="Stromnetz Hamburg GmbH", kunde="Dei Mudder ihr Kunde", zaehlernummer="1YSK4234092304", diff --git a/tests/test_ausschreibungslos.py b/tests/test_ausschreibungslos.py index 6e7d67f8e..2282c79d6 100644 --- a/tests/test_ausschreibungslos.py +++ b/tests/test_ausschreibungslos.py @@ -8,7 +8,7 @@ Rechnungslegung, Sparte, Vertragsform, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -32,10 +32,10 @@ class TestAusschreibungslos: gesamt_menge=Menge(), wunsch_mindestmenge=Menge(), wunsch_maximalmenge=Menge(), - lieferzeitraum=Zeitraum(), - wunsch_kuendingungsfrist=Zeitraum(), - wunsch_zahlungsziel=Zeitraum(), - wiederholungsintervall=Zeitraum(), + lieferzeitraum=Zeitspanne(), + wunsch_kuendingungsfrist=Zeitspanne(), + wunsch_zahlungsziel=Zeitspanne(), + wiederholungsintervall=Zeitspanne(), ), id="maximal attributes", ), diff --git a/tests/test_fremdkosten.py b/tests/test_fremdkosten.py index f893be58a..74170304d 100644 --- a/tests/test_fremdkosten.py +++ b/tests/test_fremdkosten.py @@ -1,6 +1,6 @@ import pytest -from bo4e import Betrag, Fremdkosten, Fremdkostenblock, Zeitraum +from bo4e import Betrag, Fremdkosten, Fremdkostenblock, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -10,7 +10,7 @@ class TestFremdkosten: [ pytest.param( Fremdkosten( - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), summe_kosten=Betrag(), kostenbloecke=[Fremdkostenblock()], ), diff --git a/tests/test_kosten.py b/tests/test_kosten.py index a6591de40..0cc910a56 100644 --- a/tests/test_kosten.py +++ b/tests/test_kosten.py @@ -1,6 +1,6 @@ import pytest -from bo4e import Betrag, Kosten, Kostenblock, Kostenklasse, Zeitraum +from bo4e import Betrag, Kosten, Kostenblock, Kostenklasse, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -11,7 +11,7 @@ class TestKosten: pytest.param( Kosten( kostenklasse=Kostenklasse.FREMDKOSTEN, - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), kostenbloecke=[Kostenblock()], summe_kosten=[Betrag()], ), diff --git a/tests/test_preisblatt.py b/tests/test_preisblatt.py index 7537e7966..b4f6b88d3 100644 --- a/tests/test_preisblatt.py +++ b/tests/test_preisblatt.py @@ -1,6 +1,6 @@ import pytest -from bo4e import Marktteilnehmer, Preisblatt, Preisposition, Preisstatus, Sparte, Zeitraum +from bo4e import Marktteilnehmer, Preisblatt, Preisposition, Preisstatus, Sparte, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -14,7 +14,7 @@ class TestPreisblatt: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), ) ), diff --git a/tests/test_preisblatt_dienstleistung.py b/tests/test_preisblatt_dienstleistung.py index be5e1b20b..d3b8c260d 100644 --- a/tests/test_preisblatt_dienstleistung.py +++ b/tests/test_preisblatt_dienstleistung.py @@ -9,7 +9,7 @@ Preisposition, Preisstatus, Sparte, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -24,7 +24,7 @@ class TestPreisblattDienstleistung: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), bilanzierungsmethode=Bilanzierungsmethode.TLP_GEMEINSAM, basisdienstleistung=Dienstleistungstyp.ABLESUNG_MONATLICH, diff --git a/tests/test_preisblatt_hardware.py b/tests/test_preisblatt_hardware.py index 6d35d043c..43e23d89f 100644 --- a/tests/test_preisblatt_hardware.py +++ b/tests/test_preisblatt_hardware.py @@ -10,7 +10,7 @@ Preisposition, Preisstatus, Sparte, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -25,7 +25,7 @@ class TestPreisblattHardware: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), bilanzierungsmethode=Bilanzierungsmethode.TLP_GEMEINSAM, messebene=Netzebene.MSP, diff --git a/tests/test_preisblatt_konzessionsabgabe.py b/tests/test_preisblatt_konzessionsabgabe.py index 3beaa3796..2bc433e60 100644 --- a/tests/test_preisblatt_konzessionsabgabe.py +++ b/tests/test_preisblatt_konzessionsabgabe.py @@ -7,7 +7,7 @@ Preisposition, Preisstatus, Sparte, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -22,7 +22,7 @@ class TestPreisblatt: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), kundengruppe_k_a=KundengruppeKA.G_SONDERKUNDE, ) diff --git a/tests/test_preisblatt_messung.py b/tests/test_preisblatt_messung.py index 219686df9..adb8d78a8 100644 --- a/tests/test_preisblatt_messung.py +++ b/tests/test_preisblatt_messung.py @@ -11,7 +11,7 @@ Preisstatus, Sparte, Zaehler, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -26,7 +26,7 @@ class TestPreisblattMessung: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), bilanzierungsmethode=Bilanzierungsmethode.TLP_GEMEINSAM, messebene=Netzebene.MSP, diff --git a/tests/test_preisblattnetznutzung.py b/tests/test_preisblattnetznutzung.py index d902a43aa..4e1a5e92c 100644 --- a/tests/test_preisblattnetznutzung.py +++ b/tests/test_preisblattnetznutzung.py @@ -9,7 +9,7 @@ Preisposition, Preisstatus, Sparte, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -24,7 +24,7 @@ class TestPreisblatt: sparte=Sparte.STROM, preisstatus=Preisstatus.ENDGUELTIG, preispositionen=[Preisposition()], - gueltigkeit=Zeitraum(), + gueltigkeit=Zeitspanne(), herausgeber=Marktteilnehmer(), bilanzierungsmethode=Bilanzierungsmethode.TLP_GEMEINSAM, netzebene=Netzebene.MSP, diff --git a/tests/test_preisgarantie.py b/tests/test_preisgarantie.py index 5e5ec9447..454d817e1 100644 --- a/tests/test_preisgarantie.py +++ b/tests/test_preisgarantie.py @@ -1,8 +1,6 @@ -from datetime import datetime, timezone - import pytest -from bo4e import Preisgarantie, Preisgarantietyp, Zeitraum +from bo4e import Preisgarantie, Preisgarantietyp, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -11,14 +9,8 @@ class TestPreisgarantie: "preisgarantie", [ pytest.param( - Preisgarantie( - preisgarantietyp=Preisgarantietyp.NUR_ENERGIEPREIS, - zeitliche_gueltigkeit=Zeitraum( - startdatum=datetime(2020, 1, 1, tzinfo=timezone.utc), - enddatum=datetime(2020, 4, 1, tzinfo=timezone.utc), - ), - ), - ), + Preisgarantie(preisgarantietyp=Preisgarantietyp.NUR_ENERGIEPREIS, zeitliche_gueltigkeit=Zeitspanne()), + ) ], ) def test_preisgarantie_required_attributes(self, preisgarantie: Preisgarantie) -> None: diff --git a/tests/test_rechnung.py b/tests/test_rechnung.py index 9ad9cd9e9..d75ffadd3 100644 --- a/tests/test_rechnung.py +++ b/tests/test_rechnung.py @@ -8,7 +8,6 @@ Geschaeftspartner, Marktlokation, Menge, - Mengeneinheit, Messlokation, NetznutzungRechnungsart, NetznutzungRechnungstyp, @@ -21,7 +20,7 @@ Steuerbetrag, Steuerkennzeichen, Waehrungscode, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -40,7 +39,7 @@ class TestRechnung: faelligkeitsdatum=datetime.today().replace(tzinfo=timezone.utc), rechnungstyp=Rechnungstyp.ENDKUNDENRECHNUNG, original_rechnungsnummer="RE-2022-01-21_1701", - rechnungsperiode=Zeitraum(einheit=Mengeneinheit.TAG, dauer=Decimal(21)), + rechnungsperiode=Zeitspanne(), rechnungsersteller=Geschaeftspartner(), rechnungsempfaenger=Geschaeftspartner(), gesamtnetto=Betrag(wert=Decimal(12.5), waehrung=Waehrungscode.EUR), @@ -91,7 +90,7 @@ class TestRechnung: faelligkeitsdatum=datetime.today().replace(tzinfo=timezone.utc), rechnungstyp=Rechnungstyp.ENDKUNDENRECHNUNG, original_rechnungsnummer="RE-2022-01-21_1701", - rechnungsperiode=Zeitraum(einheit=Mengeneinheit.TAG, dauer=Decimal(21)), + rechnungsperiode=Zeitspanne(), rechnungsersteller=Geschaeftspartner(), rechnungsempfaenger=Geschaeftspartner(), gesamtnetto=Betrag(wert=Decimal(12.5), waehrung=Waehrungscode.EUR), diff --git a/tests/test_regionalepreisgarantie.py b/tests/test_regionalepreisgarantie.py index 6ac127c54..39b245afc 100644 --- a/tests/test_regionalepreisgarantie.py +++ b/tests/test_regionalepreisgarantie.py @@ -1,5 +1,3 @@ -from datetime import datetime, timezone - import pytest from bo4e import ( @@ -9,7 +7,7 @@ RegionaleGueltigkeit, RegionalePreisgarantie, Tarifregionskriterium, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -21,10 +19,7 @@ class TestRegionalePreisgarantie: pytest.param( RegionalePreisgarantie( preisgarantietyp=Preisgarantietyp.NUR_ENERGIEPREIS, - zeitliche_gueltigkeit=Zeitraum( - startzeitpunkt=datetime(2011, 2, 5, 16, 43, tzinfo=timezone.utc), - endzeitpunkt=datetime(2021, 7, 30, tzinfo=timezone.utc), - ), + zeitliche_gueltigkeit=Zeitspanne(), regionale_gueltigkeit=RegionaleGueltigkeit( gueltigkeitstyp=Gueltigkeitstyp.NUR_IN, kriteriums_werte=[KriteriumWert(kriterium=Tarifregionskriterium.POSTLEITZAHL, wert="01069")], diff --git a/tests/test_regionaleraufabschlag.py b/tests/test_regionaleraufabschlag.py index 6d828a35e..1b1914bff 100644 --- a/tests/test_regionaleraufabschlag.py +++ b/tests/test_regionaleraufabschlag.py @@ -10,7 +10,7 @@ Tarifeinschraenkung, Vertragskonditionen, Waehrungseinheit, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -31,7 +31,7 @@ class TestRegionalerAufAbschlag: voraussetzungen=["lecker essen", "mit ökostrom gekocht"], tarifnamensaenderungen="Super-Duper Tarif", staffeln=[RegionalePreisstaffel()], - gueltigkeitszeitraum=Zeitraum(), + gueltigkeitszeitraum=Zeitspanne(), energiemixaenderung=Energiemix(), vertagskonditionsaenderung=Vertragskonditionen(), garantieaenderung=Preisgarantie(), diff --git a/tests/test_regionaltarif.py b/tests/test_regionaltarif.py index f5655969e..a6dc684c9 100644 --- a/tests/test_regionaltarif.py +++ b/tests/test_regionaltarif.py @@ -17,7 +17,7 @@ Tarifmerkmal, Tariftyp, Vertragskonditionen, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -46,7 +46,7 @@ class TestRegionaltarif: website="https://foo.inv", bemerkung="super billig aber auch super dreckig", vertragskonditionen=Vertragskonditionen(), - zeitliche_gueltigkeit=Zeitraum(), + zeitliche_gueltigkeit=Zeitspanne(), energiemix=Energiemix(), anbieter=Marktteilnehmer(), ), diff --git a/tests/test_tarif.py b/tests/test_tarif.py index 42d646427..fcb6a6867 100644 --- a/tests/test_tarif.py +++ b/tests/test_tarif.py @@ -17,7 +17,7 @@ TarifpreispositionProOrt, Tariftyp, Vertragskonditionen, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -45,7 +45,7 @@ class TestTarif: website="https://foo.inv", bemerkung="super billig aber auch super dreckig", vertragskonditionen=Vertragskonditionen(), - zeitliche_gueltigkeit=Zeitraum(), + zeitliche_gueltigkeit=Zeitspanne(), energiemix=Energiemix(), anbieter=Marktteilnehmer(), ), diff --git a/tests/test_tarifinfo.py b/tests/test_tarifinfo.py index db58bca0a..6ad97619e 100644 --- a/tests/test_tarifinfo.py +++ b/tests/test_tarifinfo.py @@ -12,7 +12,7 @@ Tarifmerkmal, Tariftyp, Vertragskonditionen, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -33,7 +33,7 @@ class TestTarifinfo: website="https://foo.inv", bemerkung="super billig aber auch super dreckig", vertragskonditionen=Vertragskonditionen(), - zeitliche_gueltigkeit=Zeitraum(), + zeitliche_gueltigkeit=Zeitspanne(), energiemix=Energiemix(), anbieter=Marktteilnehmer(), anwendung_von=datetime(2022, 1, 1, 0, 0, 0, tzinfo=timezone.utc), diff --git a/tests/test_tarifkosten.py b/tests/test_tarifkosten.py index f7e6007c8..37d211095 100644 --- a/tests/test_tarifkosten.py +++ b/tests/test_tarifkosten.py @@ -11,7 +11,7 @@ Tarifmerkmal, Tariftyp, Vertragskonditionen, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -32,7 +32,7 @@ class TestTarifkosten: website="https://foo.inv", bemerkung="super billig aber auch super dreckig", vertragskonditionen=Vertragskonditionen(), - zeitliche_gueltigkeit=Zeitraum(), + zeitliche_gueltigkeit=Zeitspanne(), energiemix=Energiemix(), anbieter=Marktteilnehmer(), kosten=Kosten(), diff --git a/tests/test_tarifpreisblatt.py b/tests/test_tarifpreisblatt.py index a03057ca6..b1e825906 100644 --- a/tests/test_tarifpreisblatt.py +++ b/tests/test_tarifpreisblatt.py @@ -17,7 +17,7 @@ Tarifpreisposition, Tariftyp, Vertragskonditionen, - Zeitraum, + Zeitspanne, ) from tests.serialization_helper import assert_serialization_roundtrip @@ -38,7 +38,7 @@ class TestTarifpreisblatt: website="https://foo.inv", bemerkung="super billig aber auch super dreckig", vertragskonditionen=Vertragskonditionen(), - zeitliche_gueltigkeit=Zeitraum(), + zeitliche_gueltigkeit=Zeitspanne(), energiemix=Energiemix(), anbieter=Marktteilnehmer(), # ^^ above is all copy pasted from Tarifinfo BO diff --git a/tests/test_vertragskonditionen.py b/tests/test_vertragskonditionen.py index f21f391cc..66bd59001 100644 --- a/tests/test_vertragskonditionen.py +++ b/tests/test_vertragskonditionen.py @@ -1,9 +1,9 @@ -from datetime import datetime, timezone +from datetime import date from decimal import Decimal import pytest -from bo4e import Mengeneinheit, Vertragskonditionen, Zeitraum +from bo4e import Vertragskonditionen, Zeitspanne from tests.serialization_helper import assert_serialization_roundtrip @@ -15,13 +15,13 @@ class TestVertragskonditionen: Vertragskonditionen( beschreibung="Foobar", anzahl_abschlaege=Decimal(3), - vertragslaufzeit=Zeitraum( - startdatum=datetime(2012, 9, 21, tzinfo=timezone.utc), - enddatum=datetime(2013, 10, 11, tzinfo=timezone.utc), + vertragslaufzeit=Zeitspanne( + startdatum=date(2012, 9, 21), + enddatum=date(2013, 10, 11), ), - kuendigungsfrist=Zeitraum(einheit=Mengeneinheit.WOCHE, dauer=Decimal(3)), - vertragsverlaengerung=Zeitraum(einheit=Mengeneinheit.TAG, dauer=Decimal(14)), - abschlagszyklus=Zeitraum(einheit=Mengeneinheit.TAG, dauer=Decimal(5)), + kuendigungsfrist=Zeitspanne(), + vertragsverlaengerung=Zeitspanne(), + abschlagszyklus=Zeitspanne(), ), ), pytest.param( diff --git a/tests/test_zeitraum.py b/tests/test_zeitraum.py deleted file mode 100644 index 88f9c817e..000000000 --- a/tests/test_zeitraum.py +++ /dev/null @@ -1,25 +0,0 @@ -from decimal import Decimal - -import pytest - -from bo4e import Mengeneinheit, Zeitraum -from tests.serialization_helper import assert_serialization_roundtrip - - -class TestZeitraum: - @pytest.mark.parametrize( - "zeitraum", - [ - pytest.param( - Zeitraum( - einheit=Mengeneinheit.TAG, - dauer=Decimal(21), - ), - ), - ], - ) - def test_serialization_roundtrip(self, zeitraum: Zeitraum) -> None: - """ - Test de-/serialisation of Zeitraum. - """ - assert_serialization_roundtrip(zeitraum) diff --git a/tests/test_zeitreihenwert.py b/tests/test_zeitreihenwert.py index 924844181..4a7db874f 100644 --- a/tests/test_zeitreihenwert.py +++ b/tests/test_zeitreihenwert.py @@ -1,4 +1,3 @@ -from datetime import datetime, timezone from decimal import Decimal import pytest @@ -13,9 +12,7 @@ class TestZeitreihenwert: [ pytest.param( Zeitreihenwert( - zeitspanne=Zeitspanne( - start=datetime(2013, 5, 1, tzinfo=timezone.utc), ende=datetime(2022, 1, 28, tzinfo=timezone.utc) - ), + zeitspanne=Zeitspanne(), wert=Decimal(2.5), status=Messwertstatus.ABGELESEN, statuszusatz=Messwertstatuszusatz.Z78_GERAETEWECHSEL, diff --git a/tests/test_zeitspanne.py b/tests/test_zeitspanne.py index 51f9c9744..3bc414022 100644 --- a/tests/test_zeitspanne.py +++ b/tests/test_zeitspanne.py @@ -1,21 +1,28 @@ -from datetime import datetime, timezone +from datetime import date, time from bo4e.com.zeitspanne import Zeitspanne class TestZeitspanne: + def test_zeitspanne(self) -> None: """ Test de-/serialisation of Zeitspanne """ + zeitspanne = Zeitspanne( - start=datetime(2013, 5, 1, tzinfo=timezone.utc), ende=datetime(2022, 1, 28, tzinfo=timezone.utc) + startdatum=date(2013, 5, 1), # date + enddatum=date(2022, 1, 28), # date + startuhrzeit=time(12, 30), # time + enduhrzeit=time(15, 45), # time ) json_string = zeitspanne.model_dump_json(by_alias=True) - assert "2013-05-01T00:00:00Z" in json_string - assert "2022-01-28T00:00:00Z" in json_string + assert "2013-05-01" in json_string + assert "2022-01-28" in json_string + assert "12:30:00" in json_string + assert "15:45:00" in json_string zeitspanne_deserialized = Zeitspanne.model_validate_json(json_string) assert zeitspanne_deserialized == zeitspanne