def test_cond_channel(self): """ Whether Conditionnal channel is working """ chan = BaseChannel(name="test_channel5", loop=self.loop) n1 = TestNode(name="main") n2 = TestNode(name="end_main") not_processed = TestNode(name="cond_notproc") processed = TestNode(name="cond_proc") msg = generate_msg() chan.add(n1) # Nodes in this channel should not be processed cond1 = chan.when(lambda x: False, name="Toto") # Nodes in this channel should be processed cond2 = chan.when(True, name="condchannel") chan.add(n2) cond1.add(not_processed) cond2.add(processed) # Launch channel processing self.start_channels() self.loop.run_until_complete(chan.handle(msg)) self.assertFalse(not_processed.processed, "Cond Channel when condition == False not working") self.assertTrue(processed.processed, "Cond Channel when condition == True not working") self.assertFalse(n2.processed, "Cond Channel don't became the main path") self.assertEqual(cond2.name, "test_channel5.condchannel", "Condchannel name is incorrect")
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))