diff --git a/src/vipscore_common/entities.py b/src/vipscore_common/entities.py index a4c72d5046794ca02fc2bc8923a05b6db76e976d..338af1a80fdb41848ad8030c2b63da2fe6792fb7 100755 --- a/src/vipscore_common/entities.py +++ b/src/vipscore_common/entities.py @@ -25,18 +25,23 @@ along with VIPSCore-Python-Common. If not, see <http://www.nibio.no/licenses/>. from datetime import datetime from shapely.geometry import Point, Polygon from pydantic import BaseModel, validator, constr, Field -from typing import Any, Union, ClassVar +from typing import Any, Union, ClassVar, Optional import pytz class Result(BaseModel): - """Represents a set of DSS model result values for a given point in space (Point, Polygon, MultiPolygon) and time (Period or immediate) """ - valid_time_start: datetime = Field(alias="validTimeStart") # TODO make sure it's always timezone aware - valid_time_end: datetime = Field(..., alias="validTimeStart") # TODO make sure it's always timezone aware - valid_geometry: Any = Field(alias="validGeometry") + """ + Represents a set of DSS model result values for a given point in space (Point, Polygon, MultiPolygon) and time (Period or immediate) + """ + valid_time_start: datetime = Field(alias="validTimeStart") + valid_time_end: Optional[datetime] = Field(alias="validTimeStart") + valid_geometry: Optional[Any] = Field(alias="validGeometry") warning_status: int = Field(alias="warningStatus") all_values: dict = Field(alias="allValues") + class Config: + allow_population_by_field_name = True + WARNING_STATUS_NO_WARNING: ClassVar[int] = 0 WARNING_STATUS_NO_WARNING_MISSING_DATA: ClassVar[int] = 1 WARNING_STATUS_NO_RISK: ClassVar[int] = 2 diff --git a/tests/test_entities.py b/tests/test_entities.py new file mode 100644 index 0000000000000000000000000000000000000000..35b47c7c38444ce01bf8a822dca209e0e07caa24 --- /dev/null +++ b/tests/test_entities.py @@ -0,0 +1,15 @@ +import unittest +import datetime + + +from src.vipscore_common.entities import * + + +class TestEntities(unittest.TestCase): + def test_create_result(self): + r = Result( + valid_time_start = datetime.fromisoformat("2015-03-01T00:00:00+01:00"), # valid_time_start + valid_time_end = None, + warning_status = 2, + all_values = {"TM":2} + ) \ No newline at end of file