Skip to content

Commit df4e416

Browse files
Fix tests
1 parent 52bcd57 commit df4e416

File tree

3 files changed

+46
-74
lines changed

3 files changed

+46
-74
lines changed

tests/conftest.py

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,25 @@
33

44
import pytest
55

6-
from mediux_posters.mediux import FileType, Mediux
7-
from mediux_posters.mediux.schemas import File, Movie as MediuxMedia, MovieSet as SetData
8-
from mediux_posters.services._base.schemas import BaseMovie as Media
9-
from mediux_posters.services.jellyfin import Jellyfin
10-
from mediux_posters.services.plex import Plex
6+
from mediux_posters.mediux import File, FileType, Mediux, MovieSet as SetData
7+
from mediux_posters.mediux.schemas import Movie as MediuxMedia
8+
from mediux_posters.services import Jellyfin, Movie as Media, Plex
9+
from mediux_posters.services.service_cache import ServiceCache
10+
11+
12+
@pytest.fixture(scope="session")
13+
def cache() -> ServiceCache:
14+
return ServiceCache()
1115

1216

1317
@pytest.fixture(scope="session")
1418
def mediux_base_url() -> str:
15-
return os.getenv("MEDIUX__BASE_URL", default="https://api.mediux.pro")
19+
return os.getenv("MEDIUX__BASE_URL", default="https://images.mediux.io")
1620

1721

1822
@pytest.fixture(scope="session")
1923
def mediux_token() -> str:
20-
return os.getenv("MEDIUX__TOKEN", default="IGNORED")
24+
return os.getenv("MEDIUX__TOKEN", default="UNSET")
2125

2226

2327
@pytest.fixture(scope="session")
@@ -28,41 +32,39 @@ def mediux_session(mediux_base_url: str, mediux_token: str) -> Mediux:
2832

2933

3034
@pytest.fixture(scope="session")
31-
def jellyfin_base_url() -> str | None:
32-
return os.getenv("JELLYFIN__BASE_URL", default=None)
35+
def jellyfin_base_url() -> str:
36+
return os.getenv("JELLYFIN__BASE_URL", default="http://localhost")
3337

3438

3539
@pytest.fixture(scope="session")
36-
def jellyfin_token() -> str | None:
37-
return os.getenv("JELLYFIN__TOKEN", default=None)
40+
def jellyfin_token() -> str:
41+
return os.getenv("JELLYFIN__TOKEN", default="UNSET")
3842

3943

4044
@pytest.fixture(scope="session")
41-
def jellyfin_session(jellyfin_base_url: str | None, jellyfin_token: str | None) -> Jellyfin | None:
42-
if jellyfin_base_url and jellyfin_token:
43-
jellyfin = Jellyfin(base_url=jellyfin_base_url, token=jellyfin_token)
44-
assert jellyfin.validate() is True
45-
return jellyfin
46-
return None
45+
def jellyfin_session(jellyfin_base_url: str, jellyfin_token: str, cache: ServiceCache) -> Jellyfin:
46+
session = Jellyfin(base_url=jellyfin_base_url, token=jellyfin_token, cache=cache)
47+
if jellyfin_base_url != "http://localhost":
48+
assert session.validate() is True
49+
return session
4750

4851

4952
@pytest.fixture(scope="session")
50-
def plex_base_url() -> str | None:
51-
return os.getenv("PLEX__BASE_URL", default=None)
53+
def plex_base_url() -> str:
54+
return os.getenv("PLEX__BASE_URL", default="http://localhost")
5255

5356

5457
@pytest.fixture(scope="session")
55-
def plex_token() -> str | None:
56-
return os.getenv("PLEX__TOKEN", default=None)
58+
def plex_token() -> str:
59+
return os.getenv("PLEX__TOKEN", default="UNSET")
5760

5861

