def test_contains(self): orc = Living("orc", "m", race="orc") axe = Weapon("axe") orc.insert(axe, orc) self.assertTrue(axe in orc) self.assertTrue(axe in orc.inventory) self.assertEqual(1, orc.inventory_size) self.assertEqual(1, len(orc.inventory))
def test_allowance(self): orc = Living("orc", "m", race="half-orc") axe = Weapon("axe") orc.insert(axe, orc) self.assertTrue(axe in orc) with self.assertRaises(ActionRefused) as x: orc.remove(axe, None) self.assertTrue("can't take" in str(x.exception)) orc.remove(axe, orc) self.assertFalse(axe in orc)
def test_lifecycle(self): orc = Living("orc", "m", race="orc") axe = Weapon("axe") orc.insert(axe, orc) self.assertIsNotNone(orc.soul) self.assertIsNotNone(orc.location) self.assertGreater(orc.inventory_size, 0) orc.destroy(Context(TestDriver(), None, None, None)) self.assertIsNone(orc.soul) self.assertIsNone(orc.location) self.assertEqual(orc.inventory_size, 0)
def test_location(self): thingy = Item("thing") with self.assertRaises(TypeError): thingy.location = "foobar" hall = Location("hall") thingy.location = hall self.assertEqual(hall, thingy.contained_in) self.assertEqual(hall, thingy.location) person = Living("person", "m", race="human") key = Item("key") backpack = Container("backpack") person.insert(backpack, person) self.assertIsNone(key.contained_in) self.assertIsNone(key.location) self.assertTrue(backpack in person) self.assertEqual(person, backpack.contained_in) self.assertEqual(_limbo, backpack.location) hall.init_inventory([person, key]) self.assertEqual(hall, key.contained_in) self.assertEqual(hall, key.location) self.assertEqual(hall, backpack.location) key.move(backpack, person) self.assertEqual(backpack, key.contained_in) self.assertEqual(hall, key.location)
def test_location(self): thingy = Item("thing") with self.assertRaises(TypeError): thingy.location = "foobar" hall = Location("hall") thingy.location = hall self.assertEqual(hall, thingy.contained_in) self.assertEqual(hall, thingy.location) person = Living("person", "m", race="human") key = Item("key") backpack = Container("backpack") person.insert(backpack, person) self.assertIsNone(key.contained_in) self.assertIsNone(key.location) self.assertTrue(backpack in person) self.assertEqual(person, backpack.contained_in) self.assertEqual(_Limbo, backpack.location) hall.init_inventory([person, key]) self.assertEqual(hall, key.contained_in) self.assertEqual(hall, key.location) self.assertEqual(hall, backpack.location) key.move(backpack, person) self.assertEqual(backpack, key.contained_in) self.assertEqual(hall, key.location)
def test_nonitem_insert_fail(self): something = MudObject("thing that is not an Item") orc = Living("orc", "m", race="half-orc") with self.assertRaises(ActionRefused): orc.insert(something, orc)