'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.'

def test_errors(self):

    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.assertEqual(exc.faultCode, code)))
        dl.append(d)
    d = defer.DeferredList(dl, fireOnOneErrback=True)
    def cb(ign):
        for factory in self.factories:
            self.assertEqual(factory.headers['content-type'], 'text/xml;    charset=utf-8')
        self.flushLoggedErrors(TestRuntimeError, TestValueError)
    d.addCallback(cb)
    return d
