def test_timeout(self): """ Google doesn't offer any services on our crazy ports """ addr = 'http://google.com:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_1, connectTimeout=0.1) d = proxy.callRemote('sleep', 5) def finished(result): self.assertTrue(isinstance(result.value, TimeoutError)) d.addErrback(finished) return d
def test_keywordsV2(self): data = 'some random string' addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_2) d = proxy.callRemote('echo', data=data) def finished(result): self.assertEquals(result, data) d.addCallback(finished) return d
def test_anonymousError(self): addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, credentials=Anonymous()) d = proxy.callRemote('echo', '') e = self.assertFailure(d, jsonrpc.JSONRPCError) def finished(result): self.assertEquals(result.strerror, 'Unauthorized') self.assertEquals(result.errno, jsonrpc.INVALID_REQUEST) e.addCallback(finished) return d
def test_anonymousLogin(self): data = 'some random string' addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_1, credentials=Anonymous()) d = proxy.callRemote('echo', data) def finished(result): self.assertEquals(result, data) d.addCallback(finished) return d
def test_callRemoteV1NoMethod(self): addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_1) d = proxy.callRemote('nosuchmethod') e = self.assertFailure(d, jsonrpc.JSONRPCError) def finished(result): self.assertEquals(result.strerror, 'Method nosuchmethod not found') self.assertEquals(result.errno, jsonrpc.METHOD_NOT_FOUND) self.assertEquals(result.version, jsonrpc.VERSION_1) e.addCallback(finished) return e
def test_loginWrongUser(self): addr = 'http://localhost:%s' % self.portNumber credentials = UsernamePassword('wrong user', 'password1') proxy = Proxy(addr, credentials=credentials) d = proxy.callRemote('echo', '') e = self.assertFailure(d, jsonrpc.JSONRPCError) def finished(result): self.assertEquals(result.strerror, 'Unauthorized') self.assertEquals(result.errno, jsonrpc.INVALID_REQUEST) e.addCallback(finished) return d
def test_loginOk(self): data = 'some random string' addr = 'http://localhost:%s' % self.portNumber credentials = UsernamePassword('user', 'password') proxy = Proxy(addr, credentials=credentials) d = proxy.callRemote('echo', data) def finished(result): self.assertEquals(result, data) d.addCallback(finished) return d
def test_callRemoteV2InvalidParams(self): addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_2) d = proxy.callRemote('echo', 'abc', 'def') e = self.assertFailure(d, jsonrpc.JSONRPCError) def finished(result): msg = 'jsonrpc_echo() takes exactly 2 arguments (3 given)' self.assertEquals(result.strerror, msg) self.assertEquals(result.errno, jsonrpc.INVALID_PARAMS) self.assertEquals(result.version, unicode(jsonrpc.VERSION_2)) e.addCallback(finished) return e
def test_keywordsUnexpected(self): data = 'some random string' addr = 'http://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_1) d = proxy.callRemote('echo', wrongname=data) e = self.assertFailure(d, jsonrpc.JSONRPCError) def finished(result): msg = 'jsonrpc_echo() got an unexpected keyword argument ' + \ '\'wrongname\'' self.assertEquals(result.strerror, msg) self.assertEquals(result.errno, jsonrpc.INVALID_PARAMS) e.addCallback(finished) return d
def test_callRemote(self): """ The test itself passes, but trial raises "Reactor was unclean" after tearDown.. Might be related to http://twistedmatrix.com/trac/ticket/5118 """ data = 'some random string' addr = 'https://localhost:%s' % self.portNumber proxy = Proxy(addr, jsonrpc.VERSION_1, contextFactory=WebClientContextFactory()) d = proxy.callRemote('echo', data) def finished(result): self.assertEquals(result, data) d.addCallback(finished) return d
def printError(error): print 'error', error.value def shutDown(data): print "Shutting down reactor..." reactor.stop() address = 'http://localhost:8999' credentials=UsernamePassword('user123', 'password456') proxy = Proxy(address, credentials=credentials) ds = [] d = proxy.callRemote('echo', ['ajajaj', 'bjbjbj']) d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('add', 14, 15) d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('mysql_first_user') d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('none') d.addCallbacks(printValue, printError) ds.append(d)
def printError(error): print 'error', error.value def shutDown(data): print "Shutting down reactor..." reactor.stop() address = 'http://localhost:8999' credentials = UsernamePassword('user123', 'password456') proxy = Proxy(address, credentials=credentials) ds = [] d = proxy.callRemote('echo', ['ajajaj', 'bjbjbj']) d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('add', 14, 15) d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('mysql_first_user') d.addCallbacks(printValue, printError) ds.append(d) d = proxy.callRemote('none') d.addCallbacks(printValue, printError) ds.append(d)