Beispiel #1
0
    def _run_task(self):
        if not self.options["dir"]:
            self.options["dir"] = "."
        elif not os.path.exists(self.options["dir"]):
            os.makedirs(self.options["dir"])

        download_extract_zip(self.options["url"], self.options["dir"], self.options.get("subfolder"))
Beispiel #2
0
    def _run_task(self):
        if not self.options['dir']:
            self.options['dir'] = '.'
        elif not os.path.exists(self.options['dir']):
            os.makedirs(self.options['dir'])

        download_extract_zip(self.options['url'], self.options['dir'],
                             self.options.get('subfolder'))
Beispiel #3
0
    def _run_task(self):
        if not self.options["dir"]:
            self.options["dir"] = "."
        elif not os.path.exists(self.options["dir"]):
            os.makedirs(self.options["dir"])

        download_extract_zip(
            self.options["url"], self.options["dir"], self.options.get("subfolder")
        )
    def test_download_extract_zip_to_target(self):
        with utils.temporary_dir() as d:
            f = io.BytesIO()
            with zipfile.ZipFile(f, "w") as zf:
                zf.writestr("test", "test")
            f.seek(0)
            zipbytes = f.read()
            responses.add(
                method=responses.GET,
                url="http://test",
                body=zipbytes,
                content_type="application/zip",
            )

            utils.download_extract_zip("http://test", target=d)
            self.assertIn("test", os.listdir(d))
Beispiel #5
0
    def test_download_extract_zip_to_target(self):
        with utils.temporary_dir() as d:
            f = io.BytesIO()
            with zipfile.ZipFile(f, "w") as zf:
                zf.writestr("test", "test")
            f.seek(0)
            zipbytes = f.read()
            responses.add(
                method=responses.GET,
                url="http://test",
                body=zipbytes,
                content_type="application/zip",
            )

            utils.download_extract_zip("http://test", target=d)
            assert "test" in os.listdir(d)
