Ejemplo n.º 1
0
 def test_details(self, sp):
     from cheeseprism.rpc import PyPi
     out = PyPi.package_details('wicked', '1.0')
     ((index, )), _ = sp.call_args
     assert index == PyPi.index
     assert sp.called
     assert out
Ejemplo n.º 2
0
def from_pypi(request, fpkgs='/find-packages'):
    """
    @@ convert to use action on a post rather than on a get
    """
    name = request.matchdict['name']
    version = request.matchdict['version']
    dists = PyPi.release_urls(name, version)
    flash = request.session.flash
    if not dists:
        flash("%s-%s not found" % (name, version))
        return HTTPFound(fpkgs)

    candidates = [
        x for x in dists if request.index.SDIST_EXT.match(x['filename'])
    ]

    if candidates[0]['md5_digest'] in request.index_data:
        logger.debug('Package %s-%s already in index' % (name, version))
        return HTTPFound('/index/%s' % name)

    details = candidates[0]
    url = details['url']
    filename = details['filename']
    newfile = None
    try:
        resp = requests.get(url)
        newfile = request.file_root / filename
        newfile.write_bytes(resp.content)
    except HTTPError, e:
        error = "HTTP Error: %d %s - %s" % (e.code,
                                            exc.status_map[e.code].title, url)
        logger.error(error)
        flash(error)
Ejemplo n.º 3
0
def package(request, fpkgs='/find-packages'):
    """
    @@ convert to use action on a post rather than on a get
    """
    name = request.matchdict['name']
    version = request.matchdict['version']
    details = PyPi.package_details(name, version)
    flash = request.session.flash 
    if not details:
        flash("%s-%s not found" %(name, version))
        return HTTPFound(fpkgs)
        
    if details[0]['md5_digest'] in request.index_data:
        logger.debug('Package %s-%s already in index' %(name, version))
        return HTTPFound('/index/%s' %name)
            
    details = details[0]
    url = details['url']
    filename = details['filename']
    newfile = None
    try:
        resp = requests.get(url)
        newfile = request.file_root / filename
        newfile.write_bytes(resp.content)
    except HTTPError, e:
        error = "HTTP Error: %d %s - %s" %(e.code, exc.status_map[e.code].title, url)
        logger.error(error)
        flash(error)
Ejemplo n.º 4
0
    def test_details(self, sp):
        from cheeseprism.rpc import PyPi

        out = PyPi.package_details("wicked", "1.0")
        ((index,)), _ = sp.call_args
        assert index == PyPi.index
        assert sp.called
        assert out
Ejemplo n.º 5
0
def find_package(context, request):
    releases = None
    search_term = None
    if request.method == "POST":
        search_term = request.POST['search_box']
        releases = PyPi.search(search_term)
    url = request.resource_url(context, request.view_name)
    return dict(releases=releases, search_term=search_term, here=url)
Ejemplo n.º 6
0
def find_package(context, request):
    releases = None
    search_term = None
    if request.method == "POST":
        search_term = request.POST['search_box']
        releases = PyPi.search(search_term)
    url = request.resource_url(context, request.view_name)
    return dict(releases=releases, search_term=search_term, here=url)
Ejemplo n.º 7
0
    def test_search(self, sp):
        from cheeseprism.rpc import PyPi

        out = PyPi.search("five.intid")
        assert sp.called
        assert out
Ejemplo n.º 8
0
 def test_search(self, sp):
     from cheeseprism.rpc import PyPi
     out = PyPi.search('five.intid')
     assert sp.called
     assert out