def test_join(self): session = ("127.0.0.1", "127.0.0.1", 1233, 12323) mcast = Mcast(address=("127.0.0.1", "5.5.5.1", "229.1.1.255", 0)) self.assertIn(("127.0.0.1", "5.5.5.1", "229.1.1.255", 0), Mcast.McastDb.keys()) self.assertIn(mcast, Mcast.McastDb.values()) mcast.join(session) self.assertEqual(mcast.status, Mcast.JOINED) time.sleep(0.1) mcast.close() self.assertEqual(mcast.status, Mcast.LEAVED) self.assertNotIn(("127.0.0.1", "5.5.5.1", "229.1.1.255", 0), Mcast.McastDb.keys()) self.assertNotIn(mcast, Mcast.McastDb.values())
def test_join_1(self): session = ("127.0.0.1", "127.0.0.1", 1233, 12323) address_1 = ("127.0.0.1", "5.5.5.1", "229.1.1.255", 0) address_2 = ("127.0.0.1", "7.5.5.2", "229.1.1.255", 0) address_3 = ("127.0.0.1", "3.5.5.2", "228.1.1.255", 0) mcast = Mcast(address=address_1) self.assertIn(("127.0.0.1", "5.5.5.1", "229.1.1.255", 0), Mcast.McastDb.keys()) self.assertIn(mcast, Mcast.McastDb.values()) mcast.rejoin() self.assertEqual(mcast.status, Mcast.NOT_JOINED) mcast.join(session) self.assertEqual(mcast.status, Mcast.JOINED) time.sleep(0.1) # no operation in joined status mcast.join(session) self.assertEqual(mcast.status, Mcast.JOINED) mcast_3 = Mcast(address=address_3) self.assertIn(address_3, Mcast.McastDb.keys()) time.sleep(0.1) # no operation in joined status mcast_3.join(session) self.assertEqual(mcast_3.status, Mcast.JOINED) try: mcast_test = Mcast.findMcastInstance(None) except McastException as e: pass mcast_test = Mcast.findMcastInstance(address_1) self.assertEqual(mcast_test.status, Mcast.JOINED) self.assertEqual(mcast_test, mcast) try: mcast = Mcast(address=address_1) except McastException as e: self.assertEqual( str(e), "init address %s was already initiated" % str(address_1)) mcast_test = Mcast.findMcastInstance(address_2) self.assertIsNone(mcast_test) mcast_2 = Mcast(address=address_2) self.assertIn(("127.0.0.1", "5.5.5.1", "229.1.1.255", 0), Mcast.McastDb.keys()) self.assertIn(mcast_2, Mcast.McastDb.values()) mcast_2.join(session) self.assertEqual(mcast_2.status, Mcast.JOINED) time.sleep(0.1) mcast_3.close() mcast.close() self.assertEqual(mcast.status, Mcast.LEAVED) time.sleep(1) self.assertNotIn(("127.0.0.1", "5.5.5.1", "229.1.1.255", 0), Mcast.McastDb.keys()) self.assertNotIn(Mcast, Mcast.McastDb.values()) for key in Mcast.McastDb.keys(): Mcast.McastDb[key].close() time.sleep(1) self.assertEqual(len(Mcast.McastDb), 0)