def __init__(self, defaults): self.distbase = defaults.distbase self.distdefault = defaults.distdefault self.aliases = defaults.aliases self.servers = defaults.servers self.locations = [] self.urlparser = URLParser()
def __init__(self, urlparser=None): self.urlparser = urlparser or URLParser()
def __init__(self, process=None, urlparser=None): self.process = process or Process(env=self.get_env()) self.urlparser = urlparser or URLParser() self.dirstack = ChdirStack()
def testHTTPNoPageWithoutProtocol(self): url = fetchURL("www.some.com/") parser = URLParser(url.url) protocol = parser.getPage() self.assertEqual(protocol, "")
def testHTTPPageWithoutProtocol(self): url = fetchURL("www.some.com/someootherfolder/one/two/three/index.html") parser = URLParser(url.url) protocol = parser.getPage() self.assertEqual(protocol, "someootherfolder/one/two/three/index.html")
def testHTTPPage2(self): url = fetchURL("http://www.some.com/someootherfolder/index.html") parser = URLParser(url.url) protocol = parser.getPage() self.assertEqual(protocol, "someootherfolder/index.html")
def testHostNoProtocol(self): url = fetchURL("www.someothersite.com/index.html") parser = URLParser(url.url) host = protocol = parser.getHost() self.assertEqual(host, "www.someothersite.com")
def testHost1(self): url = fetchURL("http://www.some.com/index.html") parser = URLParser(url.url) host = protocol = parser.getHost() self.assertEqual(host, "www.some.com")
def testUnknownProtocol(self): url = fetchURL("qwery://www.some.com/index.html") parser = URLParser(url.url) protocol = parser.getProtocol() self.assertEqual(protocol, "qwery")
def testNoProtocol(self): url = fetchURL("www.some.com/index.html") parser = URLParser(url.url) protocol = parser.getProtocol() self.assertEqual(protocol, "")
def testHTTPProtocl(self): url = fetchURL("http://www.some.com/index.html") parser = URLParser(url.url) protocol = parser.getProtocol() self.assertEqual(protocol, "http")
class Locations(object): def __init__(self, defaults): self.distbase = defaults.distbase self.distdefault = defaults.distdefault self.aliases = defaults.aliases self.servers = defaults.servers self.locations = [] self.urlparser = URLParser() def __len__(self): """Return number of locations. """ return len(self.locations) def __iter__(self): """Iterate over locations. """ return iter(self.locations) def extend(self, location): """Extend list of locations. """ self.locations.extend(location) def is_server(self, location): """Return True if 'location' is an index server. """ return location in self.servers def is_dist_url(self, location): """Return True if 'location' is an scp or sftp URL. """ return self.urlparser.get_scheme(location) in ('scp', 'sftp') def has_host(self, location): """Return True if 'location' contains a host part. """ return self.urlparser.is_ssh_url(location) def join(self, distbase, location): """Join 'distbase' and 'location' in such way that the result is a valid scp destination. """ sep = '' if distbase and distbase[-1] not in (':', '/'): sep = '/' return distbase + sep + location def get_location(self, location, depth=0): """Resolve aliases and apply distbase. """ if not location: return [] if location in self.aliases: res = [] if depth > MAXALIASDEPTH: err_exit('Maximum alias depth exceeded: %(location)s' % locals()) for loc in self.aliases[location]: res.extend(self.get_location(loc, depth+1)) return res if self.is_server(location): return [location] if location == 'pypi': err_exit('No configuration found for server: pypi\n' 'Please create a ~/.pypirc file') if self.urlparser.is_url(location): return [location] if not self.has_host(location) and self.distbase: return [self.join(self.distbase, location)] return [location] def get_default_location(self): """Return the default location. """ res = [] for location in self.distdefault: res.extend(self.get_location(location)) return res def check_valid_locations(self, locations=None): """Fail if 'locations' is empty or contains bad destinations. """ if locations is None: locations = self.locations if not locations: err_exit('mkrelease: option -d is required\n%s' % USAGE) for location in locations: if (not self.is_server(location) and not self.is_dist_url(location) and not self.has_host(location)): err_exit('Unknown location: %(location)s' % locals())