Beispiel #1
0
 def setUp(self):
     download_path = tmp_path = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), 'subtmp')
     settings = {'Titulky.com': {'Titulkypass': '', 'Titulkyuser': ''}}
     self.seeker = SubsSeeker(download_path,
                              tmp_path,
                              captcha_cb,
                              delay_cb,
                              message_cb,
                              settings=settings,
                              debug=True)
Beispiel #2
0
 def setUp(self):
     remove_files_in_dir(self.download_path)
     remove_files_in_dir(self.custom_path)
     remove_files_in_dir(self.temp_path)
     remove_files_in_dir(self.video_path)
     try: shutil.copyfile(os.path.join(test, 'utilsfiles', 'rarfile'), ArchiveDownloadSeeker.subpath)
     except:pass
     try: shutil.copyfile(os.path.join(test, 'subfiles', 'test_microdvd.txt'), NotArchiveDownloadSeeker.subpath)
     except:pass
     providers = [ArchiveDownloadSeeker, NotArchiveDownloadSeeker]
     self.seeker = SubsSeeker(self.download_path, self.temp_path, captcha_cb, delay_cb, message_cb, debug=True, providers=providers)
Beispiel #3
0
def main():
    global stdout
    stdout = sys.stdout
    stderr = sys.stderr
    sys.stdout = open('/tmp/subssupport.log', 'w')
    sys.stderr = sys.stdout
    options = recieve()
    print 'recieved options: %r' % options
    from seek import SubsSeeker
    seeker = SubsSeeker(options.get('download_path', '/tmp/'),
                        options.get('tmp_path', '/tmp/'), captchaCB, delayCB,
                        messageCB, options.get('settings'))
    return searchSubtitles(seeker, options['search'])
Beispiel #4
0
 def setUp(self):
     remove_files_in_dir(self.download_path)
     remove_files_in_dir(self.custom_path)
     remove_files_in_dir(self.temp_path)
     remove_files_in_dir(self.video_path)
     try:
         shutil.copyfile(os.path.join(test, 'utilsfiles', 'rarfile'),
                         ArchiveDownloadSeeker.subpath)
     except:
         pass
     try:
         shutil.copyfile(
             os.path.join(test, 'subfiles', 'test_microdvd.txt'),
             NotArchiveDownloadSeeker.subpath)
     except:
         pass
     providers = [ArchiveDownloadSeeker, NotArchiveDownloadSeeker]
     self.seeker = SubsSeeker(self.download_path,
                              self.temp_path,
                              captcha_cb,
                              delay_cb,
                              message_cb,
                              debug=True,
                              providers=providers)
Beispiel #5
0
def main():
    global stdout
    stdout = sys.stdout
    sys.stdout = open('/tmp/subssupport.log', 'w')
    sys.stderr = sys.stdout
    options = recieve()
    print('recieved options: %r' % options)
    try:
        from .seek import SubsSeeker
    except (ValueError, ImportError):
        from seek import SubsSeeker
    seeker = SubsSeeker(options.get('download_path', '/tmp/'),
                        options.get('tmp_path', '/tmp/'),
                        captchaCB, delayCB, messageCB,
                        options.get('settings'))
    if options.get('search'):
        return searchSubtitles(seeker, options['search'])
    elif options.get('download'):
        return downloadSubtitles(seeker, options['download'])
Beispiel #6
0
 def setUp(self):
     download_path = tmp_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'subtmp')
     settings = {'Titulky.com':{'Titulkypass':'', 'Titulkyuser':''}}
     self.seeker = SubsSeeker(download_path, tmp_path, captcha_cb, delay_cb, message_cb, settings=settings, debug=True)
