Example #1
0
    def test_different_exchanges(self):
        t = self.useFixture(utils.TransportFixture(self.url))
        # If the different exchanges are not honoured, then the
        # teardown may hang unless we broadcast all control messages
        # to each server
        group1 = self.useFixture(
            utils.RpcServerGroupFixture(self.url,
                                        transport=t,
                                        use_fanout_ctrl=True))
        group2 = self.useFixture(
            utils.RpcServerGroupFixture(self.url,
                                        exchange="a",
                                        transport=t,
                                        use_fanout_ctrl=True))
        group3 = self.useFixture(
            utils.RpcServerGroupFixture(self.url,
                                        exchange="b",
                                        transport=t,
                                        use_fanout_ctrl=True))

        client1 = group1.client(1)
        data1 = [c for c in 'abcdefghijklmn']
        for i in data1:
            client1.append(text=i)

        client2 = group2.client()
        data2 = [c for c in 'opqrstuvwxyz']
        for i in data2:
            client2.append(text=i)

        actual1 = [[c for c in s.endpoint.sval] for s in group1.servers]
        self.assertThat(actual1, utils.IsValidDistributionOf(data1))
        actual1 = [c for c in group1.servers[1].endpoint.sval]
        self.assertThat([actual1], utils.IsValidDistributionOf(data1))
        for s in group1.servers:
            expected = len(data1) if group1.servers.index(s) == 1 else 0
            self.assertEqual(expected, len(s.endpoint.sval))
            self.assertEqual(0, s.endpoint.ival)

        actual2 = [[c for c in s.endpoint.sval] for s in group2.servers]
        for s in group2.servers:
            self.assertThat(len(s.endpoint.sval), matchers.GreaterThan(0))
            self.assertEqual(0, s.endpoint.ival)
        self.assertThat(actual2, utils.IsValidDistributionOf(data2))

        for s in group3.servers:
            self.assertEqual(0, len(s.endpoint.sval))
            self.assertEqual(0, s.endpoint.ival)
Example #2
0
    def test_multiple_servers(self):
        timeout = 0.5
        if self.url.startswith("amqp:"):
            self.skipTest("QPID-6307")
        if self.url.startswith("kafka://"):
            self.skipTest("Kafka: needs to be fixed")
            timeout = 5
            self.conf.set_override('consumer_group',
                                   'test_multiple_servers',
                                   group='oslo_messaging_kafka')

        listener_a = self.useFixture(
            utils.NotificationFixture(self.conf, self.url, ['test-topic']))

        listener_b = self.useFixture(
            utils.NotificationFixture(self.conf, self.url, ['test-topic']))

        n = listener_a.notifier('pub')

        events_out = [('test-%s' % c, 'payload-%s' % c) for c in 'abcdefgh']
        for event_type, payload in events_out:
            n.info({}, event_type, payload)

        events_in = [[(e[1], e[2]) for e in listener_a.get_events(timeout)],
                     [(e[1], e[2]) for e in listener_b.get_events(timeout)]]

        self.assertThat(events_in, utils.IsValidDistributionOf(events_out))
        for stream in events_in:
            self.assertThat(len(stream), matchers.GreaterThan(0))
    def test_multiple_servers(self):
        if self.url.startswith("amqp:"):
            self.skipTest("QPID-6307")
        if self.url.startswith("zmq"):
            self.skipTest("ZeroMQ-PUB-SUB")
        if self.url.startswith("kafka"):
            self.skipTest("Kafka: Need to be fixed")

        listener_a = self.useFixture(
            utils.NotificationFixture(self.conf, self.url, ['test-topic']))

        listener_b = self.useFixture(
            utils.NotificationFixture(self.conf, self.url, ['test-topic']))

        n = listener_a.notifier('pub')

        events_out = [('test-%s' % c, 'payload-%s' % c) for c in 'abcdefgh']
        for event_type, payload in events_out:
            n.info({}, event_type, payload)

        events_in = [[(e[1], e[2]) for e in listener_a.get_events()],
                     [(e[1], e[2]) for e in listener_b.get_events()]]

        self.assertThat(events_in, utils.IsValidDistributionOf(events_out))
        for stream in events_in:
            self.assertThat(len(stream), matchers.GreaterThan(0))
    def test_server_in_group(self):
        group = self.useFixture(utils.RpcServerGroupFixture(self.url))

        client = group.client()
        data = [c for c in 'abcdefghijklmn']
        for i in data:
            client.append(text=i)

        for s in group.servers:
            self.assertThat(len(s.endpoint.sval), matchers.GreaterThan(0))
        actual = [[c for c in s.endpoint.sval] for s in group.servers]
        self.assertThat(actual, utils.IsValidDistributionOf(data))
Example #5
0
    def test_multiple_servers(self):
        transport = self.useFixture(utils.TransportFixture(self.url))
        listener_a = self.useFixture(
            utils.NotificationFixture(transport.transport, ['test-topic']))
        listener_b = self.useFixture(
            utils.NotificationFixture(transport.transport, ['test-topic']))
        transport.wait()
        n = listener_a.notifier('pub')

        events_out = [('test-%s' % c, 'payload-%s' % c) for c in 'abcdefgh']

        for event_type, payload in events_out:
            n.info({}, event_type, payload)

        events_in = [[(e[1], e[2]) for e in listener_a.get_events()],
                     [(e[1], e[2]) for e in listener_b.get_events()]]

        self.assertThat(events_in, utils.IsValidDistributionOf(events_out))
        for stream in events_in:
            self.assertThat(len(stream), matchers.GreaterThan(0))