def test_getPosters_When_program_is_movie_Then_returns_empty_list(self): program = TVProgram({ 'title': 'Departed', 'category_type': 'movie' }, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) self.assertListEqual([], provider.getPosters(program))
def test_getPosters_When_title_has_override_Then_returns_posters_for_override( self): # 'Conan' is mapped to 'Conan (2010)' as TVDB's official title program = TVProgram({ 'title': u'Conan', 'category_type': u'series' }, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) urls = provider.getPosters(program) self.assertTrue(len(urls) > 0)
def test_getPosters_When_title_has_funny_chars_Then_dont_fail_miserably(self): # Setup program = TVProgram({'title': u'Königreich der Himmel', 'category_type':'series'}, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test posters = provider.getPosters(program) # Verify log.debug('Posters = %s' % posters) for p in posters: self.assertEqual('http', p[0:4])
def test_getPosters_When_program_is_not_movie_Then_returns_posters(self): # Setup program = TVProgram({'title':'Seinfeld', 'category_type':'series'}, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test posterUrls = provider.getPosters(program) # Verify log.debug('Poster URLs = %s' % posterUrls) for posterUrl in posterUrls: self.assertEqual("http", posterUrl[0:4])
def test_getBackgrounds_When_program_is_not_movie_Then_returns_backgrounds(self): # Setup program = TVProgram({'title':'Seinfeld', 'category_type':'series'}, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test urls = provider.getBackgrounds(program) # Verify [log.debug('Background = %s' % url) for url in urls] self.assertTrue(len(urls) > 0) for url in urls: self.assertEqual("http", url[0:4])
def test_getPosters_When_program_is_not_movie_Then_returns_posters(self): # Setup program = TVProgram({ 'title': 'Seinfeld', 'category_type': 'series' }, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test posterUrls = provider.getPosters(program) # Verify log.debug('Poster URLs = %s' % posterUrls) for posterUrl in posterUrls: self.assertEqual("http", posterUrl[0:4])
def test_getPosters_When_pounded_by_many_threads_looking_up_same_program_Then_doesnt_fail_miserably( self): programs = [] for i in xrange(10): #@UnusedVariable programs.append( TVProgram({ 'title': 'Seinfeld', 'category_type': 'series' }, translator=Mock())) provider = TvdbFanartProvider(self.platform, nextProvider=None) @run_async def work(p): posters = provider.getPosters(p) if len(posters) == 0: self.fail = True for poster in posters: log.debug('%s - %s' % (p.title(), poster)) self.fail = False threads = [] for p in programs: threads.append(work(p)) for t in threads: t.join() self.assertFalse(self.fail)
def test_getBanners_When_program_is_not_movie_Then_returns_banners(self): # Setup program = TVProgram({ 'title': 'Seinfeld', 'category_type': 'series' }, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test bannerUrls = provider.getBanners(program) # Verify [log.debug('Banner = %s' % banner) for banner in bannerUrls] self.assertTrue(len(bannerUrls) > 0) for bannerUrl in bannerUrls: self.assertEqual("http", bannerUrl[0:4])
def test_getSeasonAndEpisode_When_show_not_found_Then_returns_none(self): # Setup fields = { 'title' : u'This Show Does Not Exist', 'starttime' : socketDateTime(2008, 11, 4, 22, 45, 00), 'endtime' : socketDateTime(2008, 11, 4, 23, 45, 00), 'hasairdate': 1, 'airdate' : u'2010-08-03' } program = RecordedProgram(data=pdata(fields,P.version()), settings=Mock(), translator=Mock(), platform=Mock(), protocol=P, conn=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # When season, episode = provider.getSeasonAndEpisode(program) # Then self.assertIsNone(season) self.assertIsNone(episode)
def test_getSeasonAndEpisode_Success(self): # Given fields = { 'title' : u'The Real World', 'starttime' : socketDateTime(2008, 11, 4, 22, 45, 00), 'endtime' : socketDateTime(2008, 11, 4, 23, 50, 00), 'hasairdate': 1, 'airdate' : u'2010-07-14' } program = RecordedProgram(data=pdata(fields,P.version()), settings=Mock(), translator=Mock(), platform=Mock(), protocol=P, conn=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # When season, episode = provider.getSeasonAndEpisode(program) # Then self.assertEqual('24', season) self.assertEqual('3', episode)
def test_getPosters_When_title_has_funny_chars_Then_dont_fail_miserably( self): # Setup program = TVProgram( { 'title': u'Königreich der Himmel', 'category_type': 'series' }, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # Test posters = provider.getPosters(program) # Verify log.debug('Posters = %s' % posters) for p in posters: self.assertEqual('http', p[0:4])
def test_getSeasonAndEpisode_When_show_not_found_Then_returns_none(self): # Setup fields = { 'title': u'This Show Does Not Exist', 'starttime': socketDateTime(2008, 11, 4, 22, 45, 00), 'endtime': socketDateTime(2008, 11, 4, 23, 45, 00), 'hasairdate': 1, 'airdate': u'2010-08-03' } program = RecordedProgram(data=pdata(fields, P.version()), settings=Mock(), translator=Mock(), platform=Mock(), protocol=P, conn=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # When season, episode = provider.getSeasonAndEpisode(program) # Then self.assertIsNone(season) self.assertIsNone(episode)
def test_getSeasonAndEpisode_Success(self): # Given fields = { 'title': u'The Real World', 'starttime': socketDateTime(2008, 11, 4, 22, 45, 00), 'endtime': socketDateTime(2008, 11, 4, 23, 50, 00), 'hasairdate': 1, 'airdate': u'2010-07-14' } program = RecordedProgram(data=pdata(fields, P.version()), settings=Mock(), translator=Mock(), platform=Mock(), protocol=P, conn=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) # When season, episode = provider.getSeasonAndEpisode(program) # Then self.assertEqual('24', season) self.assertEqual('3', episode)
def test_end_to_end_tvdb_flow(self): no_op = NoOpFanartProvider() tvdb = TvdbFanartProvider(self.platform) fileCache = FileCache(os.path.join(self.sandbox, 'http'), HttpResolver()) http = HttpCachingFanartProvider(fileCache, tvdb) superfast = SuperFastFanartProvider(self.platform, http, filename='tvdb') strike = OneStrikeAndYoureOutFanartProvider(self.platform, superfast, no_op, filename='tvdb') fields = { 'title': u'The Real World', 'subtitle': u'', 'starttime': socketDateTime(2008, 11, 4, 22, 45, 00), 'endtime': socketDateTime(2008, 11, 4, 23, 50, 00), 'airdate': u'2010-07-14' } #self.assertSeasonAndEpisode(RecordedProgram(data=pdata(fields), **self.deps), u'24', u'3') program = RecordedProgram(data=pdata(fields), **self.deps) season, episode = strike.getSeasonAndEpisode(program) log.info(season) log.info(episode) self.assertEqual(('24', '3'), (season, episode)) method = 'getSeasonAndEpisode' # verify strikeout provider strikeKey = strike.createKey(method, program) self.assertFalse(strike.hasStruckOut(strikeKey)) # verify superfast provider superfastKey = superfast.createEpisodeKey(method, program) self.assertEqual(superfast.pcache[superfastKey], ('24', '3')) strike.close()
def test_getPosters_When_program_is_movie_Then_returns_empty_list(self): program = TVProgram({'title':'Departed', 'category_type':'movie'}, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) self.assertListEqual([], provider.getPosters(program))
def getProvider(self): return TvdbFanartProvider(self.platform)
def test_getPosters_When_title_has_override_Then_returns_posters_for_override(self): # 'Conan' is mapped to 'Conan (2010)' as TVDB's official title program = TVProgram({'title':u'Conan', 'category_type':u'series'}, translator=Mock()) provider = TvdbFanartProvider(self.platform, nextProvider=None) urls = provider.getPosters(program) self.assertTrue(len(urls) > 0)
def getProvider(self): return TvdbFanartProvider(self.platform, nextProvider=None)