-
Sabine Schröder authored
created ONE toardb app, also adapted pytests for toardb app (still very last test will throw an error for teardown; inserted example for url percent encoding
Sabine Schröder authoredcreated ONE toardb app, also adapted pytests for toardb app (still very last test will throw an error for teardown; inserted example for url percent encoding
pydantic_toar_testing.py 1.73 KiB
#adapted from: https://pydantic-docs.helpmanual.io/
from typing import List
from pydantic import BaseModel, Schema, BaseConfig, Json
from geoalchemy2 import WKTElement
from geoalchemy2.shape import to_shape
import datetime as dt
from pydantic import ValidationError
"""
now: Pydantic schemas for TOAR database
"""
# the following class was taken from:
# https://github.com/tiangolo/fastapi/issues/312
class Coordinates(BaseModel):
lat: float = Schema(0, gte=-90, lte=90)
lng: float = Schema(0, gte=-180, lte=180)
alt: float
class StationmetaCoreBase(BaseModel):
id: int
codes: List[str] = []
name: str
coordinates: Coordinates
country: str
state: str
coordinate_validation_status: int
coordinate_validation_date: dt.datetime
type_of_environment: int
type_of_area: int
category: str
timezone: str
additional_metadata: Json
coordinate_validator_id: int
class Config(BaseConfig):
arbitrary_types_allowed = True
class StationmetaCoreCreate(StationmetaCoreBase):
pass
class StationmetaCore(StationmetaCoreBase):
id: int
class Config:
orm_mode = True
external_data_toar = {
"id": 8,
"codes":["China_test8",],
"name":"Test_China",
"coordinates":{"lat":36.256,"lng":17.106,"alt":1534.0},
"country":"China",
"state":"Shandong Sheng",
"coordinate_validation_status":0,
"coordinate_validation_date":"2020-03-11T12:22:18.047974+01:00",
"type_of_environment":0,
"type_of_area":0,
"category":"",
"timezone":"",
"coordinate_validator_id": 1,
"additional_metadata": {}
}
try:
stationmeta_core = StationmetaCore(**external_data_toar)
print(stationmeta_core.dict())
except ValidationError as e:
print(e.json())