def test_manifest_with_invalid_path(self): environ = {'PATH_INFO': '/'} with test.support.change_cwd(self.temp_dir): body = manifest.manifest(environ, self._start_response) self.assertEqual(body[0], b'404 Not Found') self.assertEqual(self._last_status, '404 Not Found') headers = dict(self._last_headers) self.assertEqual(headers['Content-Type'], 'text/plain')
def test_manifest(self): environ = {'PATH_INFO': '/static/ham.plist'} with test.support.change_cwd(self.temp_dir): body = manifest.manifest(environ, self._start_response) self.assertIn(b'plist', body[0]) self.assertEqual(self._last_status, '200 OK') headers = dict(self._last_headers) self.assertEqual(headers['Content-Type'], 'application/x-plist')
def __init__(self, ui, path): self._url = path self.ui = ui self.root = path u = util.url(path.rstrip('/') + "/.hg") self.path, authinfo = u.authinfo() opener = build_opener(ui, authinfo) self.opener = opener(self.path) self.vfs = self.opener self._phasedefaults = [] self.names = namespaces.namespaces() try: requirements = scmutil.readrequires(self.vfs, self.supported) except IOError as inst: if inst.errno != errno.ENOENT: raise requirements = set() # check if it is a non-empty old-style repository try: fp = self.vfs("00changelog.i") fp.read(1) fp.close() except IOError as inst: if inst.errno != errno.ENOENT: raise # we do not care about empty old-style repositories here msg = _("'%s' does not appear to be an hg repository") % path raise error.RepoError(msg) # setup store self.store = store.store(requirements, self.path, opener) self.spath = self.store.path self.svfs = self.store.opener self.sjoin = self.store.join self._filecache = {} self.requirements = requirements self.manifest = manifest.manifest(self.svfs) self.changelog = changelog.changelog(self.svfs) self._tags = None self.nodetagscache = None self._branchcaches = {} self._revbranchcache = None self.encodepats = None self.decodepats = None self._transref = None
class statichttprepository(localrepo.localrepository): def __init__(self, ui, path): self._url = path self.ui = ui self.path = path.rstrip('/') + "/.hg" self.opener = opener(self.path) # find requirements try: requirements = self.opener("requires").read().splitlines() except IOError, inst: if inst.errno == errno.ENOENT: msg = _("'%s' does not appear to be an hg repository") % path raise repo.RepoError(msg) else: requirements = [] # check them for r in requirements: if r not in self.supported: raise repo.RepoError(_("requirement '%s' not supported") % r) # setup store if "store" in requirements: self.encodefn = util.encodefilename self.decodefn = util.decodefilename self.spath = self.path + "/store" else: self.encodefn = lambda x: x self.decodefn = lambda x: x self.spath = self.path self.sopener = util.encodedopener(opener(self.spath), self.encodefn) self.manifest = manifest.manifest(self.sopener) self.changelog = changelog.changelog(self.sopener) self.tagscache = None self.nodetagscache = None self.encodepats = None self.decodepats = None
requirements = [] # check them for r in requirements: if r not in self.supported: raise error.RepoError(_("requirement '%s' not supported") % r) # setup store def pjoin(a, b): return a + '/' + b self.store = store.store(requirements, self.path, opener, pjoin) self.spath = self.store.path self.sopener = self.store.opener self.sjoin = self.store.join self.manifest = manifest.manifest(self.sopener) self.changelog = changelog.changelog(self.sopener) self.tagscache = None self.nodetagscache = None self.encodepats = None self.decodepats = None def url(self): return self._url def local(self): return False def lock(self, wait=True): raise util.Abort(_('cannot lock static-http repository'))
if inst.errno != errno.ENOENT: raise # we do not care about empty old-style repositories here msg = _("'%s' does not appear to be an hg repository") % path raise error.RepoError(msg) # setup store self.store = store.store(requirements, self.path, opener) self.spath = self.store.path self.sopener = self.store.opener self.svfs = self.sopener self.sjoin = self.store.join self._filecache = {} self.requirements = requirements self.manifest = manifest.manifest(self.sopener) self.changelog = changelog.changelog(self.sopener) self._tags = None self.nodetagscache = None self._branchcaches = {} self.encodepats = None self.decodepats = None def _restrictcapabilities(self, caps): return caps.difference(["pushkey"]) def url(self): return self._url def local(self): return False
def __init__(self, opener, opener2, linkmapper): manifest.manifest.__init__(self, opener) manifest2 = manifest.manifest(opener2) unionrevlog.__init__(self, opener, self.indexfile, manifest2, linkmapper)
if inst.errno != errno.ENOENT: raise # we do not care about empty old-style repositories here msg = _("'%s' does not appear to be an hg repository") % path raise error.RepoError(msg) # setup store self.store = store.store(requirements, self.path, opener) self.spath = self.store.path self.svfs = self.store.opener self.sopener = self.svfs self.sjoin = self.store.join self._filecache = {} self.requirements = requirements self.manifest = manifest.manifest(self.svfs) self.changelog = changelog.changelog(self.svfs) self._tags = None self.nodetagscache = None self._branchcaches = {} self.encodepats = None self.decodepats = None def _restrictcapabilities(self, caps): caps = super(statichttprepository, self)._restrictcapabilities(caps) return caps.difference(["pushkey"]) def url(self): return self._url def local(self):
if inst.errno != errno.ENOENT: raise # we do not care about empty old-style repositories here msg = _("'%s' does not appear to be an hg repository") % path raise error.RepoError(msg) # setup store self.store = store.store(requirements, self.path, opener) self.spath = self.store.path self.svfs = self.store.opener self.sopener = self.svfs self.sjoin = self.store.join self._filecache = {} self.requirements = requirements self.manifest = manifest.manifest(self.svfs) self.changelog = changelog.changelog(self.svfs) self._tags = None self.nodetagscache = None self._branchcaches = {} self._revbranchcache = None self.encodepats = None self.decodepats = None self._transref = None def _restrictcapabilities(self, caps): caps = super(statichttprepository, self)._restrictcapabilities(caps) return caps.difference(["pushkey"]) def url(self): return self._url
from zipfile import ZipFile from installers.basic_installer import BasicInstaller class ZipInstaller(BasicInstaller): def __init__(self, manifest): super(self.__class__, self).__init__(manifest) def _verify(self): pass def _install(self): with ZipFile(self.cache_app_file) as zf: zf.extractall(self.app_directory) if __name__ == '__main__': import manifest m = manifest.manifest('scapy.json') z = ZipInstaller(m) print z.install()
def Action_1(self): # self.statusBar().showMessage('Processing...') # time.sleep(1) manifest() self.statusBar().showMessage('`manifest.json` saved.')