core/tests/components/trafikverket_ferry/conftest.py

95 lines
2.9 KiB
Python

"""Fixtures for Trafikverket Ferry integration tests."""
from __future__ import annotations
from datetime import datetime, timedelta
from unittest.mock import patch
import pytest
from pytrafikverket.models import FerryStopModel
from homeassistant.components.trafikverket_ferry.const import DOMAIN
from homeassistant.config_entries import SOURCE_USER
from homeassistant.core import HomeAssistant
from homeassistant.util import dt as dt_util
from . import ENTRY_CONFIG
from tests.common import MockConfigEntry
@pytest.fixture(name="load_int")
async def load_integration_from_entry(
hass: HomeAssistant, get_ferries: list[FerryStopModel]
) -> MockConfigEntry:
"""Set up the Trafikverket Ferry integration in Home Assistant."""
config_entry = MockConfigEntry(
domain=DOMAIN,
source=SOURCE_USER,
data=ENTRY_CONFIG,
entry_id="1",
unique_id="123",
)
config_entry.add_to_hass(hass)
with patch(
"homeassistant.components.trafikverket_ferry.coordinator.TrafikverketFerry.async_get_next_ferry_stops",
return_value=get_ferries,
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
return config_entry
@pytest.fixture(name="get_ferries")
def fixture_get_ferries() -> list[FerryStopModel]:
"""Construct FerryStop Mock."""
depart1 = FerryStopModel(
ferry_stop_id="13",
ferry_stop_name="Harbor1lane",
short_name="Harle",
deleted=False,
departure_time=datetime(
dt_util.now().year + 1, 5, 1, 12, 0, tzinfo=dt_util.UTC
),
other_information=[""],
deviation_id="0",
modified_time=datetime(dt_util.now().year, 5, 1, 12, 0, tzinfo=dt_util.UTC),
from_harbor_name="Harbor 1",
to_harbor_name="Harbor 2",
type_name="Turnaround",
)
depart2 = FerryStopModel(
ferry_stop_id="14",
ferry_stop_name="Harbor1lane",
short_name="Harle",
deleted=False,
departure_time=datetime(dt_util.now().year + 1, 5, 1, 12, 0, tzinfo=dt_util.UTC)
+ timedelta(minutes=15),
other_information=[""],
deviation_id="0",
modified_time=datetime(dt_util.now().year, 5, 1, 12, 0, tzinfo=dt_util.UTC),
from_harbor_name="Harbor 1",
to_harbor_name="Harbor 2",
type_name="Turnaround",
)
depart3 = FerryStopModel(
ferry_stop_id="15",
ferry_stop_name="Harbor1lane",
short_name="Harle",
deleted=False,
departure_time=datetime(dt_util.now().year + 1, 5, 1, 12, 0, tzinfo=dt_util.UTC)
+ timedelta(minutes=30),
other_information=[""],
deviation_id="0",
modified_time=datetime(dt_util.now().year, 5, 1, 12, 0, tzinfo=dt_util.UTC),
from_harbor_name="Harbor 1",
to_harbor_name="Harbor 2",
type_name="Turnaround",
)
return [depart1, depart2, depart3]