コード例 #1
0
ファイル: test_channel.py プロジェクト: ElBui/pypeman
    def test_sub_channel_with_exception(self):
        """ Whether Sub Channel exception handling is working """

        chan = BaseChannel(name="test_channel4", loop=self.loop)
        n1 = TestNode(name="main")
        n2 = TestNode(name="sub")
        n3 = ExceptNode(name="sub2")

        msg = generate_msg()

        chan.add(n1)
        sub = chan.fork(name="Hello")
        sub.add(n2, n3)

        # Launch channel processing
        self.start_channels()

        self.loop.run_until_complete(chan.handle(msg))

        self.assertEqual(n1.processed, 1, "Sub Channel not working")

        with self.assertRaises(TestException) as cm:
            self.clean_loop()

        self.assertEqual(n2.processed, 1, "Sub Channel not working")
コード例 #2
0
ファイル: test_channel.py プロジェクト: ElBui/pypeman
    def test_sub_channel(self):
        """ Whether Sub Channel is working """

        chan = BaseChannel(name="test_channel3", loop=self.loop)
        n1 = TestNode(name="main")
        n2 = TestNode(name="sub")
        n3 = TestNode(name="sub1")
        n4 = TestNode(name="sub2")

        msg = generate_msg()

        same_chan = chan.append(n1)

        self.assertEqual(chan, same_chan, "Append don't return channel.")

        sub = chan.fork(name="subchannel")
        sub.append(n2, n3, n4)

        # Launch channel processing
        self.start_channels()
        self.loop.run_until_complete(chan.handle(msg))

        self.assertTrue(n2.processed, "Sub Channel not working")
        self.assertTrue(n3.processed, "Sub Channel not working")
        self.assertTrue(n4.processed, "Sub Channel not working")
        self.assertEqual(sub.name, "test_channel3.subchannel", "Subchannel name is incorrect")
コード例 #3
0
ファイル: test_channel.py プロジェクト: jrmi/pypeman
    def test_channel_subchannel(self):
        """ Whether BaseChannel subchannel works """
        chan = BaseChannel(name="test_channel6.5", loop=self.loop)

        chan_fork = chan.fork()

        chan_when = chan_fork.when(lambda: True)

        chan_case1, chan_case2 = chan_when.case(lambda: True, lambda: False)

        print(chan.subchannels())

        self.assertEqual(len(chan.subchannels()[0]['subchannels'][0]['subchannels']), 2, "Subchannel graph not working")
コード例 #4
0
ファイル: test_msgstore.py プロジェクト: jrmi/pypeman
    def test_memory_message_store_in_fork(self):
        """ We can store a message in FileMessageStore """

        store_factory = msgstore.MemoryMessageStoreFactory()

        chan = BaseChannel(name="test_channel10.25", loop=self.loop, message_store_factory=store_factory)

        n1 = TestNode()
        n2 = TestNode()
        n3 = TestNode()
        n4 = TestNode()

        chan.add(n1, n2)
        fork = chan.fork()
        fork.add(n3)

        self.assertTrue(isinstance(fork.message_store, msgstore.NullMessageStore))

        whe = chan.when(True, message_store_factory=store_factory)
        whe.add(n4)

        self.assertTrue(isinstance(whe.message_store, msgstore.MemoryMessageStore))
コード例 #5
0
ファイル: test_remoteadmin.py プロジェクト: jrmi/pypeman
    def test_remote_admin_list(self):
        """ Channel remote listing working """
        store_factory = msgstore.MemoryMessageStoreFactory()

        chan = BaseChannel(name="test_remote050", loop=self.loop, message_store_factory=store_factory)

        n = TestNode()
        n2 = TestNode(name="sub")
        n3 = TestNode(name="sub1")
        n4 = TestNode(name="sub2")

        msg = generate_msg(with_context=True)
        msg2 = generate_msg(timestamp=(1982, 11, 27, 12, 35))
        msg3 = generate_msg(timestamp=(1982, 11, 28, 12, 35))
        msg4 = generate_msg(timestamp=(1982, 11, 28, 14, 35))

        idref_msg3 = msg3.uuid

        chan.add(n)

        sub = chan.fork(name="subchannel")
        sub.append(n2, n3, n4)

        # Launch channel processing
        self.start_channels()
        self.loop.run_until_complete(chan.handle(msg))
        self.loop.run_until_complete(chan.handle(msg2))
        self.loop.run_until_complete(chan.handle(msg3))
        self.loop.run_until_complete(chan.handle(msg4))

        server = RemoteAdminServer(loop=self.loop)

        self.loop.run_until_complete(server.start())

        client = RemoteAdminClient(loop=self.loop)
        client.init()

        # List channels
        chans = client.channels()

        print (chans)

        self.assertEqual(chans[0]['name'], 'test_remote050' , "Channel listing not working")

        self.assertEqual(chans[0]['subchannels'][0]['name'], 'test_remote050.subchannel' , "Subchannel listing not working")

        # Stop channel
        result = client.stop('test_remote050')

        self.assertEqual(chan.status, BaseChannel.STOPPED, "Stopping channel doesn't work")

        # Start channel
        result = client.start('test_remote050')

        self.assertEqual(chan.status, BaseChannel.WAITING, "Starting channel doesn't work")

        # Search message
        msg_list = client.list_msg(channel='test_remote050', start=2, count=5, order_by='-timestamp')

        print(msg_list)

        self.assertEqual(msg_list['total'], 4, 'List channel messages broken')
        self.assertEqual(msg_list['messages'][0]['id'], idref_msg3, 'List channel messages broken')

        # Replay message
        result = client.replay_msg('test_remote050', [idref_msg3])

        msg_list = client.list_msg(channel='test_remote050', start=0, count=5, order_by='-timestamp')
        self.assertEqual(msg_list['total'], 5, 'List channel messages broken')
        self.assertEqual(msg_list['messages'][0]['id'], result[0].uuid, 'Replay messages broken')

        # Push message
        result = client.push_msg(channel='test_remote050', text="Yaaay")

        msg_list = client.list_msg(channel='test_remote050', start=0, count=5, order_by='-timestamp')
        self.assertEqual(msg_list['total'], 6, 'Push message broken')
        self.assertEqual(msg_list['messages'][0]['id'], result.uuid, 'Push message broken')