SickGear/lib/tmdb_api/test_tmdb_api.py
echel0n 0fcd780c2f Improved TVRage API code to now include show/episode summaries and fanart.
Bugfix in metadata code for XBMC 12+ to display proper episodeguide urls.
Misc tweaks here and there.
2014-03-13 20:07:15 -07:00

184 lines
5.3 KiB
Python

"""
test.py contains unit tests for tmdbsimple.py
Fill in Global Variables below before running tests.
Created by Celia Oakley on 2013-11-05
"""
import unittest
import sys
from tmdb_api import TMDB
#
# Global Variables (fill in or put in keys.py)
#
TMDB_API_KEY = 'edc5f123313769de83a71e157758030b'
try:
from keys import *
except ImportError:
pass
class TVCheck(unittest.TestCase):
def testTVInfo(self):
id = 1396
name = 'UFC'
tmdb = TMDB(TMDB_API_KEY)
find = tmdb.Find(23281)
response = find.info({'external_source': 'tvrage_id'})
self.assertTrue(hasattr(response, name))
def testTVSearch(self):
id = 1396
name = 'UFC'
tmdb = TMDB(TMDB_API_KEY)
# get TMDB configuration info
config = tmdb.Configuration()
response = config.info()
base_url = response['images']['base_url']
sizes = response['images']['poster_sizes']
def size_str_to_int(x):
return float("inf") if x == 'original' else int(x[1:])
max_size = max(sizes, key=size_str_to_int)
# get show ID on TMDB
search = tmdb.Search()
response = search.collection({'query': name})
for result in response['results']:
id = result['id']
# get show images
collection = tmdb.Collections(id)
response = collection.images()
rel_path = response['posters'][0]['file_path']
url = "{0}{1}{2}".format(base_url, max_size, rel_path)
self.assertTrue(hasattr(response, name))
def testTVCredits(self):
id = 1396
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV(id)
response = tv.credits()
self.assertTrue(hasattr(tv, 'cast'))
def testTVExternalIds(self):
id = 1396
imdb_id = 'tt0903747'
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV(id)
response = tv.external_ids()
self.assertEqual(tv.imdb_id, imdb_id)
def testTVImages(self):
id = 1396
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV(id)
response = tv.images()
self.assertTrue(hasattr(tv, 'backdrops'))
def testTVTranslations(self):
id = 1396
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV(id)
response = tv.translations()
self.assertTrue(hasattr(tv, 'translations'))
def testTVTopRated(self):
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV()
response = tv.top_rated()
self.assertTrue(hasattr(tv, 'results'))
def testTVPopular(self):
tmdb = TMDB(TMDB_API_KEY)
tv = tmdb.TV()
response = tv.popular()
self.assertTrue(hasattr(tv, 'results'))
class TVSeasonsCheck(unittest.TestCase):
def testTVSeasonsInfo(self):
id = 3572
season_number = 1
name = 'Season 1'
tmdb = TMDB(TMDB_API_KEY)
tv_seasons = tmdb.TV_Seasons(id, season_number)
response = tv_seasons.info()
self.assertEqual(tv_seasons.name, name)
def testTVSeasonsCredits(self):
id = 3572
season_number = 1
tmdb = TMDB(TMDB_API_KEY)
tv_seasons = tmdb.TV_Seasons(id, season_number)
response = tv_seasons.credits()
self.assertTrue(hasattr(tv_seasons, 'crew'))
def testTVSeasonsExternalIds(self):
id = 3572
season_number = 1
tvdb_id = 2547
tmdb = TMDB(TMDB_API_KEY)
tv_seasons = tmdb.TV_Seasons(id, season_number)
response = tv_seasons.external_ids()
self.assertEqual(tv_seasons.tvdb_id, tvdb_id)
def testTVSeasonsImages(self):
id = 3572
season_number = 1
tmdb = TMDB(TMDB_API_KEY)
tv_seasons = tmdb.TV_Seasons(id, season_number)
response = tv_seasons.images()
self.assertTrue(hasattr(tv_seasons, 'posters'))
class TVEpisodesCheck(unittest.TestCase):
def testTVEpisodesInfo(self):
id = 1396
season_number = 1
episode_number = 1
name = 'Pilot'
tmdb = TMDB(TMDB_API_KEY)
tv_episodes = tmdb.TV_Episodes(id, season_number, episode_number)
response = tv_episodes.info()
self.assertEqual(tv_episodes.name, name)
def testTVEpisodesCredits(self):
id = 1396
season_number = 1
episode_number = 1
tmdb = TMDB(TMDB_API_KEY)
tv_episodes = tmdb.TV_Episodes(id, season_number, episode_number)
response = tv_episodes.credits()
self.assertTrue(hasattr(tv_episodes, 'guest_stars'))
def testTVEpisodesExternalIds(self):
id = 1396
season_number = 1
episode_number = 1
imdb_id = 'tt0959621'
tmdb = TMDB(TMDB_API_KEY)
tv_episodes = tmdb.TV_Episodes(id, season_number, episode_number)
response = tv_episodes.external_ids()
self.assertEqual(tv_episodes.imdb_id, imdb_id)
def testTVEpisodesImages(self):
id = 1396
season_number = 1
episode_number = 1
tmdb = TMDB(TMDB_API_KEY)
tv_episodes = tmdb.TV_Episodes(id, season_number, episode_number)
response = tv_episodes.images()
self.assertTrue(hasattr(tv_episodes, 'stills'))
if __name__ == "__main__":
unittest.main()
# Run with:
# python3 test_tmdbsimple.py ConfigurationCheck -v
# python3 test_tmdbsimple.py ConfigurationCheck
# ... or other Check classes
# python3 test_tmdbsimple.py -v
# python3 test_tmdbsimple.py