Beispiel #7
0
class TestSeeker(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.settings = {}
        cls.tmp_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'subtmp')
        cls.download_path = cls.tmp_path
        cls.provider_class = None

    def setUp(self):
        download_path = tmp_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'subtmp')
        settings = {'Titulky.com':{'Titulkypass':'', 'Titulkyuser':''}}
        self.seeker = SubsSeeker(download_path, tmp_path, captcha_cb, delay_cb, message_cb, settings=settings, debug=True)

    def test_get_tvshow_providers(self):
        providers = self.seeker.getProviders(None, movie=False, tvshow=True)
        for provider in providers:
            self.assertTrue(provider.tvshow_search, "%s is not tvshow subtitles provider" % provider)

    def test_get_movie_providers(self):
        providers = self.seeker.getProviders(None, movie=True, tvshow=False)
        for provider in providers:
            self.assertTrue(provider.movie_search, "%s is not movie subtitles provider" % provider)

    def test_single_thread_search(self):
        subtitles = self.seeker.getSubtitles(providers=['titulky.com'], title='True Detective', langs=['cs', 'sk'], tvshow='True Detective', season=1, episode=1)
        self.assertIsNotNone(subtitles)
        self.assertTrue('titulky.com' in subtitles)
        self.assertTrue(len(subtitles['titulky.com']['list']) > 0, 'there should be at least one subtitle found')

    def test_search_simple(self):
        langs = ['cs', 'sk']
        subtitles = self.seeker.getSubtitlesSimple(title='True Detective S01 E01', langs=langs)
        providers = self.seeker.getProviders(langs)
        self.assertIsNotNone(subtitles)
        self.assertTrue(len(self.seeker.getSubtitlesList(subtitles)) > 0, 'there should be at least one subtitle found')

    def test_download_simple(self):
        subtitles = self.seeker.getSubtitlesSimple(title='True Detective', langs=['cs', 'sk', 'en'])
        subtitle = self.seeker.getSubtitlesList(subtitles)[-1]
        self.assertTrue(len(self.seeker.downloadSubtitle(subtitle, subtitles, choosefile_cb)) > 0)

    def test_download_with_choosefile(self):
        subtitles = self.seeker.getSubtitles(['edna.cz'], langs=['cs', 'sk', 'en'], tvshow='Homeland', season='2', episode='6')
        subtitle = self.seeker.getSubtitlesList(subtitles)[0]
        subtitlePath = self.seeker.downloadSubtitle(subtitle, subtitles, choosefile_cb)
        self.assertIsNotNone(subtitlePath)
        self.assertTrue(subtitlePath)
Beispiel #8
0
class TestSeekerDownload(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.download_path = os.path.join(test, 'subtmp', 'dpath')
        cls.custom_path = os.path.join(test, 'subtmp', 'cpath')
        cls.video_path = os.path.join(test, 'subtmp', 'vpath')
        cls.temp_path = os.path.join(test, 'subtmp', 'tpath')
        shutil.rmtree(cls.download_path, True)
        shutil.rmtree(cls.custom_path, True)
        shutil.rmtree(cls.video_path, True)
        shutil.rmtree(cls.temp_path, True)
        os.makedirs(cls.download_path)
        os.makedirs(cls.custom_path)
        os.makedirs(cls.video_path)
        os.makedirs(cls.temp_path)

    def setUp(self):
        remove_files_in_dir(self.download_path)
        remove_files_in_dir(self.custom_path)
        remove_files_in_dir(self.temp_path)
        remove_files_in_dir(self.video_path)
        try: shutil.copyfile(os.path.join(test, 'utilsfiles', 'rarfile'), ArchiveDownloadSeeker.subpath)
        except:pass
        try: shutil.copyfile(os.path.join(test, 'subfiles', 'test_microdvd.txt'), NotArchiveDownloadSeeker.subpath)
        except:pass
        providers = [ArchiveDownloadSeeker, NotArchiveDownloadSeeker]
        self.seeker = SubsSeeker(self.download_path, self.temp_path, captcha_cb, delay_cb, message_cb, debug=True, providers=providers)

    @classmethod
    def tearDownClass(cls):
        shutil.rmtree(cls.download_path, True)
        shutil.rmtree(cls.custom_path, True)
        shutil.rmtree(cls.video_path, True)
        shutil.rmtree(cls.temp_path, True)

    def _test_download(self, expected_output, output):
        self.assertTrue(output == expected_output, '"%s"!="%s"'%(expected_output, output))
        self.assertTrue(os.path.isfile(output))

    def test_choose_file(self):
        expected_output = os.path.join(self.download_path, 'subfile1.srt')
        provider = ArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'default', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings)
        self._test_download(expected_output, output)

    def test_save_as_version(self):
        expected_output = os.path.join(self.download_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings)
        self._test_download(expected_output, output)

    def test_save_as_video(self):
        expected_output = os.path.join(self.download_path, 'vsubfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'video', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings)
        self._test_download(expected_output, output)

    def test_lang_to_filename(self):
        expected_output = os.path.join(self.download_path, 'subfile.cs.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':True}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings)
        self._test_download(expected_output, output)

    def test_save_to_custom_dir(self):
        expected_output = os.path.join(self.custom_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings, path=self.custom_path)
        self._test_download(expected_output, output)
        
    def test_save_custom_fname(self):
        expected_output = os.path.join(self.download_path, 'custom.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, fname="custom")
        self._test_download(expected_output, output)

    def test_allow_overwrite(self):
        expected_output = os.path.join(self.download_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        open(expected_output, 'w').close()
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':False}
        original_size = os.path.getsize(provider.subpath)
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings, overwrite_cb=lambda x:True)
        downloaded_size = os.path.getsize(expected_output)
        self.assertTrue(original_size == downloaded_size, 'original size != downloaded size: "%d != %d"' % (original_size, downloaded_size))
        self._test_download(expected_output, output)

    def test_not_allow_overwrite(self):
        provider = NotArchiveDownloadSeeker
        expected_output = provider.subpath
        overwrite_path = os.path.join(self.download_path, 'subfile.srt')
        open(overwrite_path, 'w').close()
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings, overwrite_cb=lambda x:False)
        self.assertTrue(os.path.getsize(overwrite_path) == 0)
        self._test_download(expected_output, output)

    def test_cancel_overwrite(self):
        provider = NotArchiveDownloadSeeker
        expected_output = provider.subpath
        overwrite_path = os.path.join(self.download_path, 'subfile.srt')
        open(overwrite_path, 'w').close()
        selected_subtitle = {'filename':'subfile.srt'}
        subtitles_dict = {provider.id:{'list':[selected_subtitle], 'params':{'filepath':os.path.join(self.video_path, 'vsubfile.avi')}}}
        settings = {'save_as':'version', 'lang_to_filename':False}
        output = self.seeker.downloadSubtitle(selected_subtitle, subtitles_dict, choosefile_cb, settings=settings, overwrite_cb=lambda x:None)
        self.assertTrue(os.path.getsize(overwrite_path) == 0)
        self._test_download(expected_output, output)
