def test_skeleton_life_drain(self): skeleton = monsters.Skeleton() skeleton.take_damage(1) self.assertNotEqual(skeleton.hp, skeleton.maxhp) skeleton.life_drain(self.dummy) self.assertEqual(self.dummy.hp, self.dummy.maxhp - 3) self.assertEqual(skeleton.hp, skeleton.maxhp)
def test_undead_hurt_by_healind(self): vampire = monsters.Vampire() skeleton = monsters.Skeleton() self.assertEqual(vampire.hp, vampire.maxhp) self.assertEqual(skeleton.hp, skeleton.maxhp) vampire.heal_damage(5) skeleton.heal_damage(5) self.assertEqual(vampire.hp, vampire.maxhp - 5) self.assertEqual(skeleton.hp, skeleton.maxhp - 5)
def test_victory(self): rogue = heroes.Rogue(level=99) skeleton = monsters.Skeleton() participants = [rogue, skeleton] battle = Battle(participants) battle.start() with self.assertRaises(Victory): expected_output = 'Skeleton dies!' output = battle.execute_command('backstab', skeleton) self.assertIn(expected_output, output)
def test_create_levelled_skeleton(self): skeleton = monsters.Skeleton(level=5) expected_stats = {'str': 15, 'con': 3, 'int': 3, 'spd': 6, 'maxhp': 16} actual_stats = { 'str': skeleton.strength, 'con': skeleton.constitution, 'int': skeleton.intelligence, 'spd': skeleton.speed, 'maxhp': skeleton.maxhp } self.assertEqual(skeleton.level, 5) self.assertEqual(actual_stats, expected_stats) self.assertEqual(skeleton.hp, skeleton.maxhp)
def test_skeleton_bash(self): skeleton = monsters.Skeleton() skeleton.bash(self.dummy) self.assertEqual(self.dummy.hp, self.dummy.maxhp - 20)