def test_pubsub_async(self): sync() s = topic("test1async") subber = Subber("sub1") subber2 = Subber("sub2") s.subscribe(subber) s.subscribe(subber2) s2 = topic("test1async") result = s2.send("event1") self.assertIsNone(result) self.assertEqual([], subber.messages) self.assertEqual([], subber2.messages) events, idle, subbers = pending()["test1async"] self.assertEqual(1, events) result = sync() events, idle, subbers = pending()["test1async"] self.assertEqual(0, events) self.assertIsNone(result) self.assertEqual([("test1async", "event1")], subber.messages) self.assertEqual([("test1async", "event1")], subber2.messages) subber.clear() subber2.clear() s2.send("event2") result = sync("test1async") self.assertEqual(2, len(result)) self.assertTrue("sub1" in result) self.assertTrue("sub2" in result) self.assertEqual([("test1async", "event2")], subber.messages) self.assertEqual([("test1async", "event2")], subber2.messages)
def test_pubsub_async(self): sync() s = topic("test1async") subber = Subber("sub1") subber2 = Subber("sub2") s.subscribe(subber) s.subscribe(subber2) s2 = topic("test1async") result = s2.send("event1") self.assertIsNone(result) self.assertEqual([], subber.messages) self.assertEqual([], subber2.messages) events, idle, subbers = pending()["test1async"] self.assertEqual(1, events) result = sync() events, idle, subbers = pending()["test1async"] self.assertEqual(0, events) self.assertEqual([], result) self.assertEqual([("test1async", "event1")], subber.messages) self.assertEqual([("test1async", "event1")], subber2.messages) subber.clear() subber2.clear() s2.send("event2") result = sync("test1async") self.assertEqual(2, len(result)) self.assertTrue("sub1" in result) self.assertTrue("sub2" in result) self.assertEqual([("test1async", "event2")], subber.messages) self.assertEqual([("test1async", "event2")], subber2.messages)
def test_destroy(self): sync() s1 = topic("testA") s2 = topic("testB") s1.send("123") p = pending() self.assertIn("testA", p) self.assertIn("testB", p) s1.destroy() self.assertEqual("<defunct>", s1.name) p = pending() self.assertNotIn("testA", p) self.assertIn("testB", p) s2.destroy() p = pending() self.assertNotIn("testA", p) self.assertNotIn("testB", p)