mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Issue #20627: xmlrpc.client.ServerProxy is now a context manager.
Patch by Claudiu Popa.
This commit is contained in:
parent
051f37d2e7
commit
33a4000374
5 changed files with 42 additions and 10 deletions
|
@ -713,6 +713,23 @@ class SimpleServerTestCase(BaseServerTestCase):
|
|||
conn.request('POST', '/RPC2 HTTP/1.0\r\nContent-Length: 100\r\n\r\nbye')
|
||||
conn.close()
|
||||
|
||||
def test_context_manager(self):
|
||||
with xmlrpclib.ServerProxy(URL) as server:
|
||||
server.add(2, 3)
|
||||
self.assertNotEqual(server('transport')._connection,
|
||||
(None, None))
|
||||
self.assertEqual(server('transport')._connection,
|
||||
(None, None))
|
||||
|
||||
def test_context_manager_method_error(self):
|
||||
try:
|
||||
with xmlrpclib.ServerProxy(URL) as server:
|
||||
server.add(2, "a")
|
||||
except xmlrpclib.Fault:
|
||||
pass
|
||||
self.assertEqual(server('transport')._connection,
|
||||
(None, None))
|
||||
|
||||
|
||||
class MultiPathServerTestCase(BaseServerTestCase):
|
||||
threadFunc = staticmethod(http_multi_server)
|
||||
|
@ -898,6 +915,7 @@ class ServerProxyTestCase(unittest.TestCase):
|
|||
p = xmlrpclib.ServerProxy(self.url, transport=t)
|
||||
self.assertEqual(p('transport'), t)
|
||||
|
||||
|
||||
# This is a contrived way to make a failure occur on the server side
|
||||
# in order to test the _send_traceback_header flag on the server
|
||||
class FailingMessageClass(http.client.HTTPMessage):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue