Skip to content

Commit

Permalink
bpo-36019: Use pythontest.net instead of example.com in network tests (
Browse files Browse the repository at this point in the history
  • Loading branch information
matrixise authored and vstinner committed Feb 22, 2019
1 parent 3208880 commit a40681d
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 10 deletions.
4 changes: 4 additions & 0 deletions Doc/library/test.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 4 additions & 0 deletions Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,10 @@ def dec(*args, **kwargs):
# 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
Expand Down
4 changes: 2 additions & 2 deletions Lib/test/test_urllib.py
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,7 @@ def _reporthook(par1, par2, par3):

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()
Expand All @@ -729,7 +729,7 @@ def test_short_content_raises_ContentTooShortError_without_reporthook(self):
''')
with self.assertRaises(urllib.error.ContentTooShortError):
try:
urllib.request.urlretrieve('http://example.com/')
urllib.request.urlretrieve(support.TEST_HTTP_URL)
finally:
self.unfakehttp()

Expand Down
12 changes: 6 additions & 6 deletions Lib/test/test_urllib2net.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -173,7 +173,7 @@ def test_redirect_url_withfrag(self):
"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)
Expand Down Expand Up @@ -259,15 +259,15 @@ def _extra_handlers(self):
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)
self.assertIsNone(u.fp.raw._sock.gettimeout())

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:
Expand All @@ -279,7 +279,7 @@ def test_http_default_timeout(self):

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:
Expand All @@ -290,7 +290,7 @@ def test_http_no_timeout(self):
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)
Expand Down
6 changes: 4 additions & 2 deletions Lib/test/test_urllibnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import contextlib
import socket
import urllib.parse
import urllib.request
import os
import email.message
Expand All @@ -24,8 +25,9 @@ def tearDown(self):
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()


Expand Down
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit a40681d

Please sign in to comment.