def test_download_default_dir(): _config = sunpy.config try: tmpdir = tempfile.mkdtemp() sunpy.config = MockConfig() sunpy.config.add_section("downloads", {"download_dir": tmpdir}) dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) errback = CalledProxy(_stop) dw.download( 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js', callback=_stop, errback=errback) timer = threading.Timer(10, timeout) timer.start() dw.wait() timer.cancel() assert not timeout.fired assert not errback.fired assert os.path.exists(os.path.join(tmpdir, 'jquery.min.js')) finally: sunpy.config = _config
def test_download_default_dir(): _config = sunpy.config try: tmpdir = tempfile.mkdtemp() sunpy.config = MockConfig() sunpy.config.add_section( "downloads", {"download_dir": tmpdir} ) dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) errback = CalledProxy(_stop) dw.download( 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js', callback=_stop, errback=errback ) timer = threading.Timer(10, timeout) timer.start() dw.wait() timer.cancel() assert not timeout.fired assert not errback.fired assert os.path.exists(os.path.join(tmpdir, 'jquery.min.js')) finally: sunpy.config = _config
def test_download_http(): items = [] lck = threading.Lock() def wait_for(n, callback): # pylint: disable=W0613 def _fun(handler): with lck: items.append(handler) if len(items) == n: callback(items) return _fun tmp = tempfile.mkdtemp() path_fun = partial(default_name, tmp) dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) timer = threading.Timer(60, timeout) timer.start() on_finish = wait_for(3, lambda _: dw.stop()) dw.download('http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js', path_fun, on_finish) dw.download('http://ajax.googleapis.com/ajax/libs/webfont/1.4.2/webfont.js', path_fun, on_finish) dw.download('https://raw.githubusercontent.com/sunpy/sunpy/master/README.rst', path_fun, on_finish) dw.wait() timer.cancel() assert len(items) == 3 assert not timeout.fired for item in items: assert os.path.exists(item['path'])
def test_download_dir(): tmpdir = tempfile.mkdtemp() dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) errback = CalledProxy(_stop) dw.download( "http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", tmpdir, callback=_stop, errback=errback ) timer = threading.Timer(10, timeout) timer.start() dw.wait() timer.cancel() assert not timeout.fired assert not errback.fired assert os.path.exists(os.path.join(tmpdir, "jquery.min.js"))
def test_download_http(): items = [] lck = threading.Lock() def wait_for(n, callback): # pylint: disable=W0613 def _fun(handler): with lck: items.append(handler) if len(items) == n: callback(items) return _fun tmp = tempfile.mkdtemp() path_fun = partial(default_name, tmp) dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) timer = threading.Timer(60, timeout) timer.start() on_finish = wait_for(3, lambda _: dw.stop()) dw.download( 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js', path_fun, on_finish) dw.download( 'http://ajax.googleapis.com/ajax/libs/webfont/1.4.2/webfont.js', path_fun, on_finish) dw.download('https://raw.github.com/sunpy/sunpy/master/INSTALL.txt', path_fun, on_finish) # dw.download('ftp://speedtest.inode.at/speedtest-100mb', path_fun, on_finish) dw.wait() timer.cancel() assert len(items) == 3 assert not timeout.fired for item in items: assert os.path.exists(item['path'])
def test_download_dir(): tmpdir = tempfile.mkdtemp() dw = Downloader(1, 1) _stop = lambda _: dw.stop() timeout = CalledProxy(dw.stop) errback = CalledProxy(_stop) dw.download( 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js', tmpdir, callback=_stop, errback=errback) timer = threading.Timer(10, timeout) timer.start() dw.wait() timer.cancel() assert not timeout.fired assert not errback.fired assert os.path.exists(os.path.join(tmpdir, 'jquery.min.js'))