Пример #1
0
    def test_above_threshold_for_fileobj(self):
        transfer_manager = self.create_transfer_manager(self.config)

        filename = self.files.create_file_with_size('foo.txt',
                                                    filesize=20 * 1024 * 1024)
        self.upload_file(filename, '20mb.txt')

        download_path = os.path.join(self.files.rootdir, '20mb.txt')
        with open(download_path, 'wb') as f:
            future = transfer_manager.download(self.bucket_name, '20mb.txt', f)
            future.result()
        assert_files_equal(filename, download_path)
Пример #2
0
    def test_below_threshold(self):
        transfer_manager = self.create_transfer_manager(self.config)

        filename = self.files.create_file_with_size('foo.txt',
                                                    filesize=1024 * 1024)
        self.upload_file(filename, '1mb.txt')

        download_path = os.path.join(self.files.rootdir, '1mb.txt')
        future = transfer_manager.download(self.bucket_name, '1mb.txt',
                                           download_path)
        future.result()
        assert_files_equal(filename, download_path)
Пример #3
0
    def test_above_threshold(self):
        transfer_manager = self.create_transfer_manager(self.config)

        filename = self.files.create_file_with_size(
            'foo.txt', filesize=20 * 1024 * 1024)
        self.upload_file(filename, '20mb.txt')

        download_path = os.path.join(self.files.rootdir, '20mb.txt')
        future = transfer_manager.download(
            self.bucket_name, '20mb.txt', download_path)
        future.result()
        assert_files_equal(filename, download_path)
Пример #4
0
    def test_above_threshold_for_nonseekable_fileobj(self):
        transfer_manager = self.create_transfer_manager(self.config)

        filename = self.files.create_file_with_size(
            'foo.txt', filesize=20 * 1024 * 1024)
        self.upload_file(filename, '20mb.txt')

        download_path = os.path.join(self.files.rootdir, '20mb.txt')
        with open(download_path, 'wb') as f:
            future = transfer_manager.download(
                self.bucket_name, '20mb.txt', NonSeekableWriter(f))
            future.result()
        assert_files_equal(filename, download_path)
Пример #5
0
    def test_add_to_file(self):
        tests.clear_tmp_folder()

        path = os.path.join(tests.DIR_REPLACE, 'replacements_empty.json')
        path_out = os.path.join(tests.DIR_TMP, 'replacements.json')
        path_ass = os.path.join(tests.DIR_REPLACE, 'replacements_testadd.json')

        rt = replacement_table.ReplacementTable.from_file(path)

        rt.set_from_langfile('file1_withgender.xml').add(
            'Biblec', 'Künstler*innen', 'Künstler')

        rt.to_file(path_out)
        tests.assert_files_equal(self, path_ass, path_out)
Пример #6
0
    def _test_modify_file(self, file, file_mod, rkey):
        tests.clear_tmp_folder()
        path = os.path.join(tests.DIR_LANG, file)
        path_mod = os.path.join(tests.DIR_LANG, file_mod)
        path_out = os.path.join(tests.DIR_TMP, 'lang.xml')

        lfile = lang_file.LangFile(path)

        def fun_replace(key, old):
            if key == rkey:
                return 'MODIFIED'

        lfile.replace_tree(fun_replace)

        lfile.to_file(path_out)
        tests.assert_files_equal(self, path_mod, path_out)
Пример #7
0
    def test_modify_config(self):
        shutil.copyfile(os.path.join(tests.DIR_TESTFILES, 'appcfg.toml'),
                        self.cfg_file)

        cfg = Cfg(self.cfg_file)
        cfg.load_file()

        cfg.msg = 'I am Cyra'
        cfg.port = 1234
        cfg.ip_b = '127.0.0.1'
        cfg.en_b = True

        cfg.save_file()
        tests.assert_files_equal(
            self, os.path.join(tests.DIR_TESTFILES, 'appcfg_modify.toml'),
            self.cfg_file)
