def setUp(self): self.network = MockServiceNetwork() self.coordinator = self.network.add_service(Coordinator, port=42400) self.upper_container = self.network.add_service(Upper) self.client_container = self.network.add_service(ClientInterface) self.network.start() self.client = self.client_container.installed_services['client']
class BasicMockTest(unittest.TestCase): def setUp(self): self.network = MockServiceNetwork() self.coordinator = self.network.add_service(Coordinator, port=42400) self.upper_container = self.network.add_service(Upper) self.client_container = self.network.add_service(ClientInterface) self.network.start() self.client = self.client_container.installed_services['client'] def tearDown(self): self.network.stop() self.network.join() def test_upper(self): reply = self.client.request('iris://upper', 'upper.upper', {'text': 'foo'}) self.assertEqual(reply.body, 'FOO') def test_ping(self): reply = self.client.request('iris://upper', 'iris.ping', {'payload': 42}) self.assertEqual(reply.body, 42) def test_status(self): reply = self.client.request(self.upper_container.endpoint, 'iris.status', {}) self.assertEqual(reply.body, { 'endpoint': 'mock://300.0.0.1:1', 'identity': '252946e723b6b07c1f5f0aa9442fb348', 'config': {}, }) def test_error(self): self.assertRaises(ErrorReply, self.client.request, self.upper_container.endpoint, 'upper.fail', {}) def test_ack(self): reply = self.client.request(self.upper_container.endpoint, 'upper.just_ack', {}) self.assertIsNone(reply.body) self.assertEqual(reply.type, Message.ACK) def test_auto_nack(self): self.assertRaises(Nack, self.client.request, self.upper_container.endpoint, 'upper.auto_nack', {}) def test_events(self): log = self.upper_container.installed_services['upper'].eventlog self.assertEqual(log, []) self.client.emit('foo', {'arg': 42}) self.assertEqual(log, [('foo', {'arg': 42})]) self.client.emit('foo', {'arg': 43}) self.assertEqual(log, [('foo', {'arg': 42}), ('foo', {'arg': 43})]) def test_proxy(self): proxy = self.client.proxy('iris://upper') self.assertEqual(proxy.upper(text='foo'), 'FOO') def test_inspect(self): proxy = self.client.proxy('iris://upper', 'iris') methods = proxy.inspect()['methods'] self.assertEqual(set(m['name'] for m in methods), set([ 'upper.fail', 'upper.upper', 'upper.auto_nack', 'upper.just_ack', 'iris.status', 'iris.inspect', 'iris.ping', ]))
class BasicMockTest(unittest.TestCase): def setUp(self): self.network = MockServiceNetwork() self.coordinator = self.network.add_service(Coordinator, port=42400) self.upper_container = self.network.add_service(Upper) self.client_container = self.network.add_service(ClientInterface) self.network.start() self.client = self.client_container.installed_services['client'] def tearDown(self): self.network.stop() self.network.join() def test_upper(self): reply = self.client.request('iris://upper', 'upper.upper', {'text': 'foo'}) self.assertEqual(reply.body, 'FOO') def test_ping(self): reply = self.client.request('iris://upper', 'iris.ping', {'payload': 42}) self.assertEqual(reply.body, 42) def test_status(self): reply = self.client.request(self.upper_container.endpoint, 'iris.status', {}) self.assertEqual( reply.body, { 'endpoint': 'mock://300.0.0.1:1', 'identity': '252946e723b6b07c1f5f0aa9442fb348', 'config': {}, }) def test_error(self): self.assertRaises(ErrorReply, self.client.request, self.upper_container.endpoint, 'upper.fail', {}) def test_ack(self): reply = self.client.request(self.upper_container.endpoint, 'upper.just_ack', {}) self.assertIsNone(reply.body) self.assertEqual(reply.type, Message.ACK) def test_auto_nack(self): self.assertRaises(Nack, self.client.request, self.upper_container.endpoint, 'upper.auto_nack', {}) def test_events(self): log = self.upper_container.installed_services['upper'].eventlog self.assertEqual(log, []) self.client.emit('foo', {'arg': 42}) self.assertEqual(log, [('foo', {'arg': 42})]) self.client.emit('foo', {'arg': 43}) self.assertEqual(log, [('foo', {'arg': 42}), ('foo', {'arg': 43})]) def test_proxy(self): proxy = self.client.proxy('iris://upper') self.assertEqual(proxy.upper(text='foo'), 'FOO') def test_inspect(self): proxy = self.client.proxy('iris://upper', 'iris') methods = proxy.inspect()['methods'] self.assertEqual( set(m['name'] for m in methods), set([ 'upper.fail', 'upper.upper', 'upper.auto_nack', 'upper.just_ack', 'iris.status', 'iris.inspect', 'iris.ping', ]))