@@ -773,51 +773,23 @@ def testServiceUnavailable(self):
773773 self .assertFalse (parser .can_fetch ("*" , url + '/path/file.html' ))
774774
775775
776- class UserAgentRobotHandler ( BaseHTTPRequestHandler ):
776+ class UserAgentSiteTestCase ( BaseLocalNetworkTestCase , unittest . TestCase ):
777777
778- def do_GET (self ):
779- if self .headers .get ('User-Agent' ).startswith ('Python-urllib' ):
780- self .send_error (403 , "Forbidden access" )
781- else :
782- self .send_response (200 )
783- self .end_headers ()
784- self .wfile .write (b"User-agent: *\n Disallow:" )
785-
786- def log_message (self , format , * args ):
787- pass
788-
789-
790- @unittest .skipUnless (
791- support .has_socket_support ,
792- "Socket server requires working socket."
793- )
794- class UserAgentSiteTestCase (unittest .TestCase ):
795-
796- def setUp (self ):
797- # clear _opener global variable
798- self .addCleanup (urllib .request .urlcleanup )
799-
800- self .server = HTTPServer ((socket_helper .HOST , 0 ), UserAgentRobotHandler )
801-
802- self .t = threading .Thread (
803- name = 'HTTPServer serving' ,
804- target = self .server .serve_forever ,
805- # Short poll interval to make the test finish quickly.
806- # Time between requests is short enough that we won't wake
807- # up spuriously too many times.
808- kwargs = {'poll_interval' :0.01 })
809- self .t .daemon = True # In case this function raises.
810- self .t .start ()
778+ class RobotHandler (BaseHTTPRequestHandler ):
779+ def do_GET (self ):
780+ if self .headers .get ('User-Agent' ).startswith ('Python-urllib' ):
781+ self .send_error (403 , "Forbidden access" )
782+ else :
783+ self .send_response (200 )
784+ self .end_headers ()
785+ self .wfile .write (b"User-agent: *\n Disallow:" )
811786
812- def tearDown (self ):
813- self .server .shutdown ()
814- self .t .join ()
815- self .server .server_close ()
787+ def log_message (self , format , * args ):
788+ pass
816789
817- @threading_helper .reap_threads
818790 def testUserAgentFilteringSite (self ):
819791 addr = self .server .server_address
820- url = 'http://' + socket_helper .HOST + ':' + str ( addr [1 ])
792+ url = f 'http://{ socket_helper .HOST } : { addr [1 ]} '
821793 robots_url = url + "/robots.txt"
822794 file_url = url + "/document"
823795 parser = urllib .robotparser .RobotFileParser ()
0 commit comments