Beispiel #1
0
    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')
Beispiel #2
0
 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()
Beispiel #3
0
    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)
Beispiel #4
0
    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()
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)