From ea649894de07c28eb7a076f987d8af61bf312320 Mon Sep 17 00:00:00 2001 From: Tarek Ziade Date: Thu, 19 May 2011 13:07:25 +0200 Subject: initial import of the packaging package in the standard library --- Lib/packaging/tests/test_pypi_server.py | 81 +++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Lib/packaging/tests/test_pypi_server.py (limited to 'Lib/packaging/tests/test_pypi_server.py') diff --git a/Lib/packaging/tests/test_pypi_server.py b/Lib/packaging/tests/test_pypi_server.py new file mode 100644 index 0000000000..15c2e6c7ec --- /dev/null +++ b/Lib/packaging/tests/test_pypi_server.py @@ -0,0 +1,81 @@ +"""Tests for packaging.command.bdist.""" +import sys + +import urllib.request +import urllib.parse +import urllib.error + +from packaging.tests.pypi_server import PyPIServer, PYPI_DEFAULT_STATIC_PATH +from packaging.tests import unittest + + +class PyPIServerTest(unittest.TestCase): + + def test_records_requests(self): + # We expect that PyPIServer can log our requests + server = PyPIServer() + server.default_response_status = 200 + + try: + server.start() + self.assertEqual(len(server.requests), 0) + + data = b'Rock Around The Bunker' + + headers = {"X-test-header": "Mister Iceberg"} + + request = urllib.request.Request(server.full_address, data, headers) + urllib.request.urlopen(request) + self.assertEqual(len(server.requests), 1) + handler, request_data = server.requests[-1] + self.assertIn(data, request_data) + self.assertIn("x-test-header", handler.headers) + self.assertEqual(handler.headers["x-test-header"], "Mister Iceberg") + + finally: + server.stop() + + + def test_serve_static_content(self): + # PYPI Mocked server can serve static content from disk. + + def uses_local_files_for(server, url_path): + """Test that files are served statically (eg. the output from the + server is the same than the one made by a simple file read. + """ + url = server.full_address + url_path + request = urllib.request.Request(url) + response = urllib.request.urlopen(request) + file = open(PYPI_DEFAULT_STATIC_PATH + "/test_pypi_server" + + url_path) + answer = response.read().decode() == file.read() + file.close() + return answer + + server = PyPIServer(static_uri_paths=["simple", "external"], + static_filesystem_paths=["test_pypi_server"]) + server.start() + try: + # the file does not exists on the disc, so it might not be served + url = server.full_address + "/simple/unexisting_page" + request = urllib.request.Request(url) + try: + urllib.request.urlopen(request) + except urllib.error.HTTPError as e: + self.assertEqual(e.code, 404) + + # now try serving a content that do exists + self.assertTrue(uses_local_files_for(server, "/simple/index.html")) + + # and another one in another root path + self.assertTrue(uses_local_files_for(server, "/external/index.html")) + + finally: + server.stop() + + +def test_suite(): + return unittest.makeSuite(PyPIServerTest) + +if __name__ == '__main__': + unittest.main(defaultTest="test_suite") -- cgit v1.2.1 From a1dbf39e69f52695924598f52eaccd39a4c6ff0f Mon Sep 17 00:00:00 2001 From: Tarek Ziade Date: Thu, 19 May 2011 15:26:59 +0200 Subject: Issue #12115: skipping all tests that need threading under a threadless environment --- Lib/packaging/tests/test_pypi_server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Lib/packaging/tests/test_pypi_server.py') diff --git a/Lib/packaging/tests/test_pypi_server.py b/Lib/packaging/tests/test_pypi_server.py index 15c2e6c7ec..1fcbdcbb1f 100644 --- a/Lib/packaging/tests/test_pypi_server.py +++ b/Lib/packaging/tests/test_pypi_server.py @@ -5,10 +5,18 @@ import urllib.request import urllib.parse import urllib.error -from packaging.tests.pypi_server import PyPIServer, PYPI_DEFAULT_STATIC_PATH +try: + import threading + from packaging.tests.pypi_server import PyPIServer, PYPI_DEFAULT_STATIC_PATH +except ImportError: + threading = None + PyPIServer = None + PYPI_DEFAULT_STATIC_PATH = None + from packaging.tests import unittest +@unittest.skipIf(threading is None, "Needs threading") class PyPIServerTest(unittest.TestCase): def test_records_requests(self): -- cgit v1.2.1 From 728a8c63da0da9ff708972e8e7765d4471f9c606 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 19 May 2011 15:51:27 +0200 Subject: packaging: use with open() instead of try/finally: close --- Lib/packaging/tests/test_pypi_server.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'Lib/packaging/tests/test_pypi_server.py') diff --git a/Lib/packaging/tests/test_pypi_server.py b/Lib/packaging/tests/test_pypi_server.py index 1fcbdcbb1f..2c4ec0d34c 100644 --- a/Lib/packaging/tests/test_pypi_server.py +++ b/Lib/packaging/tests/test_pypi_server.py @@ -54,11 +54,9 @@ class PyPIServerTest(unittest.TestCase): url = server.full_address + url_path request = urllib.request.Request(url) response = urllib.request.urlopen(request) - file = open(PYPI_DEFAULT_STATIC_PATH + "/test_pypi_server" + - url_path) - answer = response.read().decode() == file.read() - file.close() - return answer + with open(PYPI_DEFAULT_STATIC_PATH + "/test_pypi_server" + + url_path) as file: + return response.read().decode() == file.read() server = PyPIServer(static_uri_paths=["simple", "external"], static_filesystem_paths=["test_pypi_server"]) -- cgit v1.2.1 From d853711fa39f9861fbfc07211e27801a80dc8b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Sun, 18 Sep 2011 20:11:48 +0200 Subject: Make a number of small changes to ease the backport to distutils2 --- Lib/packaging/tests/test_pypi_server.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'Lib/packaging/tests/test_pypi_server.py') diff --git a/Lib/packaging/tests/test_pypi_server.py b/Lib/packaging/tests/test_pypi_server.py index 2c4ec0d34c..057c49498a 100644 --- a/Lib/packaging/tests/test_pypi_server.py +++ b/Lib/packaging/tests/test_pypi_server.py @@ -1,13 +1,12 @@ """Tests for packaging.command.bdist.""" -import sys - import urllib.request import urllib.parse import urllib.error try: import threading - from packaging.tests.pypi_server import PyPIServer, PYPI_DEFAULT_STATIC_PATH + from packaging.tests.pypi_server import ( + PyPIServer, PYPI_DEFAULT_STATIC_PATH) except ImportError: threading = None PyPIServer = None @@ -32,18 +31,19 @@ class PyPIServerTest(unittest.TestCase): headers = {"X-test-header": "Mister Iceberg"} - request = urllib.request.Request(server.full_address, data, headers) + request = urllib.request.Request( + server.full_address, data, headers) urllib.request.urlopen(request) self.assertEqual(len(server.requests), 1) handler, request_data = server.requests[-1] self.assertIn(data, request_data) self.assertIn("x-test-header", handler.headers) - self.assertEqual(handler.headers["x-test-header"], "Mister Iceberg") + self.assertEqual(handler.headers["x-test-header"], + "Mister Iceberg") finally: server.stop() - def test_serve_static_content(self): # PYPI Mocked server can serve static content from disk. @@ -74,7 +74,8 @@ class PyPIServerTest(unittest.TestCase): self.assertTrue(uses_local_files_for(server, "/simple/index.html")) # and another one in another root path - self.assertTrue(uses_local_files_for(server, "/external/index.html")) + self.assertTrue(uses_local_files_for(server, + "/external/index.html")) finally: server.stop() -- cgit v1.2.1