Ejemplo n.º 1
0
 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']
Ejemplo n.º 2
0
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',
        ]))
Ejemplo n.º 3
0
 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']
Ejemplo n.º 4
0
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',
            ]))