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 _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 _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))
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)
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)
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
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)