def test_download_and_unpack(makehub, tmpdir, pseudo_current, monkeypatch, basic_auth): class FakeHTTP(object): class Response(object): def __init__(self, content=b'archive'): self.status_code = 200 self.content = content def __init__(self): self.last_get = None def get(self, *args, **kwargs): self.last_get = (args, kwargs) return self.Response() class FakeUnpack(object): def __init__(self): self.called = False def unpack(self): self.called = True hub = makehub(['test', '-epy27', 'somepkg']) hub.current.reconfigure( dict(index='http://dev/foo/bar', login='******', pypisubmit='http://dev/foo/bar')) if basic_auth: hub.current.set_basic_auth(*basic_auth) index = DevIndex(hub, tmpdir, pseudo_current) fake_http = FakeHTTP() hub.http.get = fake_http.get fake_unpack = FakeUnpack() monkeypatch.setattr('devpi.test.UnpackedPackage.unpack', fake_unpack.unpack) links = [ { 'href': 'http://dev/foo/bar/prep1-1.0.tar.gz', 'rel': 'releasefile' }, ] store = ViewLinkStore('http://something/index', { '+links': links, 'name': 'prep1', 'version': '1.0' }) link = store.get_link(rel='releasefile') index.download_and_unpack('1.0', link) assert fake_unpack.called args, kwargs = fake_http.last_get assert args[0] == 'http://dev/foo/bar/prep1-1.0.tar.gz' if basic_auth: assert kwargs['auth'] == basic_auth else: assert kwargs.get('auth') is None
def test_frompath(self, initproj, devpi, out_devpi, runproc): initproj("hello-1.3", {"doc": { "conf.py": "", "index.html": "<html/>" }}) tmpdir = py.path.local() runproc(tmpdir, "python setup.py sdist --format=zip".split()) dist = tmpdir.join("dist") assert len(dist.listdir()) == 1 p = dist.listdir()[0] hub = devpi("upload", p) url = hub.current.get_index_url().url + "hello/1.3/" out = out_devpi("getjson", url) data = json.loads(out.stdout.str()) vv = ViewLinkStore(url, data["result"]) assert vv.get_link(basename="hello-1.3.zip")
def test_fromdir(self, initproj, devpi, out_devpi, runproc, monkeypatch): initproj("hello-1.1", {"doc": { "conf.py": "", "index.html": "<html/>"}}) tmpdir = py.path.local() runproc(tmpdir, "python setup.py sdist --format=zip".split()) initproj("hello-1.2") runproc(tmpdir, "python setup.py sdist --format=zip".split()) dist = tmpdir.join("dist") assert len(dist.listdir()) == 2 hub = devpi("upload", "--from-dir", dist) for ver in ("1.1", '1.2'): url = hub.current.get_index_url().url + "hello/%s/" % ver out = out_devpi("getjson", url) data = json.loads(out.stdout.str()) vv = ViewLinkStore(url, data["result"]) assert vv.get_link(basename="hello-%s.zip" % ver)