ยปCore Development>Code coverage>Lib/packaging/tests/pypi_test_server.py

Python code coverage for Lib/packaging/tests/pypi_test_server.py

#countcontent
1n/a"""Test PyPI Server implementation at testpypi.python.org, to use in tests.
2n/a
3n/aThis is a drop-in replacement for the mock pypi server for testing against a
4n/areal pypi server hosted by python.org especially for testing against.
5n/a"""
6n/a
7n/aimport unittest
8n/a
9n/aPYPI_DEFAULT_STATIC_PATH = None
10n/a
11n/a
12n/adef use_xmlrpc_server(*server_args, **server_kwargs):
13n/a server_kwargs['serve_xmlrpc'] = True
14n/a return use_pypi_server(*server_args, **server_kwargs)
15n/a
16n/a
17n/adef use_http_server(*server_args, **server_kwargs):
18n/a server_kwargs['serve_xmlrpc'] = False
19n/a return use_pypi_server(*server_args, **server_kwargs)
20n/a
21n/a
22n/adef use_pypi_server(*server_args, **server_kwargs):
23n/a """Decorator to make use of the PyPIServer for test methods,
24n/a just when needed, and not for the entire duration of the testcase.
25n/a """
26n/a def wrapper(func):
27n/a def wrapped(*args, **kwargs):
28n/a server = PyPIServer(*server_args, **server_kwargs)
29n/a func(server=server, *args, **kwargs)
30n/a return wrapped
31n/a return wrapper
32n/a
33n/a
34n/aclass PyPIServerTestCase(unittest.TestCase):
35n/a
36n/a def setUp(self):
37n/a super(PyPIServerTestCase, self).setUp()
38n/a self.pypi = PyPIServer()
39n/a self.pypi.start()
40n/a self.addCleanup(self.pypi.stop)
41n/a
42n/a
43n/aclass PyPIServer:
44n/a """Shim to access testpypi.python.org, for testing a real server."""
45n/a
46n/a def __init__(self, test_static_path=None,
47n/a static_filesystem_paths=["default"],
48n/a static_uri_paths=["simple"], serve_xmlrpc=False):
49n/a self.address = ('testpypi.python.org', '80')
50n/a
51n/a def start(self):
52n/a pass
53n/a
54n/a def stop(self):
55n/a pass
56n/a
57n/a @property
58n/a def full_address(self):
59n/a return "http://%s:%s" % self.address