from contextlib import closing import urllib2 import unittest import sys def fetch_url2(url, timeout=7): request = urllib2.Request(url) with closing(urllib2.build_opener().open(request, timeout=timeout)) as response: return class Test(unittest.TestCase): def test_fetch_url_1000x(self): for x in range(1000): try: # timeout set to 2ms to generate as many errors as posible fetch_url2('http://example.com/', timeout=.002) sys.stderr.write('.');sys.stderr.flush() except urllib2.URLError: sys.stderr.write('x');sys.stderr.flush() test_suite = unittest.TestSuite([Test("test_fetch_url_1000x")]) if __name__ == "__main__": import os print "PID: %d" %os.getpid() unittest.main()