Beispiel #9
0
class TestSeeker(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.settings = {}
        cls.tmp_path = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), 'subtmp')
        cls.download_path = cls.tmp_path
        cls.provider_class = None

    def setUp(self):
        download_path = tmp_path = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), 'subtmp')
        settings = {'Titulky.com': {'Titulkypass': '', 'Titulkyuser': ''}}
        self.seeker = SubsSeeker(download_path,
                                 tmp_path,
                                 captcha_cb,
                                 delay_cb,
                                 message_cb,
                                 settings=settings,
                                 debug=True)

    def test_get_tvshow_providers(self):
        providers = self.seeker.getProviders(None, movie=False, tvshow=True)
        for provider in providers:
            self.assertTrue(provider.tvshow_search,
                            "%s is not tvshow subtitles provider" % provider)

    def test_get_movie_providers(self):
        providers = self.seeker.getProviders(None, movie=True, tvshow=False)
        for provider in providers:
            self.assertTrue(provider.movie_search,
                            "%s is not movie subtitles provider" % provider)

    def test_single_thread_search(self):
        subtitles = self.seeker.getSubtitles(providers=['titulky.com'],
                                             title='True Detective',
                                             langs=['cs', 'sk'],
                                             tvshow='True Detective',
                                             season=1,
                                             episode=1)
        self.assertIsNotNone(subtitles)
        self.assertTrue('titulky.com' in subtitles)
        self.assertTrue(
            len(subtitles['titulky.com']['list']) > 0,
            'there should be at least one subtitle found')

    def test_search_simple(self):
        langs = ['cs', 'sk']
        subtitles = self.seeker.getSubtitlesSimple(
            title='True Detective S01 E01', langs=langs)
        providers = self.seeker.getProviders(langs)
        self.assertIsNotNone(subtitles)
        self.assertTrue(
            len(self.seeker.getSubtitlesList(subtitles)) > 0,
            'there should be at least one subtitle found')

    def test_download_simple(self):
        subtitles = self.seeker.getSubtitlesSimple(title='True Detective',
                                                   langs=['cs', 'sk', 'en'])
        subtitle = self.seeker.getSubtitlesList(subtitles)[-1]
        self.assertTrue(
            len(
                self.seeker.downloadSubtitle(subtitle, subtitles,
                                             choosefile_cb)) > 0)

    def test_download_with_choosefile(self):
        subtitles = self.seeker.getSubtitles(['edna.cz'],
                                             langs=['cs', 'sk', 'en'],
                                             tvshow='Homeland',
                                             season='2',
                                             episode='6')
        subtitle = self.seeker.getSubtitlesList(subtitles)[0]
        subtitlePath = self.seeker.downloadSubtitle(subtitle, subtitles,
                                                    choosefile_cb)
        self.assertIsNotNone(subtitlePath)
        self.assertTrue(subtitlePath)
