def test_is_done(self): hero = Hero() beast = Beast() self.assertTrue(is_done(hero, beast, 25)) self.assertFalse(is_done(hero, beast, 18)) hero.health = -1 self.assertTrue(is_done(hero, beast, 18)) hero.health = 1 beast.health = -2 self.assertTrue(is_done(hero, beast, 18))
def test_lucky_dodge(self): hero = Hero() beast = Beast() initial_health = beast.health beast.luck = 100 attack(hero, beast) self.assertEqual(initial_health, beast.health)
def test_dmg_to_be_done(self): hero = Hero() beast = Beast() hero.strength = 80 initial_dmg = hero.damage_to_be_done beast.luck = 0 attack(hero, beast) self.assertNotEqual(initial_dmg, hero.damage_to_be_done)
def test_attack(self): hero = Hero() beast = Beast() hero.strength = 80 beast.luck = 0 initial_health = beast.health attack(hero, beast) self.assertNotEqual(initial_health, beast.health)
def test_magic_shield_action(self): hero = Hero() beast = Beast() beast.luck = 0 attack(hero, beast) initial_dmg_to_be_done = hero.damage_to_be_done self.assertTrue(initial_dmg_to_be_done > 0) magic_shield_action(hero, beast) self.assertTrue(hero.damage_to_be_done == initial_dmg_to_be_done // 2)
class SkillsActionsTest(unittest.TestCase): mock = Mock() hero = Hero() beast = Beast() def test_magic_shield_action(self): hero = Hero() beast = Beast() beast.luck = 0 attack(hero, beast) initial_dmg_to_be_done = hero.damage_to_be_done self.assertTrue(initial_dmg_to_be_done > 0) magic_shield_action(hero, beast) self.assertTrue(hero.damage_to_be_done == initial_dmg_to_be_done // 2) def test_rapid_strike_action(self): hero = Hero() beast = Beast() mock = Mock() expected = [attack(hero, beast)] mock.rapid_strike_action(hero, beast) mock.mock_calls == expected
class TestBeast(unittest.TestCase): beast = Beast() def test_name(self): self.assertEqual(self.beast.name, 'Wild Beast') def test_attribute_health(self): self.assertTrue(self.beast.health >= 60 and self.beast.health <= 90) def test_attribute_strength(self): self.assertTrue(self.beast.strength >= 60 and self.beast.strength <= 90) def test_attribute_defence(self): self.assertTrue(self.beast.defence >= 40 and self.beast.defence <= 60) def test_attribute_speed(self): self.assertTrue(self.beast.speed >= 40 and self.beast.speed <= 60) def test_attribute_luck(self): self.assertTrue(self.beast.luck >= 25 and self.beast.luck <= 40) def test_offensive_skills(self): self.assertFalse(self.beast.offensive_skills) def test_defensive_skills(self): self.assertFalse(self.beast.defensive_skills)
def test_play_game(self): hero = Hero() beast = Beast() turn_number = 1 mock = Mock() expected = [ is_done(hero, beast, turn_number), load_round(), print_turn_number(turn_number), hero.do_skills(hero, beast, hero.offensive_skills, True), attack(hero, beast), beast.do_skills(beast, hero, beast.offensive_skills, True), attack(beast, hero) ] mock.play_game(hero, beast, turn_number) mock.mock_calls == expected
def test_damage_done(self): hero = Hero() beast = Beast() # as much as the beast has defence hero.strength = 40 initial_health = beast.health attack(hero, beast) self.assertEqual(initial_health, beast.health)
def test_rapid_strike_action(self): hero = Hero() beast = Beast() mock = Mock() expected = [attack(hero, beast)] mock.rapid_strike_action(hero, beast) mock.mock_calls == expected
from gameplay.actions import play_game from characters.hero import Hero from characters.beast import Beast from gameplay.utils import declare_winner, game_intro if __name__ == "__main__": ''' create both the hero and the beast ''' hero = Hero() beast = Beast() turn_number = 1 # Just printing the introduction game_intro() print(hero) print(beast) # Check for the better speed or luck, if equal the hero will start if hero.speed > beast.speed: play_game(hero, beast, turn_number) elif beast.speed > hero.speed: play_game(beast, hero, turn_number) elif hero.luck >= beast.luck: play_game(hero, beast, turn_number) else: play_game(beast, hero, turn_number) declare_winner(hero, beast)
class ActionTest(unittest.TestCase): hero = Hero() beast = Beast() def test_lucky_dodge(self): hero = Hero() beast = Beast() initial_health = beast.health beast.luck = 100 attack(hero, beast) self.assertEqual(initial_health, beast.health) def test_damage_done(self): hero = Hero() beast = Beast() # as much as the beast has defence hero.strength = 40 initial_health = beast.health attack(hero, beast) self.assertEqual(initial_health, beast.health) def test_attack(self): hero = Hero() beast = Beast() hero.strength = 80 beast.luck = 0 initial_health = beast.health attack(hero, beast) self.assertNotEqual(initial_health, beast.health) def test_dmg_to_be_done(self): hero = Hero() beast = Beast() hero.strength = 80 initial_dmg = hero.damage_to_be_done beast.luck = 0 attack(hero, beast) self.assertNotEqual(initial_dmg, hero.damage_to_be_done) def test_is_done(self): hero = Hero() beast = Beast() self.assertTrue(is_done(hero, beast, 25)) self.assertFalse(is_done(hero, beast, 18)) hero.health = -1 self.assertTrue(is_done(hero, beast, 18)) hero.health = 1 beast.health = -2 self.assertTrue(is_done(hero, beast, 18)) def test_play_game(self): hero = Hero() beast = Beast() turn_number = 1 mock = Mock() expected = [ is_done(hero, beast, turn_number), load_round(), print_turn_number(turn_number), hero.do_skills(hero, beast, hero.offensive_skills, True), attack(hero, beast), beast.do_skills(beast, hero, beast.offensive_skills, True), attack(beast, hero) ] mock.play_game(hero, beast, turn_number) mock.mock_calls == expected