@@ -26,19 +26,10 @@ def test_list_shows(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
2626 json = json .loads (Path ("tests/resources/plex/list-shows.json" ).read_text ()),
2727 is_reusable = True ,
2828 )
29- httpx_mock .add_response (
30- url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
31- json = json .loads (Path ("tests/resources/plex/list-seasons.json" ).read_text ()),
32- is_reusable = True ,
33- )
34- httpx_mock .add_response (
35- url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
36- json = json .loads (Path ("tests/resources/plex/list-episodes.json" ).read_text ()),
37- is_reusable = True ,
38- )
3929
4030 results = plex_session .list_shows ()
4131 assert results is not None
32+
4233 result = next (iter (x for x in results if x .tmdb_id == 131378 ), None )
4334 assert result is not None
4435
@@ -60,43 +51,67 @@ def test_get_show(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
6051 json = json .loads (Path ("tests/resources/plex/get-show.json" ).read_text ()),
6152 is_reusable = True ,
6253 )
54+
55+ result = plex_session .get_show (tmdb_id = 131378 )
56+ assert result is not None
57+
58+ assert result .id == 109436
59+ assert result .imdb_id == "tt15248880"
60+ assert result .name == "Adventure Time: Fionna & Cake"
61+ assert result .premiere_date == date (2023 , 8 , 31 )
62+ assert result .tmdb_id == 131378
63+ assert result .tvdb_id == 408850
64+ assert result .year == 2023
65+
66+
67+ @pytest .mark .httpx_mock (
68+ should_mock = lambda request : request .url .host == "localhost" ,
69+ assert_all_responses_were_requested = False ,
70+ )
71+ def test_list_seasons (plex_session : Plex | None , httpx_mock : HTTPXMock ) -> None :
72+ if plex_session is None :
73+ plex_session = Plex (base_url = "http://localhost" , token = "INVALID" ) # noqa: S106
6374 httpx_mock .add_response (
6475 url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
6576 json = json .loads (Path ("tests/resources/plex/list-seasons.json" ).read_text ()),
6677 is_reusable = True ,
6778 )
79+
80+ results = plex_session .list_seasons (show_id = 109436 )
81+ assert len (results ) != 0
82+
83+ assert results [0 ].id == 109437
84+ assert results [0 ].imdb_id is None
85+ assert results [0 ].name == "Season 1"
86+ assert results [0 ].number == 1
87+ assert results [0 ].premiere_date is None
88+ assert results [0 ].tmdb_id == 206322
89+ assert results [0 ].tvdb_id == 1950683
90+
91+
92+ @pytest .mark .httpx_mock (
93+ should_mock = lambda request : request .url .host == "localhost" ,
94+ assert_all_responses_were_requested = False ,
95+ )
96+ def test_list_episodes (plex_session : Plex | None , httpx_mock : HTTPXMock ) -> None :
97+ if plex_session is None :
98+ plex_session = Plex (base_url = "http://localhost" , token = "INVALID" ) # noqa: S106
6899 httpx_mock .add_response (
69100 url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
70101 json = json .loads (Path ("tests/resources/plex/list-episodes.json" ).read_text ()),
71102 is_reusable = True ,
72103 )
73104
74- result = plex_session .get_show ( tmdb_id = 131378 )
75- assert result is not None
105+ results = plex_session .list_episodes ( show_id = 109436 , season_id = 109437 )
106+ assert len ( results ) != 0
76107
77- assert result .id == 109436
78- assert result .imdb_id == "tt15248880"
79- assert result .name == "Adventure Time: Fionna & Cake"
80- assert result .premiere_date == date (2023 , 8 , 31 )
81- assert result .tmdb_id == 131378
82- assert result .tvdb_id == 408850
83- assert result .year == 2023
84- assert len (result .seasons ) != 0
85- assert result .seasons [0 ].id == 109437
86- assert result .seasons [0 ].imdb_id is None
87- assert result .seasons [0 ].name == "Season 1"
88- assert result .seasons [0 ].number == 1
89- assert result .seasons [0 ].premiere_date is None
90- assert result .seasons [0 ].tmdb_id == 206322
91- assert result .seasons [0 ].tvdb_id == 1950683
92- assert len (result .seasons [0 ].episodes ) != 0
93- assert result .seasons [0 ].episodes [0 ].id == 109438
94- assert result .seasons [0 ].episodes [0 ].imdb_id == "tt15251002"
95- assert result .seasons [0 ].episodes [0 ].name == "Fionna Campbell"
96- assert result .seasons [0 ].episodes [0 ].number == 1
97- assert result .seasons [0 ].episodes [0 ].premiere_date == date (2023 , 8 , 31 )
98- assert result .seasons [0 ].episodes [0 ].tmdb_id == 4582728
99- assert result .seasons [0 ].episodes [0 ].tvdb_id == 8619274
108+ assert results [0 ].id == 109438
109+ assert results [0 ].imdb_id == "tt15251002"
110+ assert results [0 ].name == "Fionna Campbell"
111+ assert results [0 ].number == 1
112+ assert results [0 ].premiere_date == date (2023 , 8 , 31 )
113+ assert results [0 ].tmdb_id == 4582728
114+ assert results [0 ].tvdb_id == 8619274
100115
101116
102117@pytest .mark .httpx_mock (
@@ -121,14 +136,10 @@ def test_list_collections(plex_session: Plex | None, httpx_mock: HTTPXMock) -> N
121136 json = json .loads (Path ("tests/resources/plex/get-collection.json" ).read_text ()),
122137 is_reusable = True ,
123138 )
124- httpx_mock .add_response (
125- url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
126- json = json .loads (Path ("tests/resources/plex/list-collection-movies.json" ).read_text ()),
127- is_reusable = True ,
128- )
129139
130140 results = plex_session .list_collections ()
131141 assert len (results ) != 0
142+
132143 result = next (iter (x for x in results if x .tmdb_id == 125574 ), None )
133144 assert result is not None
134145
@@ -155,26 +166,38 @@ def test_get_collection(plex_session: Plex | None, httpx_mock: HTTPXMock) -> Non
155166 json = json .loads (Path ("tests/resources/plex/get-collection.json" ).read_text ()),
156167 is_reusable = True ,
157168 )
158- httpx_mock .add_response (
159- url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
160- json = json .loads (Path ("tests/resources/plex/list-collection-movies.json" ).read_text ()),
161- is_reusable = True ,
162- )
163169
164170 result = plex_session .get_collection (tmdb_id = 125574 )
165171 assert result is not None
166172
167173 assert result .id == 120713
168174 assert result .name == "The Amazing Spider-Man Collection"
169175 assert result .tmdb_id == 125574
170- assert len (result .movies ) != 0
171- assert result .movies [0 ].id == 120717
172- assert result .movies [0 ].imdb_id == "tt0948470"
173- assert result .movies [0 ].name == "The Amazing Spider-Man"
174- assert result .movies [0 ].premiere_date == date (2012 , 6 , 28 )
175- assert result .movies [0 ].tmdb_id == 1930
176- assert result .movies [0 ].tvdb_id == 473
177- assert result .movies [0 ].year == 2012
176+
177+
178+ @pytest .mark .httpx_mock (
179+ should_mock = lambda request : request .url .host == "localhost" ,
180+ assert_all_responses_were_requested = False ,
181+ )
182+ def test_list_collection_movies (plex_session : Plex | None , httpx_mock : HTTPXMock ) -> None :
183+ if plex_session is None :
184+ plex_session = Plex (base_url = "http://localhost" , token = "INVALID" ) # noqa: S106
185+ httpx_mock .add_response (
186+ url = re .compile (r"http://localhost/library/metadata/.*/children\?includeGuids=1" ),
187+ json = json .loads (Path ("tests/resources/plex/list-collection-movies.json" ).read_text ()),
188+ is_reusable = True ,
189+ )
190+
191+ results = plex_session .list_collection_movies (collection_id = 120713 )
192+ assert len (results ) != 0
193+
194+ assert results [0 ].id == 120717
195+ assert results [0 ].imdb_id == "tt0948470"
196+ assert results [0 ].name == "The Amazing Spider-Man"
197+ assert results [0 ].premiere_date == date (2012 , 6 , 28 )
198+ assert results [0 ].tmdb_id == 1930
199+ assert results [0 ].tvdb_id == 473
200+ assert results [0 ].year == 2012
178201
179202
180203@pytest .mark .httpx_mock (
@@ -197,6 +220,7 @@ def test_list_movies(plex_session: Plex | None, httpx_mock: HTTPXMock) -> None:
197220
198221 results = plex_session .list_movies ()
199222 assert len (results ) != 0
223+
200224 result = next (iter (x for x in results if x .tmdb_id == 431580 ), None )
201225 assert result is not None
202226
0 commit comments