示例#1
0
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
示例#2
0
 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")
示例#3
0
 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)