Beispiel #6
0
    def test_download_extract_zip_to_target(self):
        with temporary_dir() as d:
            f = io.BytesIO()
            with zipfile.ZipFile(f, 'w') as zf:
                zf.writestr('test', 'test')
            f.seek(0)
            zipbytes = f.read()
            responses.add(
                method=responses.GET,
                url='http://test',
                body=zipbytes,
                content_type='application/zip',
            )

            utils.download_extract_zip('http://test', target=d)
            self.assertIn('test', os.listdir(d))
    def _install_dependency(self, dependency):
        if 'zip_url' in dependency:
            self.logger.info(
                'Deploying unmanaged metadata from /{} of {}'.format(
                    dependency['subfolder'],
                    dependency['zip_url'],
                ))
            package_zip = download_extract_zip(
                dependency['zip_url'],
                subfolder=dependency.get('subfolder'),
                headers=dependency.get('headers', {}),
            )
            if dependency.get('namespace_tokenize'):
                self.logger.info(
                    'Replacing namespace prefix {}__ in files and filenames with namespace token strings'
                    .format('{}__'.format(dependency['namespace_tokenize']), ))
                package_zip = zip_tokenize_namespace(
                    package_zip,
                    namespace=dependency['namespace_tokenize'],
                    logger=self.logger,
                )

            if dependency.get('namespace_inject'):
                self.logger.info('Replacing namespace tokens with {}'.format(
                    '{}__'.format(dependency['namespace_inject']), ))
                package_zip = zip_inject_namespace(
                    package_zip,
                    namespace=dependency['namespace_inject'],
                    managed=not dependency.get('unmanaged'),
                    namespaced_org=self.options['namespaced_org'],
                    logger=self.logger,
                )

            if dependency.get('namespace_strip'):
                self.logger.info(
                    'Removing namespace prefix {}__ from all files and filenames'
                    .format('{}__'.format(dependency['namespace_strip']), ))
                package_zip = zip_strip_namespace(
                    package_zip,
                    namespace=dependency['namespace_strip'],
                    logger=self.logger,
                )

            package_zip = ZipfilePackageZipBuilder(package_zip)()

        elif 'namespace' in dependency:
            self.logger.info('Installing {} version {}'.format(
                dependency['namespace'],
                dependency['version'],
            ))
            package_zip = InstallPackageZipBuilder(dependency['namespace'],
                                                   dependency['version'])()

        api = self.api_class(self,
                             package_zip,
                             purge_on_delete=self.options['purge_on_delete'])
        return api()
    def _install_dependency(self, dependency):
        if "zip_url" in dependency:
            self.logger.info(
                "Deploying unmanaged metadata from /{} of {}".format(
                    dependency["subfolder"], dependency["zip_url"]))
            package_zip = download_extract_zip(
                dependency["zip_url"],
                subfolder=dependency.get("subfolder"),
                headers=dependency.get("headers", {}),
            )
            if dependency.get("namespace_tokenize"):
                self.logger.info(
                    "Replacing namespace prefix {}__ in files and filenames with namespace token strings"
                    .format("{}__".format(dependency["namespace_tokenize"])))
                package_zip = zip_tokenize_namespace(
                    package_zip,
                    namespace=dependency["namespace_tokenize"],
                    logger=self.logger,
                )

            if dependency.get("namespace_inject"):
                self.logger.info("Replacing namespace tokens with {}".format(
                    "{}__".format(dependency["namespace_inject"])))
                package_zip = zip_inject_namespace(
                    package_zip,
                    namespace=dependency["namespace_inject"],
                    managed=not dependency.get("unmanaged"),
                    namespaced_org=self.options["namespaced_org"],
                    logger=self.logger,
                )

            if dependency.get("namespace_strip"):
                self.logger.info(
                    "Removing namespace prefix {}__ from all files and filenames"
                    .format("{}__".format(dependency["namespace_strip"])))
                package_zip = zip_strip_namespace(
                    package_zip,
                    namespace=dependency["namespace_strip"],
                    logger=self.logger,
                )

            package_zip = ZipfilePackageZipBuilder(package_zip)()

        elif "namespace" in dependency:
            self.logger.info("Installing {} version {}".format(
                dependency["namespace"], dependency["version"]))
            package_zip = InstallPackageZipBuilder(dependency["namespace"],
                                                   dependency["version"])()

        api = self.api_class(self,
                             package_zip,
                             purge_on_delete=self.options["purge_on_delete"])
        return api()
    def test_download_extract_zip(self):
        f = io.BytesIO()
        with zipfile.ZipFile(f, "w") as zf:
            zf.writestr("top", "top")
            zf.writestr("folder/test", "test")
        f.seek(0)
        zipbytes = f.read()
        responses.add(
            method=responses.GET,
            url="http://test",
            body=zipbytes,
            content_type="application/zip",
        )

        zf = utils.download_extract_zip("http://test", subfolder="folder")
        result = zf.read("test")
        self.assertEqual(b"test", result)
Beispiel #10
0
    def test_download_extract_zip(self):
        f = io.BytesIO()
        with zipfile.ZipFile(f, "w") as zf:
            zf.writestr("top", "top")
            zf.writestr("folder/test", "test")
        f.seek(0)
        zipbytes = f.read()
        responses.add(
            method=responses.GET,
            url="http://test",
            body=zipbytes,
            content_type="application/zip",
        )

        zf = utils.download_extract_zip("http://test", subfolder="folder")
        result = zf.read("test")
        assert b"test" == result
Beispiel #11
0
    def test_download_extract_zip(self):
        f = io.BytesIO()
        with zipfile.ZipFile(f, 'w') as zf:
            zf.writestr('top', 'top')
            zf.writestr('folder/test', 'test')
        f.seek(0)
        zipbytes = f.read()
        responses.add(
            method=responses.GET,
            url='http://test',
            body=zipbytes,
            content_type='application/zip',
        )

        zf = utils.download_extract_zip('http://test', subfolder='folder')
        result = zf.read('test')
        self.assertEqual('test', result)