improve test
This commit is contained in:
parent
5033f15abc
commit
f53b1aca38
9 changed files with 26 additions and 23 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"]:
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue