Skip to content

Commit

Permalink
Merge pull request #2 from joostlek/startup-info
Browse files Browse the repository at this point in the history
Add method for getting startup info
  • Loading branch information
joostlek authored Jan 18, 2024
2 parents d2fe415 + 4e8d91f commit efba624
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 25 deletions.
2 changes: 1 addition & 1 deletion src/aiomealie/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@

__all__ = [
"MealieConnectionError",
"MealieClient"
"MealieClient",
]
12 changes: 3 additions & 9 deletions src/aiomealie/mealie.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,10 @@
from typing import Self

from aiohttp import ClientSession
import orjson
from yarl import URL

from aiomealie.exceptions import (
MealieConnectionError,
MealieError,
)
from aiomealie.models import (
StartupInfo,
)
from aiomealie.exceptions import MealieConnectionError, MealieError
from aiomealie.models import StartupInfo

VERSION = metadata.version(__package__)

Expand Down Expand Up @@ -71,7 +65,7 @@ async def _request(self, uri: str) -> str:

async def get_startup_info(self) -> StartupInfo:
"""Get startup info."""
response = await self._request("/api/app/about/startup-info")
response = await self._request("api/app/about/startup-info")
return StartupInfo.from_json(response)

async def close(self) -> None:
Expand Down
1 change: 0 additions & 1 deletion src/aiomealie/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,3 @@ class StartupInfo(DataClassORJSONMixin):
"""StartupInfo model."""

is_first_login: bool = field(metadata=field_options(alias="isFirstLogin"))

6 changes: 6 additions & 0 deletions tests/__snapshots__/test_mealie.ambr
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# serializer version: 1
# name: test_analytics
dict({
'is_first_login': True,
})
# ---
7 changes: 3 additions & 4 deletions tests/const.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
"""Constants for tests."""
from importlib import metadata

MEALIE_URL = "https://demo.mealie.io:443"
from aiomealie.mealie import VERSION

version = metadata.version("aiomealie")
MEALIE_URL = "https://demo.mealie.io:443"

HEADERS = {
"User-Agent": f"AioMealie/{version}",
"User-Agent": f"AioMealie/{VERSION}",
"Accept": "application/json, text/plain, */*",
}
4 changes: 1 addition & 3 deletions tests/syrupy.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,4 @@ class MealieSnapshotExtension(AmberSnapshotExtension):
Need to be bumped when we change the MealieSnapshotSerializer.
"""

serializer_class: type[
AmberDataSerializer
] = MealieSnapshotSerializer
serializer_class: type[AmberDataSerializer] = MealieSnapshotSerializer
14 changes: 7 additions & 7 deletions tests/test_mealie.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@
from aioresponses import CallbackResult, aioresponses
import pytest

from syrupy import SnapshotAssertion

from aiomealie.exceptions import MealieError, MealieConnectionError
from aiomealie.exceptions import MealieConnectionError, MealieError
from aiomealie.mealie import MealieClient
from syrupy import SnapshotAssertion
from tests import load_fixture

from .const import MEALIE_URL
Expand All @@ -22,11 +21,11 @@ async def test_putting_in_own_session(
responses.get(
f"{MEALIE_URL}/api/app/about/startup-info",
status=200,
body=load_fixture("data.json"),
body=load_fixture("startup_info.json"),
)
async with aiohttp.ClientSession() as session:
analytics = MealieClient(session=session)
await analytics.get_analytics()
analytics = MealieClient(session=session, api_host="demo.mealie.io")
await analytics.get_startup_info()
assert analytics.session is not None
assert not analytics.session.closed
await analytics.close()
Expand All @@ -42,7 +41,7 @@ async def test_creating_own_session(
status=200,
body=load_fixture("startup_info.json"),
)
analytics = MealieClient("demo.mealie.io")
analytics = MealieClient(api_host="demo.mealie.io")
await analytics.get_startup_info()
assert analytics.session is not None
assert not analytics.session.closed
Expand Down Expand Up @@ -82,6 +81,7 @@ async def response_handler(_: str, **_kwargs: Any) -> CallbackResult:
)
async with MealieClient(
request_timeout=1,
api_host="demo.mealie.io",
) as mealie_client:
with pytest.raises(MealieConnectionError):
assert await mealie_client.get_startup_info()
Expand Down

0 comments on commit efba624

Please sign in to comment.