summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Wirtel <stephane@wirtel.be>2019-02-22 13:45:36 (GMT)
committerVictor Stinner <vstinner@redhat.com>2019-02-22 13:45:36 (GMT)
commita40681dd5db8deaf05a635eecb91498dac882aa4 (patch)
tree004360b7e66660aa058dce5e4ca0b3d1c78d8266
parent3208880f1c72800bacf94a2045fcb0436702c7a1 (diff)
downloadcpython-a40681dd5db8deaf05a635eecb91498dac882aa4.zip
cpython-a40681dd5db8deaf05a635eecb91498dac882aa4.tar.gz
cpython-a40681dd5db8deaf05a635eecb91498dac882aa4.tar.bz2
bpo-36019: Use pythontest.net instead of example.com in network tests (GH-11941)
-rw-r--r--Doc/library/test.rst4
-rw-r--r--Lib/test/support/__init__.py4
-rw-r--r--Lib/test/test_urllib.py4
-rw-r--r--Lib/test/test_urllib2net.py12
-rw-r--r--Lib/test/test_urllibnet.py6
-rw-r--r--Misc/NEWS.d/next/Tests/2019-02-21-14-23-51.bpo-36019.zS_OUi.rst2
6 files changed, 22 insertions, 10 deletions
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index b5057c0..054521d 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -356,6 +356,10 @@ The :mod:`test.support` module defines the following constants:
Check for presence of docstrings.
+.. data:: TEST_HTTP_URL
+
+ Define the URL of a dedicated HTTP server for the network tests.
+
The :mod:`test.support` module defines the following functions:
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 9b75a21..c0938d9 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -835,6 +835,10 @@ else:
# module name.
TESTFN = "{}_{}_tmp".format(TESTFN, os.getpid())
+# Define the URL of a dedicated HTTP server for the network tests.
+# The URL must use clear-text HTTP: no redirection to encrypted HTTPS.
+TEST_HTTP_URL = "http://www.pythontest.net"
+
# FS_NONASCII: non-ASCII character encodable by os.fsencode(),
# or None if there is no such character.
FS_NONASCII = None
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index c292d74..2ac73b5 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -712,7 +712,7 @@ FF
with self.assertRaises(urllib.error.ContentTooShortError):
try:
- urllib.request.urlretrieve('http://example.com/',
+ urllib.request.urlretrieve(support.TEST_HTTP_URL,
reporthook=_reporthook)
finally:
self.unfakehttp()
@@ -729,7 +729,7 @@ FF
''')
with self.assertRaises(urllib.error.ContentTooShortError):
try:
- urllib.request.urlretrieve('http://example.com/')
+ urllib.request.urlretrieve(support.TEST_HTTP_URL)
finally:
self.unfakehttp()
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 1aa64cb..0f43d71 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -84,7 +84,7 @@ class CloseSocketTest(unittest.TestCase):
def test_close(self):
# calling .close() on urllib2's response objects should close the
# underlying socket
- url = "http://www.example.com/"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url):
response = _urlopen_with_retry(url)
sock = response.fp
@@ -173,7 +173,7 @@ class OtherNetworkTests(unittest.TestCase):
"http://www.pythontest.net/elsewhere/#frag")
def test_custom_headers(self):
- url = "http://www.example.com"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url):
opener = urllib.request.build_opener()
request = urllib.request.Request(url)
@@ -259,7 +259,7 @@ class OtherNetworkTests(unittest.TestCase):
class TimeoutTest(unittest.TestCase):
def test_http_basic(self):
self.assertIsNone(socket.getdefaulttimeout())
- url = "http://www.example.com"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url, timeout=None):
u = _urlopen_with_retry(url)
self.addCleanup(u.close)
@@ -267,7 +267,7 @@ class TimeoutTest(unittest.TestCase):
def test_http_default_timeout(self):
self.assertIsNone(socket.getdefaulttimeout())
- url = "http://www.example.com"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url):
socket.setdefaulttimeout(60)
try:
@@ -279,7 +279,7 @@ class TimeoutTest(unittest.TestCase):
def test_http_no_timeout(self):
self.assertIsNone(socket.getdefaulttimeout())
- url = "http://www.example.com"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url):
socket.setdefaulttimeout(60)
try:
@@ -290,7 +290,7 @@ class TimeoutTest(unittest.TestCase):
self.assertIsNone(u.fp.raw._sock.gettimeout())
def test_http_timeout(self):
- url = "http://www.example.com"
+ url = support.TEST_HTTP_URL
with support.transient_internet(url):
u = _urlopen_with_retry(url, timeout=120)
self.addCleanup(u.close)
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index 4103b6c..d394ced 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -3,6 +3,7 @@ from test import support
import contextlib
import socket
+import urllib.parse
import urllib.request
import os
import email.message
@@ -24,8 +25,9 @@ class URLTimeoutTest(unittest.TestCase):
socket.setdefaulttimeout(None)
def testURLread(self):
- with support.transient_internet("www.example.com"):
- f = urllib.request.urlopen("http://www.example.com/")
+ domain = urllib.parse.urlparse(support.TEST_HTTP_URL).netloc
+ with support.transient_internet(domain):
+ f = urllib.request.urlopen(support.TEST_HTTP_URL)
f.read()
diff --git a/Misc/NEWS.d/next/Tests/2019-02-21-14-23-51.bpo-36019.zS_OUi.rst b/Misc/NEWS.d/next/Tests/2019-02-21-14-23-51.bpo-36019.zS_OUi.rst
new file mode 100644
index 0000000..b14d157
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2019-02-21-14-23-51.bpo-36019.zS_OUi.rst
@@ -0,0 +1,2 @@
+Add test.support.TEST_HTTP_URL and replace references of http://www.example.com
+by this new constant. Contributed by Stéphane Wirtel.