def test_check_for_better_checks_languages_with_no_current_subs(self): superliminal.env.settings.languages.append(Language.fromietf('pt-BR')) okensub = { 'id': 'okensub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } self.set_subtitles([okensub]) self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv") yield self.wait_until_processed() betterensub = self.transform_sub(okensub, 'betterensub', release_group="TvRG", content=SUBTITLE_CONTENT_2) okbrsub = self.transform_sub(okensub, 'okbrsub', language=Language.fromietf('pt-BR'), content=SUBTITLE_CONTENT_3) self.set_subtitles([okensub, betterensub, okbrsub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT_2, suffix='.en.srt') self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT_3, suffix='.pt-BR.srt')
def setUp(self): super(IntegrationTests, self).setUp() provider_manager.register('fakesub = fakesubprovider:FakeSubProvider') SuperliminalCore.start_consumer() self.db_path = tempfile.mkdtemp() settings_file = tempfile.NamedTemporaryFile() self.tempfiles = [settings_file] self.settings_filename = settings_file.name self.video_filename = self.create_video_file() paths = FakePaths(db_path=self.db_path) superliminal.env.paths = paths fakesettings = FakeSettings( providers=['fakesub'], provider_configs={ 'fakesub': { 'subs': [] } }) superliminal.env.settings = fakesettings self.patchers = [] self.patchers.append(patch('subliminal.utils.hash_opensubtitles', return_value=OPENSUBTITLES_HASH)) self.patchers.append(patch('subliminal.utils.hash_napiprojekt', return_value=NAPIPROJEKT_HASH)) self.patchers.append(patch('subliminal.utils.hash_thesubdb', return_value=THESUBDB_HASH)) self.patchers.append(patch('os.path.getsize', return_value=self.get_video_size())) for patcher in self.patchers: patcher.start()
def test_check_for_better_checks_all_recent_videos(self): oktvsub = { 'id': 'oktvsub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } yield self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv", subtitle=oktvsub) movie_filename = self.create_video_file() okmoviesub = { 'id': 'okmoviesub', 'language': Language.fromietf('en'), 'title': "Movie Title", 'year': 2016, 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } yield self.add_video(path=movie_filename, name="Movie.Title.2016.720p.WEB-DL.H264-MovieRG.mkv", subtitle=okmoviesub) bettertvsub = self.transform_sub(oktvsub, 'bettertvsub', release_group="TvRG", content=SUBTITLE_CONTENT_2) bettermoviesub = self.transform_sub(okmoviesub, 'bettermoviesub', release_group="MovieRG", content=SUBTITLE_CONTENT_3) self.set_subtitles([oktvsub, bettertvsub, okmoviesub, bettermoviesub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT_2) self.assert_subtitle_contents_matches(video_filename=movie_filename, expected_content=SUBTITLE_CONTENT_3)
def test_check_for_better_doesnt_download_movie_subs_with_scores_below_min_threshold(self): superliminal.env.settings.min_movie_score = 110 superliminal.env.settings.desired_movie_score = 110 yield self.add_video(name="Movie.Title.2016.720p.WEB-DL.H264-MovieRG.mkv") okmoviesub = { 'id': 'okmoviesub', 'language': Language.fromietf('en'), 'title': "Movie Title", 'year': 2016, 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } self.set_subtitles([okmoviesub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_no_subtitle()
def test_check_for_better_doesnt_check_for_movies_already_having_subs_above_desired_score(self): superliminal.env.settings.desired_movie_score = 20 okmoviesub = { 'id': 'okmoviesub', 'language': Language.fromietf('en'), 'title': "Movie Title", 'year': 2016, 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } yield self.add_video(name="Movie.Title.2016.720p.WEB-DL.H264-MovieRG.mkv", subtitle=okmoviesub) bettermoviesub = self.transform_sub(okmoviesub, 'bettermoviesub', release_group='MovieRG', content=SUBTITLE_CONTENT_2) self.set_subtitles([okmoviesub, bettermoviesub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT)
def test_check_for_better_gets_subs_for_videos_with_no_subs(self): yield self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv") oksub = { 'id': 'oksub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } self.set_subtitles([oksub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT)
def test_check_for_better_gets_better_sub_when_available(self): oksub = { 'id': 'oksub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } yield self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv", subtitle=oksub) bettersub = self.transform_sub(oksub, 'bettersub', release_group="TvRG", content=SUBTITLE_CONTENT_2) self.set_subtitles([oksub, bettersub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT_2)
def test_check_for_better_doesnt_check_for_episodes_already_having_subs_above_desired_score(self): superliminal.env.settings.desired_episode_score = 50 oktvsub = { 'id': 'oktvsub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } yield self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv", subtitle=oktvsub) bettertvsub = self.transform_sub(oktvsub, 'bettertvsub', release_group='TvRG', content=SUBTITLE_CONTENT_2) self.set_subtitles([oktvsub, bettertvsub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT)
def test_check_for_better_doesnt_get_subs_for_old_videos(self): oksub = { 'id': 'oksub', 'language': Language.fromietf('en'), 'series': "Series Title", 'season': 2, 'episode': 3, 'title': "The Episode", 'release_group': "OtherRG", 'content': SUBTITLE_CONTENT } from datetime import datetime, timedelta add_time = datetime.utcnow() - timedelta(days=7, seconds=1) with freeze_time(add_time): yield self.add_video(name="Series.Title.S02E03.720p.WEB-DL.H264-TvRG.mkv", subtitle=oksub) bettersub = self.transform_sub(oksub, 'bettersub', release_group="TvRG", content=SUBTITLE_CONTENT_2) self.set_subtitles([oksub, bettersub]) SuperliminalCore.check_for_better() yield self.wait_until_processed() self.assert_subtitle_contents_matches(expected_content=SUBTITLE_CONTENT)