[Python-checkins] r72777 - in python/trunk: Lib/test/test_urllib2_localnet.py Misc/build.sh
collin.winter
python-checkins at python.org
Mon May 18 23:35:41 CEST 2009
Author: collin.winter
Date: Mon May 18 23:35:40 2009
New Revision: 72777
Log:
Issue 6032: fix refleaks in test_urllib2_localnet.
Modified:
python/trunk/Lib/test/test_urllib2_localnet.py
python/trunk/Misc/build.sh
Modified: python/trunk/Lib/test/test_urllib2_localnet.py
==============================================================================
--- python/trunk/Lib/test/test_urllib2_localnet.py (original)
+++ python/trunk/Lib/test/test_urllib2_localnet.py Mon May 18 23:35:40 2009
@@ -195,7 +195,11 @@
testing.
"""
- digest_auth_handler = DigestAuthHandler()
+ def __init__(self, digest_auth_handler, *args, **kwargs):
+ # This has to be set before calling our parent's __init__(), which will
+ # try to call do_GET().
+ self.digest_auth_handler = digest_auth_handler
+ BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
def log_message(self, format, *args):
# Uncomment the next line for debugging.
@@ -224,49 +228,50 @@
REALM = "TestRealm"
def setUp(self):
- FakeProxyHandler.digest_auth_handler.set_users({
- self.USER : self.PASSWD
- })
- FakeProxyHandler.digest_auth_handler.set_realm(self.REALM)
+ self.digest_auth_handler = DigestAuthHandler()
+ self.digest_auth_handler.set_users({self.USER: self.PASSWD})
+ self.digest_auth_handler.set_realm(self.REALM)
+ def create_fake_proxy_handler(*args, **kwargs):
+ return FakeProxyHandler(self.digest_auth_handler, *args, **kwargs)
- self.server = LoopbackHttpServerThread(FakeProxyHandler)
+ self.server = LoopbackHttpServerThread(create_fake_proxy_handler)
self.server.start()
self.server.ready.wait()
proxy_url = "http://127.0.0.1:%d" % self.server.port
handler = urllib2.ProxyHandler({"http" : proxy_url})
- self._digest_auth_handler = urllib2.ProxyDigestAuthHandler()
- self.opener = urllib2.build_opener(handler, self._digest_auth_handler)
+ self.proxy_digest_handler = urllib2.ProxyDigestAuthHandler()
+ self.opener = urllib2.build_opener(handler, self.proxy_digest_handler)
def tearDown(self):
self.server.stop()
def test_proxy_with_bad_password_raises_httperror(self):
- self._digest_auth_handler.add_password(self.REALM, self.URL,
+ self.proxy_digest_handler.add_password(self.REALM, self.URL,
self.USER, self.PASSWD+"bad")
- FakeProxyHandler.digest_auth_handler.set_qop("auth")
+ self.digest_auth_handler.set_qop("auth")
self.assertRaises(urllib2.HTTPError,
self.opener.open,
self.URL)
def test_proxy_with_no_password_raises_httperror(self):
- FakeProxyHandler.digest_auth_handler.set_qop("auth")
+ self.digest_auth_handler.set_qop("auth")
self.assertRaises(urllib2.HTTPError,
self.opener.open,
self.URL)
def test_proxy_qop_auth_works(self):
- self._digest_auth_handler.add_password(self.REALM, self.URL,
+ self.proxy_digest_handler.add_password(self.REALM, self.URL,
self.USER, self.PASSWD)
- FakeProxyHandler.digest_auth_handler.set_qop("auth")
+ self.digest_auth_handler.set_qop("auth")
result = self.opener.open(self.URL)
while result.read():
pass
result.close()
def test_proxy_qop_auth_int_works_or_throws_urlerror(self):
- self._digest_auth_handler.add_password(self.REALM, self.URL,
+ self.proxy_digest_handler.add_password(self.REALM, self.URL,
self.USER, self.PASSWD)
- FakeProxyHandler.digest_auth_handler.set_qop("auth-int")
+ self.digest_auth_handler.set_qop("auth-int")
try:
result = self.opener.open(self.URL)
except urllib2.URLError:
@@ -484,8 +489,7 @@
# the next line.
#test_support.requires("network")
- test_support.run_unittest(ProxyAuthTests)
- test_support.run_unittest(TestUrlopen)
+ test_support.run_unittest(ProxyAuthTests, TestUrlopen)
if __name__ == "__main__":
test_main()
Modified: python/trunk/Misc/build.sh
==============================================================================
--- python/trunk/Misc/build.sh (original)
+++ python/trunk/Misc/build.sh Mon May 18 23:35:40 2009
@@ -67,7 +67,7 @@
# Note: test_XXX (none currently) really leak, but are disabled
# so we don't send spam. Any test which really leaks should only
# be listed here if there are also test cases under Lib/test/leakers.
-LEAKY_TESTS="test_(asynchat|cmd_line|docxmlrpc|dumbdbm|file|ftplib|httpservers|imaplib|popen2|socket|smtplib|sys|telnetlib|threadedtempfile|threading|threadsignals|urllib2_localnet|xmlrpc)"
+LEAKY_TESTS="test_(asynchat|cmd_line|docxmlrpc|dumbdbm|file|ftplib|httpservers|imaplib|popen2|socket|smtplib|sys|telnetlib|threadedtempfile|threading|threadsignals|xmlrpc)"
# Skip these tests altogether when looking for leaks. These tests
# do not need to be stored above in LEAKY_TESTS too.
More information about the Python-checkins
mailing list