Beispiel #10
0
class TestSeekerDownload(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.download_path = os.path.join(test, 'subtmp', 'dpath')
        cls.custom_path = os.path.join(test, 'subtmp', 'cpath')
        cls.video_path = os.path.join(test, 'subtmp', 'vpath')
        cls.temp_path = os.path.join(test, 'subtmp', 'tpath')
        shutil.rmtree(cls.download_path, True)
        shutil.rmtree(cls.custom_path, True)
        shutil.rmtree(cls.video_path, True)
        shutil.rmtree(cls.temp_path, True)
        os.makedirs(cls.download_path)
        os.makedirs(cls.custom_path)
        os.makedirs(cls.video_path)
        os.makedirs(cls.temp_path)

    def setUp(self):
        remove_files_in_dir(self.download_path)
        remove_files_in_dir(self.custom_path)
        remove_files_in_dir(self.temp_path)
        remove_files_in_dir(self.video_path)
        try:
            shutil.copyfile(os.path.join(test, 'utilsfiles', 'rarfile'),
                            ArchiveDownloadSeeker.subpath)
        except:
            pass
        try:
            shutil.copyfile(
                os.path.join(test, 'subfiles', 'test_microdvd.txt'),
                NotArchiveDownloadSeeker.subpath)
        except:
            pass
        providers = [ArchiveDownloadSeeker, NotArchiveDownloadSeeker]
        self.seeker = SubsSeeker(self.download_path,
                                 self.temp_path,
                                 captcha_cb,
                                 delay_cb,
                                 message_cb,
                                 debug=True,
                                 providers=providers)

    @classmethod
    def tearDownClass(cls):
        shutil.rmtree(cls.download_path, True)
        shutil.rmtree(cls.custom_path, True)
        shutil.rmtree(cls.video_path, True)
        shutil.rmtree(cls.temp_path, True)

    def _test_download(self, expected_output, output):
        self.assertTrue(output == expected_output,
                        '"%s"!="%s"' % (expected_output, output))
        self.assertTrue(os.path.isfile(output))

    def test_choose_file(self):
        expected_output = os.path.join(self.download_path, 'subfile1.srt')
        provider = ArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'default', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings)
        self._test_download(expected_output, output)

    def test_save_as_version(self):
        expected_output = os.path.join(self.download_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings)
        self._test_download(expected_output, output)

    def test_save_as_video(self):
        expected_output = os.path.join(self.download_path, 'vsubfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'video', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings)
        self._test_download(expected_output, output)

    def test_lang_to_filename(self):
        expected_output = os.path.join(self.download_path, 'subfile.cs.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': True}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings)
        self._test_download(expected_output, output)

    def test_save_to_custom_dir(self):
        expected_output = os.path.join(self.custom_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings,
                                              path=self.custom_path)
        self._test_download(expected_output, output)

    def test_save_custom_fname(self):
        expected_output = os.path.join(self.download_path, 'custom.srt')
        provider = NotArchiveDownloadSeeker
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              fname="custom")
        self._test_download(expected_output, output)

    def test_allow_overwrite(self):
        expected_output = os.path.join(self.download_path, 'subfile.srt')
        provider = NotArchiveDownloadSeeker
        open(expected_output, 'w').close()
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': False}
        original_size = os.path.getsize(provider.subpath)
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings,
                                              overwrite_cb=lambda x: True)
        downloaded_size = os.path.getsize(expected_output)
        self.assertTrue(
            original_size == downloaded_size,
            'original size != downloaded size: "%d != %d"' %
            (original_size, downloaded_size))
        self._test_download(expected_output, output)

    def test_not_allow_overwrite(self):
        provider = NotArchiveDownloadSeeker
        expected_output = provider.subpath
        overwrite_path = os.path.join(self.download_path, 'subfile.srt')
        open(overwrite_path, 'w').close()
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings,
                                              overwrite_cb=lambda x: False)
        self.assertTrue(os.path.getsize(overwrite_path) == 0)
        self._test_download(expected_output, output)

    def test_cancel_overwrite(self):
        provider = NotArchiveDownloadSeeker
        expected_output = provider.subpath
        overwrite_path = os.path.join(self.download_path, 'subfile.srt')
        open(overwrite_path, 'w').close()
        selected_subtitle = {'filename': 'subfile.srt'}
        subtitles_dict = {
            provider.id: {
                'list': [selected_subtitle],
                'params': {
                    'filepath': os.path.join(self.video_path, 'vsubfile.avi')
                }
            }
        }
        settings = {'save_as': 'version', 'lang_to_filename': False}
        output = self.seeker.downloadSubtitle(selected_subtitle,
                                              subtitles_dict,
                                              choosefile_cb,
                                              settings=settings,
                                              overwrite_cb=lambda x: None)
        self.assertTrue(os.path.getsize(overwrite_path) == 0)
        self._test_download(expected_output, output)