def test_xmlrpc(self): locator = PyPIRPCLocator(PYPI_RPC_HOST) try: try: result = locator.get_project('sarge') except Exception: # pragma: no cover raise unittest.SkipTest('PyPI XML-RPC not available') self.assertIn('0.1', result) dist = result['0.1'] self.assertEqual(dist.name, 'sarge') self.assertEqual(dist.version, '0.1') possible = ('https://pypi.org/packages/source/s/sarge/' 'sarge-0.1.tar.gz', 'http://pypi.org/packages/source/s/sarge/' 'sarge-0.1.tar.gz') self.assertIn(dist.source_url, possible) self.assertEqual(dist.digest, ('md5', '961ddd9bc085fdd8b248c6dd96ceb1c8')) try: names = locator.get_distribution_names() except Exception: # pragma: no cover raise unittest.SkipTest('PyPI XML-RPC not available') self.assertGreater(len(names), 25000) finally: locator.client('close')()
def test_upload_documentation(self): "Test upload of documentation" raise unittest.SkipTest('Skipped, as pythonhosted.org is being ' 'de-emphasised and this functionality may ' 'no longer be available') self.check_pypi_server_available() self.check_testdist_available() d = os.path.join(HERE, self.testdir) data = self.load_package_metadata(d) md = Metadata(mapping=data) d = os.path.join(d, 'doc') # Non-existent directory self.assertRaises(DistlibException, self.index.upload_documentation, md, d + '-random') # Directory with no index.html self.assertRaises(DistlibException, self.index.upload_documentation, md, HERE) response = self.index.upload_documentation(md, d) self.assertEqual(response.code, 200) if not self.run_test_server: url = 'http://packages.python.org/%s/' % self.dist_project response = urlopen(url) self.assertEqual(response.code, 200) data = response.read() expected = b'This is dummy documentation' self.assertIn(expected, data)
def test_get_all_dist_names(self): for url in (None, PYPI_RPC_HOST): try: all_dists = get_all_distribution_names(url) except Exception: # pragma: no cover raise unittest.SkipTest('PyPI XML-RPC not available') self.assertGreater(len(all_dists), 0)
def test_mount_extensions(self): if PYVER == 'py27': fn = 'minimext-0.1-cp27-none-linux_x86_64.whl' elif PYVER == 'py32': fn = 'minimext-0.1-cp32-cp32mu-linux_x86_64.whl' elif PYVER == 'py33': fn = 'minimext-0.1-cp33-cp33m-linux_x86_64.whl' else: fn = None if not fn: # pragma: no cover raise unittest.SkipTest('Suitable wheel not found.') fn = os.path.join(HERE, fn) w = Wheel(fn) if not w.is_compatible() or not w.is_mountable(): # pragma: no cover raise unittest.SkipTest('Wheel not suitable for mounting.') self.assertRaises(ImportError, __import__, 'minimext') w.mount() mod = __import__('minimext') self.assertIs(mod, sys.modules['minimext']) self.assertEqual(mod.fib(10), 55) w.unmount() del sys.modules['minimext'] self.assertRaises(ImportError, __import__, 'minimext')
def test_verify_signature(self): if not self.index.gpg: # pragma: no cover raise unittest.SkipTest('gpg not available') sig_file = os.path.join(HERE, 'good.bin.asc') good_file = os.path.join(HERE, 'good.bin') bad_file = os.path.join(HERE, 'bad.bin') gpg = self.index.gpg self.index.gpg = None self.assertRaises(DistlibException, self.index.verify_signature, sig_file, good_file) self.index.gpg = gpg # Not pointing to keycd tests self.assertRaises(DistlibException, self.index.verify_signature, sig_file, good_file) self.index.gpg_home = os.path.join(HERE, 'keys') self.assertTrue(self.index.verify_signature(sig_file, good_file)) self.assertFalse(self.index.verify_signature(sig_file, bad_file))
def test_build_and_install_scripts(self): if pip_version() >= (20, 2, 0): raise unittest.SkipTest('Test not supported by pip version') self.do_build_and_install('Babel == 0.9.6')
def test_build_and_install_data(self): if pip_version() >= (20, 2, 0): raise unittest.SkipTest('Test not supported by pip version') self.do_build_and_install('Werkzeug == 0.5')
def test_build_and_install_plat(self): if pip_version() >= (20, 2, 0): raise unittest.SkipTest('Test not supported by pip version') self.do_build_and_install('hiredis == 0.1.1')
def check_pypi_server_available(self): if self.run_test_server and not self.server: # pragma: no cover raise unittest.SkipTest('test server not available')