def uri_get(directory, uri, verbose=False): up = urlparse.urlparse(uri) scriptname = os.path.basename(sys.argv[0]) if up.scheme == "file": shutil.copy(uri[7:], directory) if verbose: print("cp {0} {1}".format(uri[7:], directory)) elif up.scheme == "http" or up.scheme == "ftp": url_base = os.path.basename(up.path) old_cwd = os.getcwd() os.chdir(directory) if verbose: print("\r{0}: downloading: {1}".format(scriptname, uri)) try: opener = CygAptURLopener(verbose) opener.retrieve(uri, "{0}.tmp".format(url_base), reporthook=opener.dlProgress) except IOError: opener.setErrorCode(1) finally: opener.close() if opener.getErrorCode() == 200: rename(url_base + ".tmp", url_base) else: if os.path.exists(url_base + ".tmp"): os.remove(url_base + ".tmp") os.chdir(old_cwd) raise RequestException("{0} unreached URL {1}" "".format(opener.getErrorCode(), uri)) os.chdir(old_cwd) else: raise InvalidArgumentException("bad URL {0}".format(uri))
def setUp(self): TestCase.setUp(self) self.obj = CygAptURLopener(True)