MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_keepalive_disconnect

Method test_keepalive_disconnect

Lib/test/test_xmlrpc.py:326–363  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

324 self.assertTrue(has_ssl)
325
326 def test_keepalive_disconnect(self):
327 class RequestHandler(http.server.BaseHTTPRequestHandler):
328 protocol_version = "HTTP/1.1"
329 handled = False
330
331 def do_POST(self):
332 length = int(self.headers.get("Content-Length"))
333 self.rfile.read(length)
334 if self.handled:
335 self.close_connection = True
336 return
337 response = xmlrpclib.dumps((5,), methodresponse=True)
338 response = response.encode()
339 self.send_response(http.HTTPStatus.OK)
340 self.send_header("Content-Length", len(response))
341 self.end_headers()
342 self.wfile.write(response)
343 self.handled = True
344 self.close_connection = False
345
346 def log_message(self, format, *args):
347 # don't clobber sys.stderr
348 pass
349
350 def run_server():
351 server.socket.settimeout(float(1)) # Don't hang if client fails
352 server.handle_request() # First request and attempt at second
353 server.handle_request() # Retried second request
354
355 server = http.server.HTTPServer((socket_helper.HOST, 0), RequestHandler)
356 self.addCleanup(server.server_close)
357 thread = threading.Thread(target=run_server)
358 thread.start()
359 self.addCleanup(thread.join)
360 url = "http://{}:{}/".format(*server.server_address)
361 with xmlrpclib.ServerProxy(url) as p:
362 self.assertEqual(p.method(), 5)
363 self.assertEqual(p.method(), 5)
364
365
366class SimpleXMLRPCDispatcherTestCase(unittest.TestCase):

Callers

nothing calls this directly

Calls 5

startMethod · 0.95
addCleanupMethod · 0.80
formatMethod · 0.45
assertEqualMethod · 0.45
methodMethod · 0.45

Tested by

no test coverage detected