Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: third_party/twisted_8_1/twisted/web/test/test_xmlrpc.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/web/test/test_xmlrpc.py
diff --git a/third_party/twisted_8_1/twisted/web/test/test_xmlrpc.py b/third_party/twisted_8_1/twisted/web/test/test_xmlrpc.py
deleted file mode 100644
index c34430a2b32dbd68c18768481f377b110202b156..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/web/test/test_xmlrpc.py
+++ /dev/null
@@ -1,452 +0,0 @@
-# -*- test-case-name: twisted.web.test.test_xmlrpc -*-
-#
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Test XML-RPC support.
-"""
-
-try:
- import xmlrpclib
-except ImportError:
- xmlrpclib = None
- class XMLRPC: pass
-else:
- from twisted.web import xmlrpc
- from twisted.web.xmlrpc import XMLRPC, addIntrospection, _QueryFactory
-
-from twisted.trial import unittest
-from twisted.web import server, static, client, error, http
-from twisted.internet import reactor, defer
-from twisted.internet.error import ConnectionDone
-from twisted.python import failure
-
-
-class TestRuntimeError(RuntimeError):
- pass
-
-class TestValueError(ValueError):
- pass
-
-
-
-class Test(XMLRPC):
-
- FAILURE = 666
- NOT_FOUND = 23
- SESSION_EXPIRED = 42
-
- # the doc string is part of the test
- def xmlrpc_add(self, a, b):
- """
- This function add two numbers.
- """
- return a + b
-
- xmlrpc_add.signature = [['int', 'int', 'int'],
- ['double', 'double', 'double']]
-
- # the doc string is part of the test
- def xmlrpc_pair(self, string, num):
- """
- This function puts the two arguments in an array.
- """
- return [string, num]
-
- xmlrpc_pair.signature = [['array', 'string', 'int']]
-
- # the doc string is part of the test
- def xmlrpc_defer(self, x):
- """Help for defer."""
- return defer.succeed(x)
-
- def xmlrpc_deferFail(self):
- return defer.fail(TestValueError())
-
- # don't add a doc string, it's part of the test
- def xmlrpc_fail(self):
- raise TestRuntimeError
-
- def xmlrpc_fault(self):
- return xmlrpc.Fault(12, "hello")
-
- def xmlrpc_deferFault(self):
- return defer.fail(xmlrpc.Fault(17, "hi"))
-
- def xmlrpc_complex(self):
- return {"a": ["b", "c", 12, []], "D": "foo"}
-
- def xmlrpc_dict(self, map, key):
- return map[key]
-
- def _getFunction(self, functionPath):
- try:
- return XMLRPC._getFunction(self, functionPath)
- except xmlrpc.NoSuchFunction:
- if functionPath.startswith("SESSION"):
- raise xmlrpc.Fault(self.SESSION_EXPIRED,
- "Session non-existant/expired.")
- else:
- raise
-
- xmlrpc_dict.help = 'Help for dict.'
-
-class TestAuthHeader(Test):
- """
- This is used to get the header info so that we can test
- authentication.
- """
- def __init__(self):
- Test.__init__(self)
- self.request = None
-
- def render(self, request):
- self.request = request
- return Test.render(self, request)
-
- def xmlrpc_authinfo(self):
- return self.request.getUser(), self.request.getPassword()
-
-
-class TestQueryProtocol(xmlrpc.QueryProtocol):
- """
- QueryProtocol for tests that saves headers received inside the factory.
- """
- def handleHeader(self, key, val):
- self.factory.headers[key.lower()] = val
-
-
-class TestQueryFactory(xmlrpc._QueryFactory):
- """
- QueryFactory using L{TestQueryProtocol} for saving headers.
- """
- protocol = TestQueryProtocol
-
- def __init__(self, *args, **kwargs):
- self.headers = {}
- xmlrpc._QueryFactory.__init__(self, *args, **kwargs)
-
-
-class XMLRPCTestCase(unittest.TestCase):
-
- def setUp(self):
- self.p = reactor.listenTCP(0, server.Site(Test()),
- interface="127.0.0.1")
- self.port = self.p.getHost().port
- self.factories = []
-
- def tearDown(self):
- self.factories = []
- return self.p.stopListening()
-
- def queryFactory(self, *args, **kwargs):
- """
- Specific queryFactory for proxy that uses our custom
- L{TestQueryFactory}, and save factories.
- """
- factory = TestQueryFactory(*args, **kwargs)
- self.factories.append(factory)
- return factory
-
- def proxy(self):
- p = xmlrpc.Proxy("http://127.0.0.1:%d/" % self.port)
- p.queryFactory = self.queryFactory
- return p
-
- def test_results(self):
- inputOutput = [
- ("add", (2, 3), 5),
- ("defer", ("a",), "a"),
- ("dict", ({"a": 1}, "a"), 1),
- ("pair", ("a", 1), ["a", 1]),
- ("complex", (), {"a": ["b", "c", 12, []], "D": "foo"})]
-
- dl = []
- for meth, args, outp in inputOutput:
- d = self.proxy().callRemote(meth, *args)
- d.addCallback(self.assertEquals, outp)
- dl.append(d)
- return defer.DeferredList(dl, fireOnOneErrback=True)
-
- def test_errors(self):
- """
- Verify that for each way a method exposed via XML-RPC can fail, the
- correct 'Content-type' header is set in the response and that the
- client-side Deferred is errbacked with an appropriate C{Fault}
- instance.
- """
- dl = []
- for code, methodName in [(666, "fail"), (666, "deferFail"),
- (12, "fault"), (23, "noSuchMethod"),
- (17, "deferFault"), (42, "SESSION_TEST")]:
- d = self.proxy().callRemote(methodName)
- d = self.assertFailure(d, xmlrpc.Fault)
- d.addCallback(lambda exc, code=code:
- self.assertEquals(exc.faultCode, code))
- dl.append(d)
- d = defer.DeferredList(dl, fireOnOneErrback=True)
- def cb(ign):
- for factory in self.factories:
- self.assertEquals(factory.headers['content-type'],
- 'text/xml')
- self.flushLoggedErrors(TestRuntimeError, TestValueError)
- d.addCallback(cb)
- return d
-
- def test_errorGet(self):
- """
- A classic GET on the xml server should return a NOT_ALLOWED.
- """
- d = client.getPage("http://127.0.0.1:%d/" % (self.port,))
- d = self.assertFailure(d, error.Error)
- d.addCallback(
- lambda exc: self.assertEquals(int(exc.args[0]), http.NOT_ALLOWED))
- return d
-
- def test_errorXMLContent(self):
- """
- Test that an invalid XML input returns an L{xmlrpc.Fault}.
- """
- d = client.getPage("http://127.0.0.1:%d/" % (self.port,),
- method="POST", postdata="foo")
- def cb(result):
- self.assertRaises(xmlrpc.Fault, xmlrpclib.loads, result)
- d.addCallback(cb)
- return d
-
-
-class XMLRPCTestCase2(XMLRPCTestCase):
- """
- Test with proxy that doesn't add a slash.
- """
-
- def proxy(self):
- p = xmlrpc.Proxy("http://127.0.0.1:%d" % self.port)
- p.queryFactory = self.queryFactory
- return p
-
-
-
-class XMLRPCAllowNoneTestCase(unittest.TestCase):
- """
- Test with allowNone set to True.
-
- These are not meant to be exhaustive serialization tests, since
- L{xmlrpclib} does all of the actual serialization work. They are just
- meant to exercise a few codepaths to make sure we are calling into
- xmlrpclib correctly.
- """
-
- def setUp(self):
- self.p = reactor.listenTCP(
- 0, server.Site(Test(allowNone=True)), interface="127.0.0.1")
- self.port = self.p.getHost().port
-
-
- def tearDown(self):
- return self.p.stopListening()
-
-
- def proxy(self):
- return xmlrpc.Proxy("http://127.0.0.1:%d" % (self.port,),
- allowNone=True)
-
-
- def test_deferredNone(self):
- """
- Test that passing a C{None} as an argument to a remote method and
- returning a L{Deferred} which fires with C{None} properly passes
- </nil> over the network if allowNone is set to True.
- """
- d = self.proxy().callRemote('defer', None)
- d.addCallback(self.assertEquals, None)
- return d
-
-
- def test_dictWithNoneValue(self):
- """
- Test that return a C{dict} with C{None} as a value works properly.
- """
- d = self.proxy().callRemote('defer', {'a': None})
- d.addCallback(self.assertEquals, {'a': None})
- return d
-
-
-
-class XMLRPCTestAuthenticated(XMLRPCTestCase):
- """
- Test with authenticated proxy. We run this with the same inout/ouput as
- above.
- """
- user = "username"
- password = "asecret"
-
- def setUp(self):
- self.p = reactor.listenTCP(0, server.Site(TestAuthHeader()),
- interface="127.0.0.1")
- self.port = self.p.getHost().port
- self.factories = []
-
-
- def test_authInfoInURL(self):
- p = xmlrpc.Proxy("http://%s:%s@127.0.0.1:%d/" % (
- self.user, self.password, self.port))
- d = p.callRemote("authinfo")
- d.addCallback(self.assertEquals, [self.user, self.password])
- return d
-
-
- def test_explicitAuthInfo(self):
- p = xmlrpc.Proxy("http://127.0.0.1:%d/" % (
- self.port,), self.user, self.password)
- d = p.callRemote("authinfo")
- d.addCallback(self.assertEquals, [self.user, self.password])
- return d
-
-
- def test_explicitAuthInfoOverride(self):
- p = xmlrpc.Proxy("http://wrong:info@127.0.0.1:%d/" % (
- self.port,), self.user, self.password)
- d = p.callRemote("authinfo")
- d.addCallback(self.assertEquals, [self.user, self.password])
- return d
-
-
-class XMLRPCTestIntrospection(XMLRPCTestCase):
-
- def setUp(self):
- xmlrpc = Test()
- addIntrospection(xmlrpc)
- self.p = reactor.listenTCP(0, server.Site(xmlrpc),interface="127.0.0.1")
- self.port = self.p.getHost().port
- self.factories = []
-
- def test_listMethods(self):
-
- def cbMethods(meths):
- meths.sort()
- self.failUnlessEqual(
- meths,
- ['add', 'complex', 'defer', 'deferFail',
- 'deferFault', 'dict', 'fail', 'fault',
- 'pair', 'system.listMethods',
- 'system.methodHelp',
- 'system.methodSignature'])
-
- d = self.proxy().callRemote("system.listMethods")
- d.addCallback(cbMethods)
- return d
-
- def test_methodHelp(self):
- inputOutputs = [
- ("defer", "Help for defer."),
- ("fail", ""),
- ("dict", "Help for dict.")]
-
- dl = []
- for meth, expected in inputOutputs:
- d = self.proxy().callRemote("system.methodHelp", meth)
- d.addCallback(self.assertEquals, expected)
- dl.append(d)
- return defer.DeferredList(dl, fireOnOneErrback=True)
-
- def test_methodSignature(self):
- inputOutputs = [
- ("defer", ""),
- ("add", [['int', 'int', 'int'],
- ['double', 'double', 'double']]),
- ("pair", [['array', 'string', 'int']])]
-
- dl = []
- for meth, expected in inputOutputs:
- d = self.proxy().callRemote("system.methodSignature", meth)
- d.addCallback(self.assertEquals, expected)
- dl.append(d)
- return defer.DeferredList(dl, fireOnOneErrback=True)
-
-
-class XMLRPCClientErrorHandling(unittest.TestCase):
- """
- Test error handling on the xmlrpc client.
- """
- def setUp(self):
- self.resource = static.File(__file__)
- self.resource.isLeaf = True
- self.port = reactor.listenTCP(0, server.Site(self.resource),
- interface='127.0.0.1')
-
- def tearDown(self):
- return self.port.stopListening()
-
- def test_erroneousResponse(self):
- """
- Test that calling the xmlrpc client on a static http server raises
- an exception.
- """
- proxy = xmlrpc.Proxy("http://127.0.0.1:%d/" %
- (self.port.getHost().port,))
- return self.assertFailure(proxy.callRemote("someMethod"), Exception)
-
-
-
-class TestQueryFactoryParseResponse(unittest.TestCase):
- """
- Test the behaviour of L{_QueryFactory.parseResponse}.
- """
-
- def setUp(self):
- # The _QueryFactory that we are testing. We don't care about any
- # of the constructor parameters.
- self.queryFactory = _QueryFactory(
- path=None, host=None, method='POST', user=None, password=None,
- allowNone=False, args=())
- # An XML-RPC response that will parse without raising an error.
- self.goodContents = xmlrpclib.dumps(('',))
- # An 'XML-RPC response' that will raise a parsing error.
- self.badContents = 'invalid xml'
- # A dummy 'reason' to pass to clientConnectionLost. We don't care
- # what it is.
- self.reason = failure.Failure(ConnectionDone())
-
-
- def test_parseResponseCallbackSafety(self):
- """
- We can safely call L{_QueryFactory.clientConnectionLost} as a callback
- of L{_QueryFactory.parseResponse}.
- """
- d = self.queryFactory.deferred
- # The failure mode is that this callback raises an AlreadyCalled
- # error. We have to add it now so that it gets called synchronously
- # and triggers the race condition.
- d.addCallback(self.queryFactory.clientConnectionLost, self.reason)
- self.queryFactory.parseResponse(self.goodContents)
- return d
-
-
- def test_parseResponseErrbackSafety(self):
- """
- We can safely call L{_QueryFactory.clientConnectionLost} as an errback
- of L{_QueryFactory.parseResponse}.
- """
- d = self.queryFactory.deferred
- # The failure mode is that this callback raises an AlreadyCalled
- # error. We have to add it now so that it gets called synchronously
- # and triggers the race condition.
- d.addErrback(self.queryFactory.clientConnectionLost, self.reason)
- self.queryFactory.parseResponse(self.badContents)
- return d
-
-
- def test_badStatusErrbackSafety(self):
- """
- We can safely call L{_QueryFactory.clientConnectionLost} as an errback
- of L{_QueryFactory.badStatus}.
- """
- d = self.queryFactory.deferred
- # The failure mode is that this callback raises an AlreadyCalled
- # error. We have to add it now so that it gets called synchronously
- # and triggers the race condition.
- d.addErrback(self.queryFactory.clientConnectionLost, self.reason)
- self.queryFactory.badStatus('status', 'message')
- return d
« no previous file with comments | « third_party/twisted_8_1/twisted/web/test/test_xml.py ('k') | third_party/twisted_8_1/twisted/web/topfiles/NEWS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698