Skip to content

Commit

Permalink
chore: refactor tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bbesset committed Jan 21, 2023
1 parent 4be987a commit aae087d
Showing 1 changed file with 39 additions and 43 deletions.
82 changes: 39 additions & 43 deletions tests/test_observation.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,58 +8,54 @@
from meteofrance_api.model import Place


def test_observation_france() -> None:
"""Test weather observation results from API."""
client = MeteoFranceClient()

weather_observation = client.get_observation(latitude=48.8075, longitude=2.24028)
def assert_types(observation) -> None:
"""Check observation types"""
assert type(observation.timezone) == str
assert type(observation.time_as_string) == str
assert type(observation.time_as_datetime) == datetime
assert type(observation.temperature) == float
assert type(observation.wind_speed) == float
assert type(observation.wind_direction) == int
assert type(observation.wind_icon) == str
assert type(observation.weather_icon) == str
assert type(observation.weather_description) == str


def assert_datetime(observation) -> None:
"""Check observation time is before now but after now - 1h."""
now = datetime.now(timezone.utc)
assert now - timedelta(hours=1) < observation.time_as_datetime < now

assert type(weather_observation.timezone) == str
assert type(weather_observation.time_as_string) == str
assert type(weather_observation.time_as_datetime) == datetime
assert type(weather_observation.temperature) == float
assert type(weather_observation.wind_speed) == float
assert type(weather_observation.wind_direction) == int
assert type(weather_observation.wind_icon) == str
assert type(weather_observation.weather_icon) == str
assert type(weather_observation.weather_description) == str

assert now - timedelta(hours=1) < weather_observation.time_as_datetime < now
def test_observation_france() -> None:
"""Test weather observation results from API (valid result, from lat/lon)."""
client = MeteoFranceClient()
observation = client.get_observation(latitude=48.8075, longitude=2.24028)

assert_types(observation)
assert_datetime(observation)


def test_observation_world() -> None:
"""Test weather observation results from API."""
"""Test weather observation results from API (null result)."""
client = MeteoFranceClient()
observation = client.get_observation(latitude=45.5016889, longitude=73.567256)

weather_observation = client.get_observation(latitude=45.5016889, longitude=73.567256)

assert weather_observation.timezone is None
assert weather_observation.time_as_string is None
assert weather_observation.time_as_datetime is None
assert weather_observation.temperature is None
assert weather_observation.wind_speed is None
assert weather_observation.wind_direction is None
assert weather_observation.wind_icon is None
assert weather_observation.weather_icon is None
assert weather_observation.weather_description is None
assert observation.timezone is None
assert observation.time_as_string is None
assert observation.time_as_datetime is None
assert observation.temperature is None
assert observation.wind_speed is None
assert observation.wind_direction is None
assert observation.wind_icon is None
assert observation.weather_icon is None
assert observation.weather_description is None


def test_observation_place() -> None:
"""Test weather observation results from API."""
"""Test weather observation results from API (valid result, from place)."""
client = MeteoFranceClient()

weather_observation = client.get_observation_for_place(place=Place(MOUNTAIN_CITY))
now = datetime.now(timezone.utc)

assert type(weather_observation.timezone) == str
assert type(weather_observation.time_as_string) == str
assert type(weather_observation.time_as_datetime) == datetime
assert type(weather_observation.temperature) == float
assert type(weather_observation.wind_speed) == float
assert type(weather_observation.wind_direction) == int
assert type(weather_observation.wind_icon) == str
assert type(weather_observation.weather_icon) == str
assert type(weather_observation.weather_description) == str

assert now - timedelta(hours=1) < weather_observation.time_as_datetime < now
observation = client.get_observation_for_place(place=Place(MOUNTAIN_CITY))

assert_types(observation)
assert_datetime(observation)

0 comments on commit aae087d

Please sign in to comment.