class TestTransport(unittest.TestCase): def setUp(self): from .server import server, start_server self.server = server Thread(target=start_server).start() self.client = ServerProxy('http://localhost:8000/RPC2', transport=LocustXmlRpcTransport()) global_stats.reset_all() def test_returns_something(self): res = self.client.add(2, 2) self.assertEqual(res, 4) stats = global_stats.get('/RPC2', 'xmlrpc') self.assertEqual(stats.num_requests, 1) def test_failure(self): self.client.failure('01', 'Test Error') stats = global_stats.get('/RPC2', 'xmlrpc') self.assertEqual(stats.num_failures, 1) def test_failure_not_found(self): self.client.method_doesnt_exist() stats = global_stats.get('/RPC2', 'xmlrpc') self.assertEqual(stats.num_failures, 1) def test_delay(self): delayed_ms = 500 res = self.client.delayed(delayed_ms) stats = global_stats.get('/RPC2', 'xmlrpc') self.assertEqual(res, delayed_ms) self.assertEqual(stats.num_requests, 1) self.assertGreaterEqual(stats.avg_response_time, delayed_ms) def tearDown(self): self.server.shutdown()