@@ -278,6 +278,7 @@ def setUp(self):
278
278
self ._threads = test_support .threading_setup ()
279
279
280
280
def tearDown (self ):
281
+ self .doCleanups ()
281
282
test_support .threading_cleanup (* self ._threads )
282
283
283
284
@@ -296,10 +297,7 @@ def http_server_with_basic_auth_handler(*args, **kwargs):
296
297
self .server_url = 'http://127.0.0.1:%s' % self .server .port
297
298
self .server .start ()
298
299
self .server .ready .wait ()
299
-
300
- def tearDown (self ):
301
- self .server .stop ()
302
- super (BasicAuthTests , self ).tearDown ()
300
+ self .addCleanup (self .server .stop )
303
301
304
302
def test_basic_auth_success (self ):
305
303
ah = urllib2 .HTTPBasicAuthHandler ()
@@ -347,15 +345,12 @@ def create_fake_proxy_handler(*args, **kwargs):
347
345
self .server = LoopbackHttpServerThread (create_fake_proxy_handler )
348
346
self .server .start ()
349
347
self .server .ready .wait ()
348
+ self .addCleanup (self .server .stop )
350
349
proxy_url = "http://127.0.0.1:%d" % self .server .port
351
350
handler = urllib2 .ProxyHandler ({"http" : proxy_url })
352
351
self .proxy_digest_handler = urllib2 .ProxyDigestAuthHandler ()
353
352
self .opener = urllib2 .build_opener (handler , self .proxy_digest_handler )
354
353
355
- def tearDown (self ):
356
- self .server .stop ()
357
- super (ProxyAuthTests , self ).tearDown ()
358
-
359
354
def test_proxy_with_bad_password_raises_httperror (self ):
360
355
self .proxy_digest_handler .add_password (self .REALM , self .URL ,
361
356
self .USER , self .PASSWD + "bad" )
@@ -472,6 +467,7 @@ def start_server(self, responses):
472
467
self .server = LoopbackHttpServerThread (handler )
473
468
self .server .start ()
474
469
self .server .ready .wait ()
470
+ self .addCleanup (self .server .stop )
475
471
port = self .server .port
476
472
handler .port = port
477
473
return handler
@@ -496,65 +492,53 @@ def test_redirection(self):
496
492
497
493
handler = self .start_server (responses )
498
494
499
- try :
500
- f = urllib2 .urlopen ('http://localhost:%s/' % handler .port )
501
- data = f .read ()
502
- f .close ()
495
+ f = urllib2 .urlopen ('http://localhost:%s/' % handler .port )
496
+ data = f .read ()
497
+ f .close ()
503
498
504
- self .assertEqual (data , expected_response )
505
- self .assertEqual (handler .requests , ['/' , '/somewhere_else' ])
506
- finally :
507
- self .server .stop ()
499
+ self .assertEqual (data , expected_response )
500
+ self .assertEqual (handler .requests , ['/' , '/somewhere_else' ])
508
501
509
502
510
503
def test_404 (self ):
511
504
expected_response = 'Bad bad bad...'
512
505
handler = self .start_server ([(404 , [], expected_response )])
513
506
514
507
try :
515
- try :
516
- urllib2 .urlopen ('http://localhost:%s/weeble' % handler .port )
517
- except urllib2 .URLError , f :
518
- pass
519
- else :
520
- self .fail ('404 should raise URLError' )
508
+ urllib2 .urlopen ('http://localhost:%s/weeble' % handler .port )
509
+ except urllib2 .URLError , f :
510
+ pass
511
+ else :
512
+ self .fail ('404 should raise URLError' )
521
513
522
- data = f .read ()
523
- f .close ()
514
+ data = f .read ()
515
+ f .close ()
524
516
525
- self .assertEqual (data , expected_response )
526
- self .assertEqual (handler .requests , ['/weeble' ])
527
- finally :
528
- self .server .stop ()
517
+ self .assertEqual (data , expected_response )
518
+ self .assertEqual (handler .requests , ['/weeble' ])
529
519
530
520
531
521
def test_200 (self ):
532
522
expected_response = 'pycon 2008...'
533
523
handler = self .start_server ([(200 , [], expected_response )])
534
524
535
- try :
536
- f = urllib2 .urlopen ('http://localhost:%s/bizarre' % handler .port )
537
- data = f .read ()
538
- f .close ()
525
+ f = urllib2 .urlopen ('http://localhost:%s/bizarre' % handler .port )
526
+ data = f .read ()
527
+ f .close ()
539
528
540
- self .assertEqual (data , expected_response )
541
- self .assertEqual (handler .requests , ['/bizarre' ])
542
- finally :
543
- self .server .stop ()
529
+ self .assertEqual (data , expected_response )
530
+ self .assertEqual (handler .requests , ['/bizarre' ])
544
531
545
532
def test_200_with_parameters (self ):
546
533
expected_response = 'pycon 2008...'
547
534
handler = self .start_server ([(200 , [], expected_response )])
548
535
549
- try :
550
- f = urllib2 .urlopen ('http://localhost:%s/bizarre' % handler .port , 'get=with_feeling' )
551
- data = f .read ()
552
- f .close ()
536
+ f = urllib2 .urlopen ('http://localhost:%s/bizarre' % handler .port , 'get=with_feeling' )
537
+ data = f .read ()
538
+ f .close ()
553
539
554
- self .assertEqual (data , expected_response )
555
- self .assertEqual (handler .requests , ['/bizarre' , 'get=with_feeling' ])
556
- finally :
557
- self .server .stop ()
540
+ self .assertEqual (data , expected_response )
541
+ self .assertEqual (handler .requests , ['/bizarre' , 'get=with_feeling' ])
558
542
559
543
def test_https (self ):
560
544
handler = self .start_https_server ()
@@ -603,52 +587,40 @@ def cb_sni(ssl_sock, server_name, initial_context):
603
587
def test_sending_headers (self ):
604
588
handler = self .start_server ([(200 , [], "we don't care" )])
605
589
606
- try :
607
- req = urllib2 .Request ("http://localhost:%s/" % handler .port ,
608
- headers = {'Range' : 'bytes=20-39' })
609
- urllib2 .urlopen (req )
610
- self .assertEqual (handler .headers_received ['Range' ], 'bytes=20-39' )
611
- finally :
612
- self .server .stop ()
590
+ req = urllib2 .Request ("http://localhost:%s/" % handler .port ,
591
+ headers = {'Range' : 'bytes=20-39' })
592
+ urllib2 .urlopen (req )
593
+ self .assertEqual (handler .headers_received ['Range' ], 'bytes=20-39' )
613
594
614
595
def test_basic (self ):
615
596
handler = self .start_server ([(200 , [], "we don't care" )])
616
597
598
+ open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
599
+ for attr in ("read" , "close" , "info" , "geturl" ):
600
+ self .assertTrue (hasattr (open_url , attr ), "object returned from "
601
+ "urlopen lacks the %s attribute" % attr )
617
602
try :
618
- open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
619
- for attr in ("read" , "close" , "info" , "geturl" ):
620
- self .assertTrue (hasattr (open_url , attr ), "object returned from "
621
- "urlopen lacks the %s attribute" % attr )
622
- try :
623
- self .assertTrue (open_url .read (), "calling 'read' failed" )
624
- finally :
625
- open_url .close ()
603
+ self .assertTrue (open_url .read (), "calling 'read' failed" )
626
604
finally :
627
- self . server . stop ()
605
+ open_url . close ()
628
606
629
607
def test_info (self ):
630
608
handler = self .start_server ([(200 , [], "we don't care" )])
631
609
632
- try :
633
- open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
634
- info_obj = open_url .info ()
635
- self .assertIsInstance (info_obj , mimetools .Message ,
636
- "object returned by 'info' is not an "
637
- "instance of mimetools.Message" )
638
- self .assertEqual (info_obj .getsubtype (), "plain" )
639
- finally :
640
- self .server .stop ()
610
+ open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
611
+ info_obj = open_url .info ()
612
+ self .assertIsInstance (info_obj , mimetools .Message ,
613
+ "object returned by 'info' is not an "
614
+ "instance of mimetools.Message" )
615
+ self .assertEqual (info_obj .getsubtype (), "plain" )
641
616
642
617
def test_geturl (self ):
643
618
# Make sure same URL as opened is returned by geturl.
644
619
handler = self .start_server ([(200 , [], "we don't care" )])
645
620
646
- try :
647
- open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
648
- url = open_url .geturl ()
649
- self .assertEqual (url , "http://localhost:%s" % handler .port )
650
- finally :
651
- self .server .stop ()
621
+ open_url = urllib2 .urlopen ("http://localhost:%s" % handler .port )
622
+ url = open_url .geturl ()
623
+ self .assertEqual (url , "http://localhost:%s" % handler .port )
652
624
653
625
654
626
def test_bad_address (self ):
@@ -682,26 +654,21 @@ def test_bad_address(self):
682
654
def test_iteration (self ):
683
655
expected_response = "pycon 2008..."
684
656
handler = self .start_server ([(200 , [], expected_response )])
685
- try :
686
- data = urllib2 .urlopen ("http://localhost:%s" % handler .port )
687
- for line in data :
688
- self .assertEqual (line , expected_response )
689
- finally :
690
- self .server .stop ()
657
+
658
+ data = urllib2 .urlopen ("http://localhost:%s" % handler .port )
659
+ for line in data :
660
+ self .assertEqual (line , expected_response )
691
661
692
662
def ztest_line_iteration (self ):
693
663
lines = ["We\n " , "got\n " , "here\n " , "verylong " * 8192 + "\n " ]
694
664
expected_response = "" .join (lines )
695
665
handler = self .start_server ([(200 , [], expected_response )])
696
- try :
697
- data = urllib2 .urlopen ("http://localhost:%s" % handler .port )
698
- for index , line in enumerate (data ):
699
- self .assertEqual (line , lines [index ],
700
- "Fetched line number %s doesn't match expected:\n "
701
- " Expected length was %s, got %s" %
702
- (index , len (lines [index ]), len (line )))
703
- finally :
704
- self .server .stop ()
666
+ data = urllib2 .urlopen ("http://localhost:%s" % handler .port )
667
+ for index , line in enumerate (data ):
668
+ self .assertEqual (line , lines [index ],
669
+ "Fetched line number %s doesn't match expected:\n "
670
+ " Expected length was %s, got %s" %
671
+ (index , len (lines [index ]), len (line )))
705
672
self .assertEqual (index + 1 , len (lines ))
706
673
707
674
def test_main ():
0 commit comments