def test_unicode_search(self): """ It should be possible to search for shows containing non ascii chars """ api = TVDB("B43FF87DE395DF56") search = api.search("Alarm für cobra 11", "de") show = search[0] self.assertEqual(show[1][2].EpisodeName, "Rote Rosen, schwarzer Tod") search = api.search('3年B組金八先生', "zh") show = search[0] self.assertEqual(show[1][1].EpisodeName, "3年B組金八先生")
def test_search(self): """It should be possible to search for shows""" api = TVDB("B43FF87DE395DF56") search = api.search("dexter", "en") self.assertEqual(len(search), 1) search = api.search("scrubs", "en") self.assertEqual(len(search), 2) search = api.search("dexter", "en") self.assertEqual(len(search), 1) self.assertEqual(search.search, "dexter")
def test_iterate_search(self): """It should be possible to iterate over a search result""" api = TVDB("B43FF87DE395DF56") search = api.search("house", "en") for s in search: self.assertEqual(type(s), pytvdbapi.api.Show)
def test_force_language(self): """ It should be possible to use the "force_lang" keyword when creating the TVDB instance """ api = TVDB("B43FF87DE395DF56", force_lang=True) search = api.search("dexter", "it") self.assertEqual(len(search), 2)
def test_invalid_search_index(self): """Search should raise TVDBIndexError when trying to access an invalid index """ api = TVDB("B43FF87DE395DF56") search = api.search("dexter", "en") self.assertRaises(error.TVDBIndexError, search.__getitem__, 10) self.assertRaises(error.TVDBIndexError, search.__getitem__, 50) self.assertRaises(error.TVDBIndexError, search.__getitem__, 100) self.assertRaises(error.TVDBValueError, search.__getitem__, "foo")
def test_invalid_search_index(self): """Search should raise TVDBIndexError when trying to access an invalid index """ api = TVDB("B43FF87DE395DF56") search = api.search("dexter", "en") self.assertRaises(error.TVDBIndexError, search.__getitem__, 2) self.assertRaises(error.TVDBIndexError, search.__getitem__, 5) self.assertRaises(error.TVDBIndexError, search.__getitem__, 100) self.assertRaises(error.TVDBIndexError, search.__getitem__, "foo")
def test_attribute_case(self): """ When ignore_case is False, all attributes should be case sensitive """ api = TVDB("B43FF87DE395DF56", ignore_case=False) search = api.search("friends", 'en') # Load and update the show show = search[0] show.update() self.assertRaises(error.TVDBAttributeError, show.__getattr__, "ImDB_id")
def test_ignore_case(self): """ It should be possible to pass the ignore_case keyword to the api and access all show/season/episode attributes in a case insensitive way. """ api = TVDB("B43FF87DE395DF56", ignore_case=True) search = api.search("friends", 'en') # Load and update the show show = search[0] show.update() self.assertEqual(show.IMDB_ID, show.imdb_id) self.assertEqual(show.ImDB_id, show.imDb_Id)
def _load_show(show): """Helper function to load a show show from server""" api = TVDB("B43FF87DE395DF56") search = api.search(show, "en") return search[0]
def test_case_insensitive(self): """The test should be case insensitive""" api = TVDB("B43FF87DE395DF56") search = api.search("DeXtEr", "en") self.assertEqual(len(search), 1)
def test_case_insensitive(self): """The search should be case insensitive""" api = TVDB("B43FF87DE395DF56") search = api.search("DeXtEr", "en") self.assertEqual(len(search), 1)
def test_names_with_spaces(self): """It should be possible to search for shows with spaces in the name""" api = TVDB("B43FF87DE395DF56") search = api.search("How I Met Your Mother", "en") self.assertEqual(len(search), 1)
def get(self, language, name): db = TVDB(tvdb_api_key) shows = db.search(name, language) shows = [show_to_dict(show) for show in shows] data = {"status": "success", "data": shows} self.write(data)