bpo-37421: urllib.request tests call urlcleanup() (GH-14529)

urllib.request tests now call urlcleanup() to remove temporary files
created by urlretrieve() tests and to clear the _opener global
variable set by urlopen() and functions calling indirectly urlopen().

regrtest now checks if urllib.request._url_tempfiles and
urllib.request._opener are changed by tests.
This commit is contained in:
Victor Stinner 2019-07-02 14:50:19 +02:00 committed by GitHub
parent 039fb49c18
commit 7cb9204ee1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 62 additions and 0 deletions

View file

@ -25,6 +25,9 @@ class URLTimeoutTest(unittest.TestCase):
socket.setdefaulttimeout(None)
def testURLread(self):
# clear _opener global variable
self.addCleanup(urllib.request.urlcleanup)
domain = urllib.parse.urlparse(support.TEST_HTTP_URL).netloc
with support.transient_internet(domain):
f = urllib.request.urlopen(support.TEST_HTTP_URL)
@ -48,6 +51,10 @@ class urlopenNetworkTests(unittest.TestCase):
url = 'http://www.pythontest.net/'
def setUp(self):
# clear _opener global variable
self.addCleanup(urllib.request.urlcleanup)
@contextlib.contextmanager
def urlopen(self, *args, **kwargs):
resource = args[0]
@ -144,6 +151,10 @@ class urlopenNetworkTests(unittest.TestCase):
class urlretrieveNetworkTests(unittest.TestCase):
"""Tests urllib.request.urlretrieve using the network."""
def setUp(self):
# remove temporary files created by urlretrieve()
self.addCleanup(urllib.request.urlcleanup)
@contextlib.contextmanager
def urlretrieve(self, *args, **kwargs):
resource = args[0]