예제 #1
0
def test_searching_through_Search_class():
    """
    Verify if ``pip.vcs.Search`` uses tests xmlrpclib.Transport class
    """
    original_xmlrpclib_transport = pip.download.xmlrpclib_transport
    pip.download.xmlrpclib_transport = fake_transport = Mock()
    query = 'mylittlequerythatdoesnotexists'
    dumped_xmlrpc_request = b(
        xmlrpclib.dumps(({
            'name': query,
            'summary': query
        }, 'or'), 'search'))
    expected = [{
        '_pypi_ordering': 100,
        'name': 'foo',
        'summary': 'foo summary',
        'version': '1.0'
    }]
    fake_transport.request.return_value = (expected, )
    pypi_searcher = SearchCommand(create_main_parser())
    result = pypi_searcher.search(query, 'http://pypi.python.org/pypi')
    try:
        assert expected == result, result
        fake_transport.request.assert_called_with('pypi.python.org',
                                                  '/pypi',
                                                  dumped_xmlrpc_request,
                                                  verbose=VERBOSE_FALSE)
    finally:
        pip.download.xmlrpclib_transport = original_xmlrpclib_transport
예제 #2
0
    def _package_exists_in_pypi(self, fullname):
        searcher = SearchCommand()
        options, args = searcher.parse_args([fullname])
        matches = searcher.search(args, options)
        found_match = None
        for match in matches:
            if match["name"] == fullname:
                return True
                break

        return False
예제 #3
0
파일: test_search.py 프로젝트: michaeta/pip
def test_searching_through_Search_class():
    """
    Verify if ``pip.vcs.Search`` uses tests xmlrpclib.Transport class
    """
    pip.download.xmlrpclib_transport = fake_transport = Mock()
    query = 'mylittlequerythatdoesnotexists'
    dumped_xmlrpc_request = b(xmlrpclib.dumps(({'name': query, 'summary': query}, 'or'), 'search'))
    expected = [{'_pypi_ordering': 100, 'name': 'foo', 'summary': 'foo summary', 'version': '1.0'}]
    fake_transport.request.return_value = (expected,)
    pypi_searcher = SearchCommand()
    result = pypi_searcher.search(query, 'http://pypi.python.org/pypi')
    assert expected == result, result
    fake_transport.request.assert_called_with('pypi.python.org', '/pypi', dumped_xmlrpc_request, verbose=VERBOSE_FALSE)
예제 #4
0
 def search_packages(package_name):
     """
     query pip package repository
     """
     versions = []
     search = SearchCommand()
     pypi = search.search(package_name,
                          search.parse_args([package_name])[0])
     for hit in transform_hits(pypi):
         if hit['name'] == package_name:
             versions = hit['versions']
             break
     return versions
예제 #5
0
 def search_packages(package_name):
     """
     query pip package repository
     """
     versions = []
     search = SearchCommand()
     pypi = search.search(package_name,
                          search.parse_args([package_name])[0])
     for hit in transform_hits(pypi):
         if hit['name'] == package_name:
             versions = hit['versions']
             break
     return versions
예제 #6
0
    def run(self):
        pkg_name = self.distribution.get_name()
        pkg_version = self.distribution.get_version()
        search = SearchCommand()
        options, _ = search.parse_args([pkg_name])
        pypi_hits = search.search(pkg_name, options)
        hits = transform_hits(pypi_hits)

        remote_version = None
        for hit in hits:
            if hit['name'] == pkg_name:
                remote_version = highest_version(hit['versions'])
                self.announce("Found %s version %s on PyPi" % (pkg_name, remote_version), log.INFO)
        if remote_version is None:
            raise RuntimeError("Could not found %s on PyPi" % pkg_name)
        if StrictVersion(VERSION) <= StrictVersion(remote_version):
            raise VersionError("Local version %s not greater than PyPi version %s" % (pkg_version, remote_version))
        self.announce("Local version %s higher than PyPi version" % pkg_version)
예제 #7
0
def search(terms):
    _ensure_search_logger()
    cmd = SearchCommand()
    args = terms
    options, query = cmd.parse_args(args)
    return cmd.search(query, options)