def test_exposed_authenticate(self): d = defer.Deferred() def auth(request, u, p): try: self.assertEqual(request, 'foo') self.assertEqual(u, 'u') self.assertEqual(p, 'p') except: d.errback(failure.Failure()) else: d.callback(None) auth = gateway.expose_request(auth) gw = twisted.TwistedGateway({'echo': lambda x: x}, authenticator=auth) self.service_request = gateway.ServiceRequest( None, gw.services['echo'], None ) gw.authenticateRequest( self.service_request, 'u', 'p', http_request='foo' ) return d
def test_exposed_preprocessor(self): d = defer.Deferred() def preprocessor(http_request, service_request): return reactor.callLater(0, lambda: True) preprocessor = gateway.expose_request(preprocessor) gw = twisted.TwistedGateway( {'echo': lambda x: x}, expose_request=False, preprocessor=preprocessor ) proc = twisted.AMF3RequestProcessor(gw) request = remoting.Request( 'null', body=[ messaging.RemotingMessage(body=['spam.eggs'], operation='echo') ] ) def cb(result): try: self.assertTrue(result) except: d.errback() else: d.callback(None) proc(request).addCallback(cb).addErrback(lambda failure: d.errback()) return d
def test_decorator(self): def echo(x): return x gateway.expose_request(echo) gw = gateway.BaseGateway() gw.addService(echo, 'test') envelope = remoting.Envelope() request = remoting.Request('test') envelope['/1'] = request service_request = gateway.ServiceRequest(envelope, gw.services['test'], None) self.assertTrue(gw.mustExposeRequest(service_request))
def test_exposed_preprocessor_no_request(self): d = defer.Deferred() def pp(hr, sr): self.assertEqual(hr, None) self.assertIdentical(sr, self.service_request) d.callback(None) pp = gateway.expose_request(pp) gw = twisted.TwistedGateway({'echo': lambda x: x}, preprocessor=pp) self.service_request = gateway.ServiceRequest(None, gw.services['echo'], None) gw.preprocessRequest(self.service_request) return d
def test_exposed_preprocessor(self): d = defer.Deferred() def pp(hr, sr): self.assertEquals(hr, "hello") self.assertIdentical(sr, self.service_request) d.callback(None) pp = gateway.expose_request(pp) gw = _twisted.TwistedGateway({"echo": lambda x: x}, preprocessor=pp) self.service_request = gateway.ServiceRequest(None, gw.services["echo"], None) gw.preprocessRequest(self.service_request, http_request="hello") return d
def test_exposed_preprocessor(self): d = defer.Deferred() def preprocessor(http_request, service_request): return reactor.callLater(0, lambda: True) preprocessor = gateway.expose_request(preprocessor) p = self.getProcessor({'echo': lambda x: x}, preprocessor=preprocessor) request = remoting.Request('echo', envelope=remoting.Envelope()) def cb(result): self.assertTrue(result) d.callback(None) p(request).addCallback(cb).addErrback(lambda failure: d.errback()) return d
def test_exposed_preprocessor(self): d = defer.Deferred() def preprocessor(http_request, service_request): return reactor.callLater(0, lambda: True) preprocessor = gateway.expose_request(preprocessor) gw = _twisted.TwistedGateway({"echo": lambda x: x}, preprocessor=preprocessor) proc = _twisted.AMF0RequestProcessor(gw) request = remoting.Request("echo", envelope=remoting.Envelope()) def cb(result): self.assertTrue(result) d.callback(None) proc(request).addCallback(cb).addErrback(lambda failure: d.errback()) return d
def test_exposed_authenticate(self): d = defer.Deferred() def auth(request, u, p): try: self.assertEquals(request, "foo") self.assertEquals(u, "u") self.assertEquals(p, "p") except: d.errback(failure.Failure()) else: d.callback(None) auth = gateway.expose_request(auth) gw = _twisted.TwistedGateway({"echo": lambda x: x}, authenticator=auth) self.service_request = gateway.ServiceRequest(None, gw.services["echo"], None) gw.authenticateRequest(self.service_request, "u", "p", http_request="foo") return d
def test_expose_request_decorator(self): def echo(x): return x def exposed_auth(request, username, password): return self._auth(username, password) exposed_auth = gateway.expose_request(exposed_auth) echo = gateway.authenticate(echo, exposed_auth) gw = gateway.BaseGateway({'echo': echo}) envelope = remoting.Envelope() request = remoting.Request('echo', body=['spam']) envelope.headers['Credentials'] = dict(userid='fred', password='******') envelope['/1'] = request processor = gw.getProcessor(request) response = processor(request) self.assertEqual(response.status, remoting.STATUS_OK) self.assertEqual(response.body, 'spam')
def test_expose_request_decorator(self): def echo(x): return x def exposed_auth(request, username, password): return self._auth(username, password) exposed_auth = gateway.expose_request(exposed_auth) echo = gateway.authenticate(echo, exposed_auth) gw = gateway.BaseGateway({'echo': echo}) envelope = remoting.Envelope() request = remoting.Request('echo', body=['spam']) envelope.headers['Credentials'] = dict(userid='fred', password='******') envelope['/1'] = request processor = gw.getProcessor(request) response = processor(request) self.assertEquals(response.status, remoting.STATUS_OK) self.assertEquals(response.body, 'spam')
def test_expose_request_decorator(self): def echo(x): return x def exposed_auth(request, username, password): return self._auth(username, password) exposed_auth = gateway.expose_request(exposed_auth) echo = gateway.authenticate(echo, exposed_auth) gw = gateway.BaseGateway({"echo": echo}) envelope = remoting.Envelope() request = remoting.Request("echo", body=["spam"]) envelope.headers["Credentials"] = dict(userid="fred", password="******") envelope["/1"] = request processor = gw.getProcessor(request) response = processor(request) self.assertEqual(response.status, remoting.STATUS_OK) self.assertEqual(response.body, "spam")