5962
@pytest.fixture(scope="session")
60-
def plex_session(plex_base_url: str | None, plex_token: str | None) -> Plex | None:
61-
if plex_base_url and plex_token:
62-
plex = Plex(base_url=plex_base_url, token=plex_token)
63-
assert plex.validate() is True
64-
return plex
65-
return None
63+
def plex_session(plex_base_url: str, plex_token: str, cache: ServiceCache) -> Plex:
64+
session = Plex(base_url=plex_base_url, token=plex_token, cache=cache)
65+
if plex_base_url != "http://localhost":
66+
assert session.validate() is True
67+
return session
6668

6769

6870
@pytest.fixture

tests/jellyfin_test.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
import pytest
77
from pytest_httpx import HTTPXMock
88

9-
from mediux_posters.services.jellyfin import Jellyfin
9+
from mediux_posters.services import Jellyfin
1010

1111

1212
@pytest.mark.httpx_mock(
1313
should_mock=lambda request: request.url.host == "localhost",
1414
assert_all_responses_were_requested=False,
1515
)
16-
def test_list_shows(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
17-
if jellyfin_session is None:
18-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
16+
def test_list_shows(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
1917
httpx_mock.add_response(
2018
url="http://localhost/Library/MediaFolders",
2119
json=json.loads(
@@ -42,9 +40,7 @@ def test_list_shows(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) ->
4240
should_mock=lambda request: request.url.host == "localhost",
4341
assert_all_responses_were_requested=False,
4442
)
45-
def test_get_series(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
46-
if jellyfin_session is None:
47-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
43+
def test_get_series(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
4844
httpx_mock.add_response(
4945
url="http://localhost/Library/MediaFolders",
5046
json=json.loads(
@@ -76,9 +72,7 @@ def test_get_series(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) ->
7672
should_mock=lambda request: request.url.host == "localhost",
7773
assert_all_responses_were_requested=False,
7874
)
79-
def test_list_seasons(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
80-
if jellyfin_session is None:
81-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
75+
def test_list_seasons(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
8276
httpx_mock.add_response(
8377
url=re.compile("http://localhost/Shows/.*/Seasons.*"),
8478
json=json.loads(
@@ -105,9 +99,7 @@ def test_list_seasons(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock)
10599
should_mock=lambda request: request.url.host == "localhost",
106100
assert_all_responses_were_requested=False,
107101
)
108-
def test_list_episodes(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
109-
if jellyfin_session is None:
110-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
102+
def test_list_episodes(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
111103
httpx_mock.add_response(
112104
url=re.compile("http://localhost/Shows/.*/Episodes.*"),
113105
json=json.loads(
@@ -136,9 +128,7 @@ def test_list_episodes(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock)
136128
should_mock=lambda request: request.url.host == "localhost",
137129
assert_all_responses_were_requested=False,
138130
)
139-
def test_list_movies(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
140-
if jellyfin_session is None:
141-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
131+
def test_list_movies(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
142132
httpx_mock.add_response(
143133
url="http://localhost/Library/MediaFolders",
144134
json=json.loads(
@@ -164,9 +154,7 @@ def test_list_movies(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -
164154
should_mock=lambda request: request.url.host == "localhost",
165155
assert_all_responses_were_requested=False,
166156
)
167-
def test_get_movie(jellyfin_session: Jellyfin | None, httpx_mock: HTTPXMock) -> None:
168-
if jellyfin_session is None:
169-
jellyfin_session = Jellyfin(base_url="http://localhost", token="INVALID") # noqa: S106
157+
def test_get_movie(jellyfin_session: Jellyfin, httpx_mock: HTTPXMock) -> None:
170158
httpx_mock.add_response(
171159
url="http://localhost/Library/MediaFolders",
172160
json=json.loads(

tests/plex_test.py

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
import pytest
77
from pytest_httpx import HTTPXMock
88

9-
from mediux_posters.services.plex import Plex
9+
from mediux_posters.services import Plex
1010

1111

1212
@pytest.mark.httpx_mock(
1313
should_mock=lambda request: request.url.host == "localhost",
1414
assert_all_responses_were_requested=False,
1515
)
16-
def test_list_shows(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
17-
if plex_session is None:
18-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
16+
def test_list_shows(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
1917
httpx_mock.add_response(
2018
url="http://localhost/library/sections",
2119
json=json.loads(
@@ -40,9 +38,7 @@ def test_list_shows(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
4038
should_mock=lambda request: request.url.host == "localhost",
4139
assert_all_responses_were_requested=False,
4240
)
43-
def test_get_show(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
44-
if plex_session is None:
45-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
41+
def test_get_show(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
4642
httpx_mock.add_response(
4743
url="http://localhost/library/sections",
4844
json=json.loads(
@@ -72,9 +68,7 @@ def test_get_show(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
7268
should_mock=lambda request: request.url.host == "localhost",
7369
assert_all_responses_were_requested=False,
7470
)
75-
def test_list_seasons(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
76-
if plex_session is None:
77-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
71+
def test_list_seasons(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
7872
httpx_mock.add_response(
7973
url=re.compile(r"http://localhost/library/metadata/.*/children\?includeGuids=1"),
8074
json=json.loads(Path("tests/resources/plex/list-seasons.json").read_text(encoding="UTF-8")),
@@ -97,9 +91,7 @@ def test_list_seasons(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
9791
should_mock=lambda request: request.url.host == "localhost",
9892
assert_all_responses_were_requested=False,
9993
)
100-
def test_list_episodes(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
101-
if plex_session is None:
102-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
94+
def test_list_episodes(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
10395
httpx_mock.add_response(
10496
url=re.compile(r"http://localhost/library/metadata/.*/children\?includeGuids=1"),
10597
json=json.loads(
@@ -124,9 +116,7 @@ def test_list_episodes(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None
124116
should_mock=lambda request: request.url.host == "localhost",
125117
assert_all_responses_were_requested=False,
126118
)
127-
def test_list_collections(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
128-
if plex_session is None:
129-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
119+
def test_list_collections(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
130120
httpx_mock.add_response(
131121
url="http://localhost/library/sections",
132122
json=json.loads(
@@ -160,9 +150,7 @@ def test_list_collections(plex_session: Plex | None, httpx_mock: HTTPXMock) -> N
160150
should_mock=lambda request: request.url.host == "localhost",
161151
assert_all_responses_were_requested=False,
162152
)
163-
def test_get_collection(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
164-
if plex_session is None:
165-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
153+
def test_get_collection(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
166154
httpx_mock.add_response(
167155
url="http://localhost/library/sections",
168156
json=json.loads(
@@ -197,9 +185,7 @@ def test_get_collection(plex_session: Plex | None, httpx_mock: HTTPXMock) -> Non
197185
should_mock=lambda request: request.url.host == "localhost",
198186
assert_all_responses_were_requested=False,
199187
)
200-
def test_list_collection_movies(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
201-
if plex_session is None:
202-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
188+
def test_list_collection_movies(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
203189
httpx_mock.add_response(
204190
url=re.compile(r"http://localhost/library/metadata/.*/children\?includeGuids=1"),
205191
json=json.loads(
@@ -224,9 +210,7 @@ def test_list_collection_movies(plex_session: Plex | None, httpx_mock: HTTPXMock
224210
should_mock=lambda request: request.url.host == "localhost",
225211
assert_all_responses_were_requested=False,
226212
)
227-
def test_list_movies(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
228-
if plex_session is None:
229-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
213+
def test_list_movies(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
230214
httpx_mock.add_response(
231215
url="http://localhost/library/sections",
232216
json=json.loads(
@@ -251,9 +235,7 @@ def test_list_movies(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
251235
should_mock=lambda request: request.url.host == "localhost",
252236
assert_all_responses_were_requested=False,
253237
)
254-
def test_get_movie(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
255-
if plex_session is None:
256-
plex_session = Plex(base_url="http://localhost", token="INVALID") # noqa: S106
238+
def test_get_movie(plex_session: Plex, httpx_mock: HTTPXMock) -> None:
257239
httpx_mock.add_response(
258240
url="http://localhost/library/sections",
259241
json=json.loads(

0 commit comments

Comments
 (0)