def do_test(): """ Test to perform """ global search_items # pylint: disable=global-statement search_items = cur_data["i"] show = TVShow(1, tvdb_id) show.name = show_name show.quality = cur_data["q"] show.saveToDB() sickbeard.showList.append(show) episode = None for epNumber in cur_data["e"]: episode = TVEpisode(show, cur_data["s"], epNumber) episode.status = common.WANTED episode.saveToDB() best_result = search.searchProviders(show, episode.episode, force_search) if not best_result: assert cur_data["b"] == best_result # pylint: disable=no-member assert cur_data[ "b"] == best_result.name # first is expected, second is chosen one
def setUp(self): sickbeard.showList = [] setup_test_db() setup_test_episode_file() setup_test_show_dir() setup_test_processing_dir() show = TVShow(1, 1, 'en') show.name = SHOW_NAME show.location = FILE_DIR show.episodes = {} for season in range(1, NUM_SEASONS): show.episodes[season] = {} for episode in range(1, EPISODES_PER_SEASON): if season == SEASON and episode == EPISODE: episode = TVEpisode(show, season, episode, ep_file=FILE_PATH) else: episode = TVEpisode(show, season, episode) show.episodes[season][episode] = episode episode.saveToDB() show.saveToDB() sickbeard.showList = [show]
def test_set_name(self): """ test set name """ show = TVShow(1, 1, "en") show.name = "newName" show.saveToDB() show.loadFromDB() self.assertEqual(show.name, "newName")
def test_getEpisode(self): show = TVShow(1, 1, 'en') show.name = 'show name' show.tvrname = 'show name' show.network = 'cbs' show.genre = 'crime' show.runtime = 40 show.status = '5' show.airs = 'monday' show.startyear = 1987 show.saveToDB() sickbeard.showList = [show]
def test_getEpisode(self): show = TVShow(1, 1, "en") show.name = "show name" show.tvrname = "show name" show.network = "cbs" show.genre = "crime" show.runtime = 40 show.status = "5" show.airs = "monday" show.startyear = 1987 show.saveToDB() sickbeard.showList = [show]
def test_process(self): show = TVShow(3) show.name = test.SHOWNAME show.location = test.SHOWDIR show.saveToDB() sickbeard.showList = [show] ep = TVEpisode(show, test.SEASON, test.EPISODE) ep.name = "some ep name" ep.saveToDB() pp = PostProcessor(test.FILEPATH) self.assertTrue(pp.process())
def test(self): show = TVShow(tvdb_id) show.name = data[0] if data[1]: show.anime = 1 show.saveToDB() showList = [show] sceneName = data[2] result = helpers.get_show_by_name(sceneName, showList, False) if not result: self.assertEqual(False, show.tvdbid) return False self.assertEqual(result.tvdbid, show.tvdbid)
def test(self): if parseResult.series_name: show = TVShow(parseResult.series_name) show.name = parseResult.series_name if anime: show.anime = 1 show.saveToDB() isGood = sickbeard.show_name_helpers.isGoodResult( sickbeard.helpers.sanitizeSceneName(toTest), show) self.assertTrue( isGood, "'" + toTest + "' it is not a valid result '" + show.name + "'") self.assertTrue(True)
def test_process(self): show = TVShow(1, 3) show.name = test.SHOWNAME show.location = test.SHOWDIR show.saveToDB() sickbeard.showList = [show] ep = TVEpisode(show, test.SEASON, test.EPISODE) ep.name = "some ep name" ep.saveToDB() pp = PostProcessor(test.FILEPATH) self.assertTrue(pp.process())
def test_process(self): show = TVShow(1, 3) show.name = test.SHOWNAME show.location = test.SHOWDIR show.saveToDB() sickbeard.showList = [show] ep = TVEpisode(show, test.SEASON, test.EPISODE) ep.name = "some ep name" ep.saveToDB() addNameToCache('show name', 3) self.pp = PostProcessor(test.FILEPATH, process_method='move') self.assertTrue(self.pp.process())
def test_process(self): show = TVShow(1, 3) show.name = SHOWNAME show.location = SHOWDIR show.saveToDB() sickbeard.showList = [show] ep = TVEpisode(show, SEASON, EPISODE) ep.name = "some ep name" ep.saveToDB() addNameToCache('show name', 3) self.pp = PostProcessor(FILEPATH, process_method='move') self.assertTrue(self.pp.process())
def test_get_episode(): """ Test get episodes """ show = TVShow(1, 1, "en") show.name = "show name" show.network = "cbs" show.genre = "crime" show.runtime = 40 show.status = "Ended" show.default_ep_status = "5" show.airs = "monday" show.startyear = 1987 show.saveToDB() sickbeard.showList = [show]
def loadShowsFromDB(): myDB = db.DBConnection() sqlResults = myDB.select("SELECT * FROM tv_shows") myShowList = [] for sqlShow in sqlResults: try: curShow = TVShow(sqlShow["location"]) curShow.saveToDB() sickbeard.showList.append(curShow) except Exception, e: logger.log("There was an error creating the show in "+sqlShow["location"]+": "+str(e), logger.ERROR) logger.log(traceback.format_exc(), logger.DEBUG)
def test_process(self): show = TVShow(1,3) show.name = test.SHOWNAME show.location = test.SHOWDIR show.saveToDB() sickbeard.showList = [show] ep = TVEpisode(show, test.SEASON, test.EPISODE) ep.name = "some ep name" ep.saveToDB() addNameToCache('show name', 3) sickbeard.PROCESS_METHOD = 'move' pp = PostProcessor(test.FILEPATH) self.assertTrue(pp.process())
def test(self): global searchItems searchItems = curData["i"] show = TVShow(tvdbdid) show.name = show_name show.quality = curData["q"] show.saveToDB() sickbeard.showList.append(show) for epNumber in curData["e"]: episode = TVEpisode(show, curData["s"], epNumber) episode.status = c.WANTED episode.saveToDB() bestResult = search.findEpisode(episode, forceSearch) if not bestResult: self.assertEqual(curData["b"], bestResult) self.assertEqual(curData["b"], bestResult.name) #first is expected, second is choosen one
def test_change_indexerid(self): show = TVShow(1, 1, "en") show.name = "show name" show.tvrname = "show name" show.network = "cbs" show.genre = "crime" show.runtime = 40 show.status = "5" show.airs = "monday" show.startyear = 1987 show.saveToDB() show.loadFromDB(skipNFO=True) show.indexerid = 2 show.saveToDB() show.loadFromDB(skipNFO=True) self.assertEqual(show.indexerid, 2)
def test_process(self): """ Test process """ show = TVShow(1, 3) show.name = test.SHOW_NAME show.location = test.SHOW_DIR show.saveToDB() sickbeard.showList = [show] episode = TVEpisode(show, test.SEASON, test.EPISODE) episode.name = "some episode name" episode.saveToDB() addNameToCache('show name', 3) sickbeard.PROCESS_METHOD = 'move' post_processor = PostProcessor(test.FILE_PATH) self.assertTrue(post_processor.process())
def test_change_indexerid(self): show = TVShow(1, 1, 'en') show.name = 'show name' show.tvrname = 'show name' show.network = 'cbs' show.genre = 'crime' show.runtime = 40 show.status = '5' show.airs = 'monday' show.startyear = 1987 show.saveToDB() show.loadFromDB(skipNFO=True) show.indexerid = 2 show.saveToDB() show.loadFromDB(skipNFO=True) self.assertEqual(show.indexerid, 2)
def test(self): global searchItems searchItems = curData['i'] show = TVShow(1, tvdbdid) show.name = show_name show.quality = curData['q'] show.saveToDB() sickbeard.showList.append(show) episode = None for epNumber in curData['e']: episode = TVEpisode(show, curData['s'], epNumber) episode.status = c.WANTED episode.saveToDB() bestResult = search.search_providers(show, episode.season, episode.episode, forceSearch) if not bestResult: self.assertEqual(curData['b'], bestResult) self.assertEqual(curData['b'], bestResult.name) #first is expected, second is choosen one
def test_change_indexerid(self): """ test change indexer id """ show = TVShow(1, 1, "en") show.name = "show name" show.network = "cbs" show.genre = "crime" show.runtime = 40 show.status = "Ended" show.default_ep_status = "5" show.airs = "monday" show.startyear = 1987 show.saveToDB() show.loadFromDB() show.indexerid = 2 show.saveToDB() show.loadFromDB() self.assertEqual(show.indexerid, 2)
def test(self): global searchItems searchItems = curData['i'] show = TVShow(1, tvdbdid) show.name = show_name show.quality = curData['q'] show.saveToDB() sickbeard.showList.append(show) episode = None for epNumber in curData['e']: episode = TVEpisode(show, curData['s'], epNumber) episode.status = c.WANTED episode.saveToDB() bestResult = search.search_providers(show, episode.season, episode.episode, forceSearch) if not bestResult: self.assertEqual(curData['b'], bestResult) self.assertEqual( curData['b'], bestResult.name) #first is expected, second is choosen one
def do_test(): """ Test to perform """ global search_items # pylint: disable=global-statement search_items = cur_data["i"] show = TVShow(1, tvdb_id) show.name = show_name show.quality = cur_data["q"] show.saveToDB() sickbeard.showList.append(show) episode = None for epNumber in cur_data["e"]: episode = TVEpisode(show, cur_data["s"], epNumber) episode.status = common.WANTED episode.saveToDB() best_result = search.searchProviders(show, episode.episode, force_search) if not best_result: assert cur_data["b"] == best_result # pylint: disable=no-member assert cur_data["b"] == best_result.name # first is expected, second is chosen one
def test(self): self.showDir = test_lib.setUp_test_show_dir(show_name) self.filePath = test_lib.setUp_test_episode_file( None, curData["b"] + ".mkv") show = TVShow(tvdbdid) show.name = show_name show.quality = curData["q"] show.location = self.showDir if curData["anime"]: show.anime = 1 show.saveToDB() sickbeard.showList.append(show) for epNumber in curData["e"]: episode = TVEpisode(show, curData["s"], epNumber) episode.status = c.WANTED if "ab" in curData: episode.absolute_number = curData["ab"] episode.saveToDB() pp = PostProcessor(self.filePath) self.assertTrue(pp.process())
def setUpClass(cls): num_legacy_shows = 3 num_shows = 3 num_episodes_per_show = 5 cls.mydb = db.DBConnection() cls.legacy_shows = [] cls.shows = [] # Per-show-notifications were originally added for email notifications only. To add # this feature to other notifiers, it was necessary to alter the way text is stored in # one of the DB columns. Therefore, to test properly, we must create some shows that # store emails in the old method (legacy method) and then other shows that will use # the new method. for show_counter in range(100, 100+num_legacy_shows): show = TVShow(1, show_counter) show.name = "Show "+str(show_counter) show.episodes = [] for episode_counter in range(0, num_episodes_per_show): episode = TVEpisode(show, test.SEASON, episode_counter) episode.name = "Episode "+str(episode_counter+1) episode.quality = "SDTV" show.episodes.append(episode) show.saveToDB() cls.legacy_shows.append(show) for show_counter in range(200, 200+num_shows): show = TVShow(1, show_counter) show.name = "Show "+str(show_counter) show.episodes = [] for episode_counter in range(0, num_episodes_per_show): episode = TVEpisode(show, test.SEASON, episode_counter) episode.name = "Episode "+str(episode_counter+1) episode.quality = "SDTV" show.episodes.append(episode) show.saveToDB() cls.shows.append(show)
def setUpClass(cls): num_legacy_shows = 3 num_shows = 3 num_episodes_per_show = 5 cls.mydb = db.DBConnection() cls.legacy_shows = [] cls.shows = [] # Per-show-notifications were originally added for email notifications only. To add # this feature to other notifiers, it was necessary to alter the way text is stored in # one of the DB columns. Therefore, to test properly, we must create some shows that # store emails in the old method (legacy method) and then other shows that will use # the new method. for show_counter in range(100, 100 + num_legacy_shows): show = TVShow(1, show_counter) show.name = "Show " + str(show_counter) show.episodes = [] for episode_counter in range(0, num_episodes_per_show): episode = TVEpisode(show, test.SEASON, episode_counter) episode.name = "Episode " + str(episode_counter + 1) episode.quality = "SDTV" show.episodes.append(episode) show.saveToDB() cls.legacy_shows.append(show) for show_counter in range(200, 200 + num_shows): show = TVShow(1, show_counter) show.name = "Show " + str(show_counter) show.episodes = [] for episode_counter in range(0, num_episodes_per_show): episode = TVEpisode(show, test.SEASON, episode_counter) episode.name = "Episode " + str(episode_counter + 1) episode.quality = "SDTV" show.episodes.append(episode) show.saveToDB() cls.shows.append(show)
def setUp(self): sickbeard.showList = [] setup_test_db() setup_test_episode_file() setup_test_show_dir() setup_test_processing_dir() show = TVShow(1, 0001, 'en') show.name = SHOW_NAME show.location = FILE_DIR show.episodes = {} for season in range(1, NUM_SEASONS): show.episodes[season] = {} for episode in range(1, EPISODES_PER_SEASON): if season == SEASON and episode == EPISODE: episode = TVEpisode(show, season, episode, ep_file=FILE_PATH) else: episode = TVEpisode(show, season, episode) show.episodes[season][episode] = episode episode.saveToDB() show.saveToDB() sickbeard.showList = [show]
def test_set_name(self): show = TVShow(1, 1, "en") show.name = "newName" show.saveToDB() show.loadFromDB(skipNFO=True) self.assertEqual(show.name, "newName")
def test_set_name(self): show = TVShow(1, 1, 'en') show.name = 'newName' show.saveToDB() show.loadFromDB(skipNFO=True) self.assertEqual(show.name, 'newName')
def test(self): show = TVShow(1, int(curData["tvdbid"])) show.name = name show.quality = c.ANY | c.Quality.UNKNOWN | c.Quality.RAWHDTV show.saveToDB() sickbeard.showList.append(show) for epNumber in curData["e"]: episode = TVEpisode(show, curData["s"], epNumber) episode.status = c.WANTED # We arent updating scene numbers, so fake it here episode.scene_season = curData["s"] episode.scene_episode = epNumber episode.saveToDB() provider.show = show season_strings = provider._get_season_search_strings(episode) episode_strings = provider._get_episode_search_strings(episode) fail = False for cur_string in season_strings, episode_strings: if not all([ isinstance(cur_string, list), isinstance(cur_string[0], dict) ]): print " %s is using a wrong string format!" % provider.name print cur_string fail = True continue if fail: continue try: assert (season_strings == curData["s_strings"]) assert (episode_strings == curData["e_strings"]) except AssertionError: print " %s is using a wrong string format!" % provider.name print cur_string continue search_strings = episode_strings[0] #search_strings.update(season_strings[0]) #search_strings.update({"RSS":['']}) #print search_strings if not provider.public: continue items = provider._doSearch(search_strings) if not items: print "No results from provider?" continue title, url = provider._get_title_and_url(items[0]) for word in show.name.split(" "): if not word.lower() in title.lower(): print "Show name not in title: %s. URL: %s" % (title, url) continue if not url: print "url is empty" continue quality = provider.getQuality(items[0]) size = provider._get_size(items[0]) if not show.quality & quality: print "Quality not in common.ANY, %r" % quality continue
def do_test(self): """ Test to perform """ show = TVShow(1, int(cur_data["tvdbid"])) show.name = cur_name show.quality = common.ANY | common.Quality.UNKNOWN | common.Quality.RAWHDTV show.saveToDB() sickbeard.showList.append(show) for ep_number in cur_data["e"]: episode = TVEpisode(show, cur_data["s"], ep_number) episode.status = common.WANTED # We aren't updating scene numbers, so fake it here episode.scene_season = cur_data["s"] episode.scene_episode = ep_number episode.saveToDB() cur_provider.show = show season_strings = cur_provider._get_season_search_strings(episode) # pylint: disable=protected-access episode_strings = cur_provider._get_episode_search_strings(episode) # pylint: disable=protected-access fail = False cur_string = '' for cur_string in season_strings, episode_strings: if not all([ isinstance(cur_string, list), isinstance(cur_string[0], dict) ]): print " {0!s} is using a wrong string format!".format( cur_provider.name) print cur_string fail = True continue if fail: continue try: assert season_strings == cur_data["s_strings"] assert episode_strings == cur_data["e_strings"] except AssertionError: print " {0!s} is using a wrong string format!".format( cur_provider.name) print cur_string continue search_strings = episode_strings[0] # search_strings.update(season_strings[0]) # search_strings.update({"RSS":['']}) # print search_strings if not cur_provider.public: continue items = cur_provider.search(search_strings) # pylint: disable=protected-access if not items: print "No results from cur_provider?" continue title, url = cur_provider._get_title_and_url(items[0]) # pylint: disable=protected-access for word in show.name.split(" "): if not word.lower() in title.lower(): print "Show cur_name not in title: {0!s}. URL: {1!s}".format( title, url) continue if not url: print "url is empty" continue quality = cur_provider.get_quality(items[0]) size = cur_provider._get_size(items[0]) # pylint: disable=protected-access if not show.quality & quality: print "Quality not in common.ANY, {0!r} {1!s}".format( quality, size) continue
def do_test(): """ Test to perform """ show = TVShow(1, int(cur_data["tvdbid"])) show.name = cur_name show.quality = common.ANY | common.Quality.UNKNOWN | common.Quality.RAWHDTV show.saveToDB() sickbeard.showList.append(show) for ep_number in cur_data["e"]: episode = TVEpisode(show, cur_data["s"], ep_number) episode.status = common.WANTED # We aren't updating scene numbers, so fake it here episode.scene_season = cur_data["s"] episode.scene_episode = ep_number episode.saveToDB() cur_provider.show = show season_strings = cur_provider._get_season_search_strings(episode) # pylint: disable=protected-access episode_strings = cur_provider._get_episode_search_strings(episode) # pylint: disable=protected-access fail = False cur_string = '' for cur_string in season_strings, episode_strings: if not all([isinstance(cur_string, list), isinstance(cur_string[0], dict)]): print " %s is using a wrong string format!" % cur_provider.name print cur_string fail = True continue if fail: continue try: assert season_strings == cur_data["s_strings"] assert episode_strings == cur_data["e_strings"] except AssertionError: print " %s is using a wrong string format!" % cur_provider.name print cur_string continue search_strings = episode_strings[0] # search_strings.update(season_strings[0]) # search_strings.update({"RSS":['']}) # print search_strings if not cur_provider.public: continue items = cur_provider._doSearch(search_strings) # pylint: disable=protected-access if not items: print "No results from cur_provider?" continue title, url = cur_provider._get_title_and_url(items[0]) # pylint: disable=protected-access for word in show.name.split(" "): if not word.lower() in title.lower(): print "Show cur_name not in title: %s. URL: %s" % (title, url) continue if not url: print "url is empty" continue quality = cur_provider.getQuality(items[0]) size = cur_provider._get_size(items[0]) # pylint: disable=protected-access if not show.quality & quality: print "Quality not in common.ANY, %r %s" % (quality, size) continue
def test(self): show = TVShow(1, int(curData["tvdbid"])) show.name = name show.quality = c.ANY | c.Quality.UNKNOWN | c.Quality.RAWHDTV show.saveToDB() sickbeard.showList.append(show) for epNumber in curData["e"]: episode = TVEpisode(show, curData["s"], epNumber) episode.status = c.WANTED # We arent updating scene numbers, so fake it here episode.scene_season = curData["s"] episode.scene_episode = epNumber episode.saveToDB() provider.show = show season_strings = provider._get_season_search_strings(episode) episode_strings = provider._get_episode_search_strings(episode) fail = False for cur_string in season_strings, episode_strings: if not all([isinstance(cur_string, list), isinstance(cur_string[0], dict)]): print " %s is using a wrong string format!" % provider.name print cur_string fail = True continue if fail: continue try: assert(season_strings == curData["s_strings"]) assert(episode_strings == curData["e_strings"]) except AssertionError: print " %s is using a wrong string format!" % provider.name print cur_string continue search_strings = episode_strings[0] #search_strings.update(season_strings[0]) #search_strings.update({"RSS":['']}) #print search_strings if not provider.public: continue items = provider._doSearch(search_strings) if not items: print "No results from provider?" continue title, url = provider._get_title_and_url(items[0]) for word in show.name.split(" "): if not word.lower() in title.lower(): print "Show name not in title: %s. URL: %s" % (title, url) continue if not url: print "url is empty" continue quality = provider.getQuality(items[0]) size = provider._get_size(items[0]) if not show.quality & quality: print "Quality not in common.ANY, %r" % quality continue