コード例 #1
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_clear_When_struckout_not_empty_Then_empties_struckout_and_forwards_to_delegate(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     provider.struckOut[self.program.title()] = self.program.title()
     
     # Test
     provider.clear()
     
     # Verify
     self.assertFalse(len(provider.struckOut))
     verify(self.delegate, times=1).clear(any())
コード例 #2
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_clear_When_struckout_not_empty_Then_empties_struckout_and_forwards_to_delegate(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     provider.struckOut[self.program.title()] = self.program.title()
     
     # Test
     provider.clear()
     
     # Verify
     self.assertFalse(len(provider.struckOut))
     verify(self.delegate, times=1).clear(any())
コード例 #3
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_getPosters_When_not_struck_out_and_delegate_returns_posters_Then_return_posters(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     when(self.delegate).getPosters(any()).thenReturn(['blah.png'])
     
     # Test
     posters = provider.getPosters(self.program)
     
     # Verify
     self.assertEqual('blah.png', posters[0])
     self.assertNotIn(self.program.title(), provider.struckOut.values())
     verifyZeroInteractions(self.nextProvider)
コード例 #4
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_getPosters_When_not_struck_out_and_delegate_returns_posters_Then_return_posters(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     when(self.delegate).getPosters(any()).thenReturn(['blah.png'])
     
     # Test
     posters = provider.getPosters(self.program)
     
     # Verify
     self.assertEqual('blah.png', posters[0])
     self.assertNotIn(self.program.title(), provider.struckOut.values())
     verifyZeroInteractions(self.nextProvider)
コード例 #5
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_getSeasonAndEpisode_When_not_struck_out_and_delegate_returns_season_and_episode_Then_return_season_and_episode(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     when(self.delegate).getSeasonAndEpisode(any()).thenReturn(('1','2',))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertNotIn(self.program.title(), provider.struckOut.values())
     verifyZeroInteractions(self.nextProvider)
コード例 #6
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_getPosters_When_not_struck_out_and_delegate_returns_empty_list_Then_strike_out_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getPosters', self.program)
     when(self.delegate).getPosters(any()).thenReturn([])
     when(self.nextProvider).getPosters(any()).thenReturn(['blah.png'])
     
     # Test
     posters = provider.getPosters(self.program)
     
     # Verify
     self.assertEqual('blah.png', posters[0])
     self.assertIn(self.program.title(), provider.struckOut[key].values())
コード例 #7
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_getSeasonAndEpisode_When_not_struck_out_and_delegate_returns_season_and_episode_Then_return_season_and_episode(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     when(self.delegate).getSeasonAndEpisode(any()).thenReturn(('1','2',))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertNotIn(self.program.title(), provider.struckOut.values())
     verifyZeroInteractions(self.nextProvider)
コード例 #8
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_getPosters_When_not_struck_out_and_delegate_returns_empty_list_Then_strike_out_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getPosters', self.program)
     when(self.delegate).getPosters(any()).thenReturn([])
     when(self.nextProvider).getPosters(any()).thenReturn(['blah.png'])
     
     # Test
     posters = provider.getPosters(self.program)
     
     # Verify
     self.assertEqual('blah.png', posters[0])
     self.assertIn(self.program.title(), provider.struckOut[key].values())
コード例 #9
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_getSeasonAndEpisode_When_not_struck_out_and_delegate_returns_empty_tuple_Then_strike_out_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getSeasonAndEpisode', self.program)
     when(self.delegate).getSeasonAndEpisode(any()).thenReturn((None,None,))
     when(self.nextProvider).getSeasonAndEpisode(any()).thenReturn(('1','2',))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertIn(self.program.title(), provider.struckOut[key].values())
コード例 #10
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_getSeasonAndEpisode_When_not_struck_out_and_delegate_returns_empty_tuple_Then_strike_out_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getSeasonAndEpisode', self.program)
     when(self.delegate).getSeasonAndEpisode(any()).thenReturn((None,None,))
     when(self.nextProvider).getSeasonAndEpisode(any()).thenReturn(('1','2',))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertIn(self.program.title(), provider.struckOut[key].values())
コード例 #11
0
ファイル: test_fanart.py プロジェクト: Berimor66/mythbox
 def test_getSeasonAndEpisode_When_struck_out_Then_skip_delegate_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getSeasonAndEpisode', self.program)
     provider.strikeOut(key, self.program)
     when(self.nextProvider).getSeasonAndEpisode(any()).thenReturn(('1','2'))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertIn(self.program.title(), provider.struckOut[key].values())
     verifyZeroInteractions(self.delegate)
コード例 #12
0
 def test_constructor_When_delegate_is_none_Then_raise_exception(self):
     try:
         OneStrikeAndYoureOutFanartProvider(self.platform,
                                            delegate=None,
                                            nextProvider=self.nextProvider)
         self.fail('Expected exception to be thrown when delegate is null')
     except Exception:
         log.debug('SUCCESS: got exception on null delegate')
コード例 #13
0
ファイル: test_fanart.py プロジェクト: omegamike/mythbox
 def test_getSeasonAndEpisode_When_struck_out_Then_skip_delegate_and_return_nextProviders_result(self):
     # Setup
     provider = OneStrikeAndYoureOutFanartProvider(self.platform, self.delegate, self.nextProvider)
     key = provider.createKey('getSeasonAndEpisode', self.program)
     provider.strikeOut(key, self.program)
     when(self.nextProvider).getSeasonAndEpisode(any()).thenReturn(('1','2'))
     
     # Test
     season, episode = provider.getSeasonAndEpisode(self.program)
     
     # Verify
     self.assertEqual('1', season)
     self.assertEqual('2', episode)
     self.assertIn(self.program.title(), provider.struckOut[key].values())
     verifyZeroInteractions(self.delegate)
コード例 #14
0
    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()
コード例 #15
0
ファイル: test_fanart.py プロジェクト: Jajcus/mythbox
    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()