Пример #8
0
    def test_load_file(self):
        # Copy fresh config file into tmp folder
        self.tmpdir = tests.tmpdir()
        cfg_file = os.path.join(self.tmpdir.name, 'testcfg.toml')
        shutil.copyfile(
            os.path.join(tests.DIR_TESTFILES, 'testcfg_import.toml'), cfg_file)

        self.cfg._file = cfg_file
        self.cfg.load_file()

        self.assertEqual('Okay? Okay.', self.cfg.MSG)
        self.assertEqual('very_secret_password', self.cfg.PASSWORD)

        tests.assert_files_equal(
            self, os.path.join(tests.DIR_TESTFILES, 'testcfg_writeback.toml'),
            cfg_file)
Пример #9
0
    def test_download_above_threshold(self):
        transfer = self._create_s3_transfer()
        filename = self.files.create_file_with_size('foo.txt',
                                                    filesize=20 * 1024 * 1024)
        self.upload_file(filename, 'foo.txt')

        download_path = os.path.join(self.files.rootdir, 'downloaded.txt')
        with transfer:
            future = transfer.download(self.bucket_name,
                                       'foo.txt',
                                       download_path,
                                       subscribers=[self.record_subscriber])
            future.result()
        assert_files_equal(filename, download_path)
        file_size = self.osutil.get_file_size(download_path)
        self._assert_subscribers_called(file_size)
Пример #10
0
    def test_many_files_download(self):
        transfer = self._create_s3_transfer()

        filename = self.files.create_file_with_size('1mb.txt',
                                                    filesize=1024 * 1024)
        self.upload_file(filename, '1mb.txt')

        filenames = []
        base_filename = os.path.join(self.files.rootdir, 'file')
        for i in range(10):
            filenames.append(base_filename + str(i))

        with transfer:
            for filename in filenames:
                transfer.download(self.bucket_name, '1mb.txt', filename)
        for download_path in filenames:
            assert_files_equal(filename, download_path)
Пример #11
0
    def test_write_replacement_table(self):
        tests.clear_tmp_folder()
        wd = workdir.Workdir(tests.DIR_TMP)
        dir_apk = wd._get_dir(wd.dir_apk)
        shutil.copyfile(os.path.join(tests.DIR_LANG, 'file1_withgender.xml'),
                        os.path.join(dir_apk, 'file1_withgender.xml'))
        shutil.copyfile(os.path.join(tests.DIR_LANG, 'file2_withgender.xml'),
                        os.path.join(dir_apk, 'file2_withgender.xml'))

        path = os.path.join(tests.DIR_TMP, 'replacements.json')
        shutil.copyfile(
            os.path.join(tests.DIR_REPLACE, 'replacements_testadd.json'), path)
        rt = replacement_table.ReplacementTable.from_file(path)

        rpm = replacement_table.ReplacementManager(
            dir_apk, lambda key, old: old + '_MOD')
        rpm.add_rtab(rt, 'rt', True)

        rpm.do_replace()
        rpm.write_replacement_table('newver')

        tests.assert_files_equal(
            self, os.path.join(tests.DIR_REPLACE,
                               'replacements_testwrite.json'), path)
Пример #12
0
    def _performance_test(self, folder):
        tests.clear_tmp_folder()

        DIR_INPUT = os.path.join(DIR_PERFORMANCE, folder)
        manager = replacement_table.ReplacementManager(DIR_INPUT)

        i = 1
        while True:
            file = os.path.join(DIR_INPUT, 'replacements_%d.json' % i)
            if os.path.isfile(file):
                rt = replacement_table.ReplacementTable.from_file(file)
                manager.add_rtab(rt, str(i))
            else:
                break
            i += 1

        start_time = time.time_ns()
        manager.do_replace(tests.DIR_TMP)

        runtime = time.time_ns() - start_time
        print('%s test took %d ms' % (folder, (runtime / 1000000)))

        tests.assert_files_equal(self, os.path.join(DIR_INPUT, 'lang_nogender.xml'),
                                 os.path.join(tests.DIR_TMP, 'lang.xml'))
Пример #13
0
 def test_gen_file(self):
     cfg = Cfg(self.cfg_file)
     cfg.load_file()
     tests.assert_files_equal(
         self, os.path.join(tests.DIR_TESTFILES, 'appcfg.toml'),
         self.cfg_file)