def test_destroy_deferreds(self): ctx = Context(driver=mud_context.driver) thing = Item("thing") player = Player("julie", "f") wolf = Monster("wolf", "m") loc = Location("loc") mud_context.driver.defer(datetime.datetime.now(), thing, "method") mud_context.driver.defer(datetime.datetime.now(), player, "method") mud_context.driver.defer(datetime.datetime.now(), wolf, "method") mud_context.driver.defer(datetime.datetime.now(), loc, "method") self.assertEqual(4, len(mud_context.driver.deferreds)) thing.destroy(ctx) player.destroy(ctx) wolf.destroy(ctx) loc.destroy(ctx) self.assertEqual(0, len(mud_context.driver.deferreds), "all deferreds must be removed")
def test_destroy_deferreds(self): ctx = Context(driver=mud_context.driver, clock=None, config=None, player_connection=None) thing = Item("thing") player = Player("julie", "f") wolf = NPC("wolf", "m") loc = Location("loc") mud_context.driver.defer(datetime.datetime.now(), thing.move) mud_context.driver.defer(datetime.datetime.now(), player.move) mud_context.driver.defer(datetime.datetime.now(), wolf.move) mud_context.driver.defer(datetime.datetime.now(), loc.move) self.assertEqual(4, len(mud_context.driver.deferreds)) thing.destroy(ctx) player.destroy(ctx) wolf.destroy(ctx) loc.destroy(ctx) self.assertEqual(0, len(mud_context.driver.deferreds), "all deferreds must be removed")
def test_destroy_player(self): ctx = Context() loc = Location("loc") player = Player("julie", "f") player.privileges = {"wizard"} player.create_wiretap(loc) player.insert(Item("key"), player) loc.init_inventory([player]) self.assertEqual(loc, player.location) self.assertTrue(len(player.inventory) > 0) self.assertTrue(player in loc.livings) player.destroy(ctx) import gc gc.collect() self.assertTrue(len(player.inventory) == 0) self.assertFalse(player in loc.livings) self.assertIsNone(player.location, "destroyed player should end up nowhere (None)")
def test_destroy_player(self): ctx = Context(None, None, None, None) loc = Location("loc") player = Player("julie", "f") player.privileges = {"wizard"} player.create_wiretap(loc) player.insert(Item("key"), player) loc.init_inventory([player]) self.assertEqual(loc, player.location) self.assertTrue(len(player.inventory) > 0) self.assertTrue(player in loc.livings) player.destroy(ctx) import gc gc.collect() self.assertTrue(len(player.inventory) == 0) self.assertFalse(player in loc.livings) self.assertIsNone(player.location, "destroyed player should end up nowhere (None)")
def test_destroy_deferreds(self): ctx = Context(driver=mud_context.driver, clock=None, config=None, player_connection=None) thing = Item("thing") player = Player("julie", "f") wolf = NPC("wolf", "m") loc = Location("loc") mud_context.driver.defer(datetime.datetime.now(), thing.move) mud_context.driver.defer(datetime.datetime.now(), player.move) mud_context.driver.defer(datetime.datetime.now(), wolf.move) mud_context.driver.defer(datetime.datetime.now(), loc.move) self.assertEqual(4, len(mud_context.driver.deferreds)) thing.destroy(ctx) player.destroy(ctx) wolf.destroy(ctx) loc.destroy(ctx) self.assertEqual(0, len(mud_context.driver.deferreds), "all deferreds must be removed")