From f53b1aca38c6b2eeff945fcb6ff80842ae511930 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 5 Jun 2023 10:06:16 -0400 Subject: [PATCH] improve test --- catalog/book/tests.py | 2 +- catalog/common/sites.py | 9 ++++++--- catalog/game/tests.py | 8 ++++---- catalog/movie/tests.py | 6 +++--- catalog/music/tests.py | 12 ++++++------ catalog/performance/tests.py | 2 +- catalog/podcast/tests.py | 2 +- catalog/sites/igdb.py | 4 ++-- catalog/tv/tests.py | 4 ++-- 9 files changed, 26 insertions(+), 23 deletions(-) diff --git a/catalog/book/tests.py b/catalog/book/tests.py index 7415dbf3..51e0ea2c 100644 --- a/catalog/book/tests.py +++ b/catalog/book/tests.py @@ -76,7 +76,7 @@ class GoodreadsTestCase(TestCase): t_id = "77566" t_url = "https://www.goodreads.com/zh/book/show/77566.Hyperion" t_url2 = "https://www.goodreads.com/book/show/77566" - p1 = SiteManager.get_site_by_id_type(t_type) + p1 = SiteManager.get_site_cls_by_id_type(t_type) p2 = SiteManager.get_site_by_url(t_url) self.assertEqual(p1.id_to_url(t_id), t_url2) self.assertEqual(p2.url_to_id(t_url), t_id) diff --git a/catalog/common/sites.py b/catalog/common/sites.py index f07d7caa..e5a6bb23 100644 --- a/catalog/common/sites.py +++ b/catalog/common/sites.py @@ -234,8 +234,11 @@ class SiteManager: return target @staticmethod - def get_site_by_id_type(typ: str) -> AbstractSite | None: - return SiteManager.registry[typ]() if typ in SiteManager.registry else None + def get_site_cls_by_id_type(typ: str) -> AbstractSite: + if typ in SiteManager.registry: + return SiteManager.registry[typ] + else: + raise ValueError(f"Site for {typ} not found") @staticmethod def get_site_by_url(url: str) -> AbstractSite | None: @@ -271,7 +274,7 @@ class SiteManager: return SiteManager.register.values() -ExternalResource.get_site = lambda resource: SiteManager.get_site_by_id_type( +ExternalResource.get_site = lambda resource: SiteManager.get_site_cls_by_id_type( resource.id_type ) # type: ignore diff --git a/catalog/game/tests.py b/catalog/game/tests.py index d449cb4d..498e4534 100644 --- a/catalog/game/tests.py +++ b/catalog/game/tests.py @@ -8,7 +8,7 @@ class IGDBTestCase(TestCase): t_id_type = IdType.IGDB t_id_value = "portal-2" t_url = "https://www.igdb.com/games/portal-2" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -54,7 +54,7 @@ class SteamTestCase(TestCase): t_id_value = "620" t_url = "https://store.steampowered.com/app/620/Portal_2/" t_url2 = "https://store.steampowered.com/app/620" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -84,7 +84,7 @@ class DoubanGameTestCase(TestCase): t_id_type = IdType.DoubanGame t_id_value = "10734307" t_url = "https://www.douban.com/game/10734307/" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -110,7 +110,7 @@ class BangumiGameTestCase(TestCase): t_id_type = IdType.Bangumi t_id_value = "15912" t_url = "https://bgm.tv/subject/15912" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) diff --git a/catalog/movie/tests.py b/catalog/movie/tests.py index 8f41b4fe..2c860eab 100644 --- a/catalog/movie/tests.py +++ b/catalog/movie/tests.py @@ -6,7 +6,7 @@ class DoubanMovieTestCase(TestCase): def test_parse(self): t_id = "3541415" t_url = "https://movie.douban.com/subject/3541415/" - p1 = SiteManager.get_site_by_id_type(IdType.DoubanMovie) + p1 = SiteManager.get_site_cls_by_id_type(IdType.DoubanMovie) self.assertIsNotNone(p1) self.assertEqual(p1.validate_url(t_url), True) p2 = SiteManager.get_site_by_url(t_url) @@ -33,7 +33,7 @@ class TMDBMovieTestCase(TestCase): "https://www.themoviedb.org/movie/293767-billy-lynn-s-long-halftime-walk" ) t_url2 = "https://www.themoviedb.org/movie/293767" - p1 = SiteManager.get_site_by_id_type(IdType.TMDB_Movie) + p1 = SiteManager.get_site_cls_by_id_type(IdType.TMDB_Movie) self.assertIsNotNone(p1) self.assertEqual(p1.validate_url(t_url), True) self.assertEqual(p1.validate_url(t_url2), True) @@ -59,7 +59,7 @@ class IMDBMovieTestCase(TestCase): t_id = "tt1375666" t_url = "https://www.imdb.com/title/tt1375666/" t_url2 = "https://www.imdb.com/title/tt1375666/" - p1 = SiteManager.get_site_by_id_type(IdType.IMDB) + p1 = SiteManager.get_site_cls_by_id_type(IdType.IMDB) self.assertIsNotNone(p1) self.assertEqual(p1.validate_url(t_url), True) self.assertEqual(p1.validate_url(t_url2), True) diff --git a/catalog/music/tests.py b/catalog/music/tests.py index 0b1754d7..63f80866 100644 --- a/catalog/music/tests.py +++ b/catalog/music/tests.py @@ -18,7 +18,7 @@ class SpotifyTestCase(TestCase): t_id_type = IdType.Spotify_Album t_id_value = "65KwtzkJXw7oT819NFWmEP" t_url = "https://open.spotify.com/album/65KwtzkJXw7oT819NFWmEP" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -44,7 +44,7 @@ class DoubanMusicTestCase(TestCase): t_id_type = IdType.DoubanMusic t_id_value = "33551231" t_url = "https://music.douban.com/subject/33551231/" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -89,7 +89,7 @@ class BandcampTestCase(TestCase): t_id_value = "intlanthem.bandcamp.com/album/in-these-times" t_url = "https://intlanthem.bandcamp.com/album/in-these-times?from=hpbcw" t_url2 = "https://intlanthem.bandcamp.com/album/in-these-times" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -116,7 +116,7 @@ class DiscogsReleaseTestCase(TestCase): t_id_value = "25829341" t_url = "https://www.discogs.com/release/25829341-JID-The-Never-Story" t_url_2 = "https://www.discogs.com/release/25829341" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -146,7 +146,7 @@ class DiscogsMasterTestCase(TestCase): t_id_value = "469004" t_url = "https://www.discogs.com/master/469004-The-XX-Coexist" t_url_2 = "https://www.discogs.com/master/469004" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) @@ -173,7 +173,7 @@ class AppleMusicTestCase(TestCase): t_id_value = "1284391545" t_url = "https://music.apple.com/us/album/kids-only/1284391545" t_url_2 = "https://music.apple.com/album/1284391545" - site = SiteManager.get_site_by_id_type(t_id_type) + site = SiteManager.get_site_cls_by_id_type(t_id_type) self.assertIsNotNone(site) self.assertEqual(site.validate_url(t_url), True) site = SiteManager.get_site_by_url(t_url) diff --git a/catalog/performance/tests.py b/catalog/performance/tests.py index c64acf66..a78ad5d5 100644 --- a/catalog/performance/tests.py +++ b/catalog/performance/tests.py @@ -10,7 +10,7 @@ class DoubanDramaTestCase(TestCase): def test_parse(self): t_id = "24849279" t_url = "https://www.douban.com/location/drama/24849279/" - p1 = SiteManager.get_site_by_id_type(IdType.DoubanDrama) + p1 = SiteManager.get_site_cls_by_id_type(IdType.DoubanDrama) self.assertIsNotNone(p1) p1 = SiteManager.get_site_by_url(t_url) self.assertIsNotNone(p1) diff --git a/catalog/podcast/tests.py b/catalog/podcast/tests.py index e089cf91..3929280f 100644 --- a/catalog/podcast/tests.py +++ b/catalog/podcast/tests.py @@ -11,7 +11,7 @@ from catalog.common import * # t_id = "657765158" # t_url = "https://podcasts.apple.com/us/podcast/%E5%A4%A7%E5%86%85%E5%AF%86%E8%B0%88/id657765158" # t_url2 = "https://podcasts.apple.com/us/podcast/id657765158" -# p1 = SiteManager.get_site_by_id_type(IdType.ApplePodcast) +# p1 = SiteManager.get_site_cls_by_id_type(IdType.ApplePodcast) # self.assertIsNotNone(p1) # self.assertEqual(p1.validate_url(t_url), True) # p2 = SiteManager.get_site_by_url(t_url) diff --git a/catalog/sites/igdb.py b/catalog/sites/igdb.py index d4bb6ac9..f1274f25 100644 --- a/catalog/sites/igdb.py +++ b/catalog/sites/igdb.py @@ -51,7 +51,7 @@ class IGDB(AbstractSite): DEFAULT_MODEL = Game @classmethod - def id_to_url(self, id_value): + def id_to_url(cls, id_value): return "https://www.igdb.com/games/" + id_value @classmethod @@ -139,7 +139,7 @@ class IGDB(AbstractSite): } ) if steam_url: - pd.lookup_ids[IdType.Steam] = SiteManager.get_site_by_id_type( + pd.lookup_ids[IdType.Steam] = SiteManager.get_site_cls_by_id_type( IdType.Steam ).url_to_id(steam_url) if pd.metadata["cover_image_url"]: diff --git a/catalog/tv/tests.py b/catalog/tv/tests.py index 1ec00ede..526ff8aa 100644 --- a/catalog/tv/tests.py +++ b/catalog/tv/tests.py @@ -21,7 +21,7 @@ class TMDBTVTestCase(TestCase): t_url = "https://www.themoviedb.org/tv/57243-doctor-who" t_url1 = "https://www.themoviedb.org/tv/57243-doctor-who/seasons" t_url2 = "https://www.themoviedb.org/tv/57243" - p1 = SiteManager.get_site_by_id_type(IdType.TMDB_TV) + p1 = SiteManager.get_site_cls_by_id_type(IdType.TMDB_TV) self.assertIsNotNone(p1) self.assertEqual(p1.validate_url(t_url), True) self.assertEqual(p1.validate_url(t_url1), True) @@ -52,7 +52,7 @@ class TMDBTVSeasonTestCase(TestCase): t_id = "57243-11" t_url = "https://www.themoviedb.org/tv/57243-doctor-who/season/11" t_url_unique = "https://www.themoviedb.org/tv/57243/season/11" - p1 = SiteManager.get_site_by_id_type(IdType.TMDB_TVSeason) + p1 = SiteManager.get_site_cls_by_id_type(IdType.TMDB_TVSeason) self.assertIsNotNone(p1) self.assertEqual(p1.validate_url(t_url), True) self.assertEqual(p1.validate_url(t_url_unique), True)