improve test

This commit is contained in:
Your Name 2023-06-05 10:06:16 -04:00 committed by Henri Dickson
parent 5033f15abc
commit f53b1aca38
9 changed files with 26 additions and 23 deletions

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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"]:

View file

@ -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)