Пример #1
0
 def test_fight_for_loose(self):
     self.hero = Hero("Wizard", 70, 6000.00, 10.00)
     fight = self.hero.battle(self.enemy)
     self.assertEqual(self.enemy.level, 81)
     self.assertEqual(self.enemy.damage, 2005.00)
     self.assertEqual(self.enemy.health, 9305.00)
     self.assertEqual(fight, "You lose")
Пример #2
0
 def test_battle_helth_is_less_thjen_zero(self):
     hero_test_with_zero = Hero('ZeroName', 1, 0, 100)
     with self.assertRaises(ValueError) as ex:
         hero_test_with_zero.battle(self.user3)
     self.assertEqual(
         str(ex.exception),
         "Your health is lower than or equal to 0. You need to rest")
Пример #3
0
class TestHero(unittest.TestCase):
    def setUp(self):
        self.hero = Hero('Hero1', 2, 100, 50)
        self.user2 = Hero('Hero1', 2, 100, 50)
        self.user3 = Hero('Hero2', 2, 100, 50)
        self.user4 = Hero('Lost', 2, 100, 40)

    def test_all_set_up(self):
        self.assertEqual(self.hero.username, 'Hero1')
        self.assertEqual(self.hero.level, 2)
        self.assertEqual(self.hero.health, 100)
        self.assertEqual(self.hero.damage, 50)

    def test_battle_with_same_name_raise_exception(self):
        with self.assertRaises(Exception) as ex:
            self.hero.battle(self.user2)
        self.assertEqual(str(ex.exception), "You cannot fight yourself")

    def test_battle_helth_is_less_thjen_zero(self):
        hero_test_with_zero = Hero('ZeroName', 1, 0, 100)
        with self.assertRaises(ValueError) as ex:
            hero_test_with_zero.battle(self.user3)
        self.assertEqual(
            str(ex.exception),
            "Your health is lower than or equal to 0. You need to rest")

    def test_battle_intruder_has_zero_health(self):
        hero_test_with_zero = Hero('ZeroName', 1, 10, 100)
        intruder_hero = Hero('ZeroName2', 1, 0, 100)
        with self.assertRaises(ValueError) as ex:
            hero_test_with_zero.battle((intruder_hero))
        self.assertEqual(
            str(ex.exception),
            f"You cannot fight {intruder_hero.username}. He needs to rest")

    def test_hero_and_intruder_has_less_then_zero(self):
        acquire = self.hero.battle(self.user3)
        self.assertEqual(acquire, 'Draw')

    def test_enemy_health_is_zero_after_battle(self):
        acquire = self.hero.battle(self.user4)
        self.assertEqual(acquire, 'You win')
        self.assertEqual(self.hero.level, 3)
        self.assertEqual(self.hero.health, 25)
        self.assertEqual(self.hero.damage, 55)

    def test_hero_health_is_zero_after_battle(self):
        acquire = self.user4.battle(self.hero)
        self.assertEqual(acquire, 'You lose')
        self.assertEqual(self.hero.level, 3)
        self.assertEqual(self.hero.health, 25)
        self.assertEqual(self.hero.damage, 55)

    def test_represent_method(self):
        acquire = f"Hero {self.hero.username}: {self.hero.level} lvl\n" \
               f"Health: {self.hero.health}\n" \
               f"Damage: {self.hero.damage}\n"

        self.assertEqual(str(self.hero), acquire)
Пример #4
0
 def test_if_enemy_hero_health_drops_to_zero_or_under_zero_and_we_win_the_battle(self):
     self.hero = Hero('Miro', 100, 850, 5)
     self.enemy_hero = Hero('Prodigy', 90, 330, 5)
     result = Hero.battle(self.hero, self.enemy_hero)
     self.assertEqual(self.hero.level, 101)
     self.assertEqual(self.hero.health, 405)
     self.assertEqual(self.hero.damage, 10)
     self.assertEqual(result, 'You win')
Пример #5
0
 def test_if_enemy_health_is_above_zero_after_battle_and_hero_loses_the_battle(self):
     self.hero = Hero('Miro', 100, 850, 5)
     self.enemy_hero = Hero('Prodigy', 90, 830, 5)
     result = Hero.battle(self.hero, self.enemy_hero)
     self.assertEqual(self.enemy_hero.level, 91)
     self.assertEqual(self.enemy_hero.health, 335)
     self.assertEqual(self.enemy_hero.damage, 10)
     self.assertEqual(result, "You lose")
Пример #6
0
 def test_battle_intruder_has_zero_health(self):
     hero_test_with_zero = Hero('ZeroName', 1, 10, 100)
     intruder_hero = Hero('ZeroName2', 1, 0, 100)
     with self.assertRaises(ValueError) as ex:
         hero_test_with_zero.battle((intruder_hero))
     self.assertEqual(
         str(ex.exception),
         f"You cannot fight {intruder_hero.username}. He needs to rest")
Пример #7
0
    def test_string_method_prints_the_expected_string(self):
        self.hero = Hero('Miro', 100, 850, 5)

        result = Hero.__str__(self.hero)
        expected_result = f"Hero {self.hero.username}: {self.hero.level} lvl\n" \
                          f"Health: {self.hero.health}\n" \
                          f"Damage: {self.hero.damage}\n"
        self.assertEqual(result, expected_result)
Пример #8
0
    def test_both_enemies_fight_with_the_same_name_raises_exception(self):
        self.hero = Hero('Miro', 100, 850, 5)
        self.enemy_hero = Hero('Prodigy', 90, 830, 5)
        self.enemy_hero.username = self.hero.username

        if check_if_both_names_are_the_same(self.hero.username, self.enemy_hero.username):
            with self.assertRaises(Exception):
                Hero.battle(self.hero, self.enemy_hero)
Пример #9
0
class HeroTest(unittest.TestCase):

    def setUp(self) -> None:
        self.hero = Hero("Bobby", 25, 98, 2)

    def test_constructor(self):
        self.assertEqual("Bobby", self.hero.username)
        self.assertEqual(25, self.hero.level)
        self.assertEqual(98, self.hero.health)
        self.assertEqual(2, self.hero.damage)

    def test_enemy_hero_and_hero_are_equal(self):
        with self.assertRaises(Exception):
            enemy_hero = Hero("Bobby", 25, 98, 2)
            self.hero.battle(enemy_hero)

    def test_battle_hero_health_less_than_zro(self):
        enemy_hero = Hero("Borko", 25, 98, 2)
        self.hero.health = 0
        with self.assertRaises(Exception):
            self.hero.battle(enemy_hero)

    def test_battle_enemy_health_less_than_zro(self):
        enemy_hero = Hero("Borko", 25, 0, 2)
        with self.assertRaises(Exception):
            self.hero.battle(enemy_hero)

    def test_player_health_when_payer_loss(self):
        enemy_hero = Hero("Borko", 25, 75, 2)
        self.assertEqual("You lose", self.hero.battle(enemy_hero) )
        self.assertEqual(48, self.hero.health)
        self.assertEqual(30, enemy_hero.health)
        self.assertEqual(26, enemy_hero.level)
        self.assertEqual(7, enemy_hero.damage)

    def test_player_health_if_payer_win(self):
        enemy_hero = Hero("Borko", 25, 50, 2)
        self.assertEqual("You win", self.hero.battle(enemy_hero))
        self.assertEqual(53, self.hero.health)
        self.assertEqual(0, enemy_hero.health)
        self.assertEqual(26, self.hero.level)
        self.assertEqual(7, self.hero.damage)

    def test_if_hero_and_enemy_are_equal_to_zero(self):
        enemy_hero = Hero("Borko", 49, 50, 2)
        self.assertEqual("Draw", self.hero.battle(enemy_hero))

    def test_repr_hero(self):
        expect = f"Hero Bobby: 25 lvl\nHealth: 98\nDamage: 2\n"
        self.assertEqual(expect, self.hero.__str__())
Пример #10
0
 def test_battle__when_enemy_health_is_negative__should_raise_value_error(
         self):
     enemy = Hero('enemy', 1, -1.0, 10.0)
     with self.assertRaises(ValueError) as exc:
         self.hero.battle(enemy)
     msg = f"You cannot fight {enemy.username}. He needs to rest"
     self.assertEqual(msg, str(exc.exception))
Пример #11
0
 def test_hero_health__when_hero_health_goes_to_zero_after_battle__return_msg(
         self):
     enemy = Hero("Enemy", 2, 9, 2)
     self.hero.health = 4
     expected_msg = "Draw"
     actual_msg = f"{self.hero.battle(enemy)}"
     self.assertEqual(expected_msg, actual_msg)
Пример #12
0
 def test_hero_health_in_battle__if_below__expect_ValueError(self):
     enemy = Hero("Enemy", 99, 100, 999)
     self.hero.health = -1
     with self.assertRaises(ValueError) as context:
         self.hero.battle(enemy)
     expected = "Your health is lower than or equal to 0. You need to rest"
     self.assertEqual(expected, str(context.exception))
Пример #13
0
 def test_hero_enemy_name__when_enemy_name_is_same_as_hero_name_expect_exception(
         self):
     enemy = Hero("TestName", 99, 100, 999)
     with self.assertRaises(Exception) as context:
         self.hero.battle(enemy)
     expected = "You cannot fight yourself"
     self.assertEqual(expected, str(context.exception))
Пример #14
0
 def test_hero_battle__when_hero_health_drop_to_zero_after_battle__return_msg(
         self):
     enemy = Hero("Enemy", 2, 100, 2)
     self.hero.health = 4
     expected_msg = "You lose"
     actual_msg = f"{self.hero.battle(enemy)}"
     self.assertEqual(expected_msg, actual_msg)
Пример #15
0
 def test_player_health_if_payer_win(self):
     enemy_hero = Hero("Borko", 25, 50, 2)
     self.assertEqual("You win", self.hero.battle(enemy_hero))
     self.assertEqual(53, self.hero.health)
     self.assertEqual(0, enemy_hero.health)
     self.assertEqual(26, self.hero.level)
     self.assertEqual(7, self.hero.damage)
Пример #16
0
 def test_player_health_when_payer_loss(self):
     enemy_hero = Hero("Borko", 25, 75, 2)
     self.assertEqual("You lose", self.hero.battle(enemy_hero) )
     self.assertEqual(48, self.hero.health)
     self.assertEqual(30, enemy_hero.health)
     self.assertEqual(26, enemy_hero.level)
     self.assertEqual(7, enemy_hero.damage)
Пример #17
0
 def test_battle_only_enemy_health_is_zero(self):
     hero2 = Hero("Manol", 5, 50, 10)
     result = self.hero1.battle(hero2)
     self.assertEqual(6, self.hero1.level)
     self.assertEqual(55, self.hero1.health)
     self.assertEqual(15, self.hero1.damage)
     self.assertEqual("You win", result)
Пример #18
0
 def test_battle__when_hero_health_is_0__should_raise_value_error(self):
     enemy = Hero('enemy', 1, 100.0, 10.0)
     self.hero.health = 0
     with self.assertRaises(ValueError) as exc:
         self.hero.battle(enemy)
     msg = "Your health is lower than or equal to 0. You need to rest"
     self.assertEqual(msg, str(exc.exception))
Пример #19
0
 def test_battle_health_equal_to_zero_raises_value_error(self):
     self.hero1.health = 0
     hero2 = Hero("Manol", 5, 100, 10)
     with self.assertRaises(ValueError) as ex:
         self.hero1.battle(hero2)
     self.assertEqual(
         "Your health is lower than or equal to 0. You need to rest",
         str(ex.exception))
Пример #20
0
 def test_battle_only_your_health_is_zero(self):
     self.hero1.health = 50
     hero2 = Hero("Manol", 5, 200, 10)
     result = self.hero1.battle(hero2)
     self.assertEqual(6, hero2.level)
     self.assertEqual(155, hero2.health)
     self.assertEqual(15, hero2.damage)
     self.assertEqual("You lose", result)
Пример #21
0
 def test_hero_battle_enemy_win(self):
     h = Hero('Test1', 23, 100, 200)
     rv = self.hero.battle(h)
     self.assertTrue(self.hero.health <= 0)
     self.assertEqual('You lose', rv)
     self.assertEqual(24, h.level)
     self.assertEqual(205, h.damage)
     self.assertEqual(95, h.health)
Пример #22
0
 def test_hero_battle_hero_win(self):
     h = Hero('Test1', 2, 10, 2)
     rv = self.hero.battle(h)
     self.assertTrue(h.health <= 0)
     self.assertEqual('You win', rv)
     self.assertEqual(2, self.hero.level)
     self.assertEqual(15, self.hero.damage)
     self.assertEqual(101, self.hero.health)
Пример #23
0
    def test_battle_exception_if_enemy_hero_has_lower_health(self):
        with self.assertRaises(Exception) as context:
            enemy_hero = Hero('Enemy Hero Pesho', 5, 0, 3)
            self.hero.battle(enemy_hero)

        self.assertEqual(
            f'You cannot fight {enemy_hero.username}. He needs to rest',
            str(context.exception))
Пример #24
0
 def test_hero_battle_when_enemy_hero_wins(self):
     enemy_hero = Hero('Knight', 11, 10000, 110)
     expected_result = "You lose"
     actual_result = self.hero.battle(enemy_hero)
     self.assertEqual(expected_result, actual_result)
     self.assertEqual(12, enemy_hero.level)
     self.assertEqual(9003, enemy_hero.health)
     self.assertEqual(115, enemy_hero.damage)
Пример #25
0
 def test_hero_battle_when_hero_wins(self):
     enemy_hero = Hero('Knight', 5, 100, 3)
     expected_result = "You win"
     actual_result = self.hero.battle(enemy_hero)
     self.assertEqual(expected_result, actual_result)
     self.assertEqual(11, self.hero.level)
     self.assertEqual(990.1, self.hero.health)
     self.assertEqual(105.2, self.hero.damage)
Пример #26
0
 def test_hero_battle_when_hero_health_is_less_than_0(self):
     enemy_hero = Hero('Hero', 5, 100, 3)
     self.hero.health = -5
     with self.assertRaises(ValueError) as context:
         self.hero.battle(enemy_hero)
     self.assertEqual(
         "Your health is lower than or equal to 0. You need to rest",
         str(context.exception))
Пример #27
0
    def test_battle_exception_if_hero_lower_health(self):
        with self.assertRaises(Exception) as context:
            self.hero.health = 0
            enemy_hero = Hero('Hero', 5, 100, 3)
            self.hero.battle(enemy_hero)

        self.assertEqual(
            'Your health is lower than or equal to 0. You need to rest',
            str(context.exception))
Пример #28
0
class TestHero(TestCase):
    username = '******'
    health = 100.00
    damage = 20.00
    level = 12

    enemy_username = '******'
    enemy_health = 240
    enemy_damage = 10.00
    enemy_level = 10

    def setUp(self):
        self.hero = Hero(self.username, self.level, self.health, self.damage)
        self.enemy = Hero(self.enemy_username, self.enemy_level, self.enemy_health, self.enemy_damage)

    def test_initialize_correct_values(self):
        self.assertEqual(self.username, self.hero.username)
        self.assertEqual(self.health, self.hero.health)
        self.assertEqual(self.damage, self.hero.damage)
        self.assertEqual(self.level, self.hero.level)

    def test_can_not_fight_yourself(self):
        with self.assertRaises(Exception):
            self.hero.battle(self.hero)

    def test_can_not_fight_when_hero_health_is_zero(self):
        self.hero.health = 0
        with self.assertRaises(ValueError):
            self.hero.battle(self.enemy)

        # self.assertEqual("Your health is lower than or equal to 0. You need to rest", str(ex.exception))

    def test_can_not_fight_when_enemy_health_is_zero(self):
        self.enemy.health = 0
        with self.assertRaises(ValueError):
            self.hero.battle(self.enemy)

        # self.assertEqual(f"You cannot fight {self.enemy_username}. He needs to rest", str(ex.exception))

    def test_hero_and_enemy_health_is_zero(self):
        self.assertEqual('Draw', self.hero.battle(self.enemy))

    def test_hero_wins_after_battle_and_values_increase(self):
        self.hero.health += 100

        self.assertEqual('You win', self.hero.battle(self.enemy))
        self.assertEqual(self.level + 1, self.hero.level)
        self.assertEqual(self.health + 5, self.hero.health)
        self.assertEqual(self.damage + 5, self.hero.damage)

        self.assertTrue(self.enemy.health <= 0)

    def test_enemy_wins_after_battle_and_values_increase(self):
        self.enemy.health += 240

        self.assertEqual('You lose', self.hero.battle(self.enemy))
        self.assertEqual(self.enemy_level + 1, self.enemy.level)
        self.assertEqual(self.enemy_health + 5, self.enemy.health)
        self.assertEqual(self.enemy_damage + 5, self.enemy.damage)

        self.assertTrue(self.hero.health <= 0)

    def test_hero_string_representation(self):
        self.assertEqual(f"Hero {self.username}: {self.level} lvl\nHealth: {self.health}\nDamage: {self.damage}\n",
                         self.hero.__str__())

    def test_enemy_string_representation(self):
        self.assertEqual(
            f"Hero {self.enemy_username}: {self.enemy_level} lvl\nHealth: {self.enemy_health}\nDamage: {self.enemy_damage}\n",
            self.enemy.__str__())
Пример #29
0
from project.elf import Elf
from project.hero import Hero

hero = Hero("H", 4)
print(hero.username)
print(hero.level)
print(str(hero))
elf = Elf("E", 4)
print(str(elf))
print(elf.__class__.__bases__[0].__name__)
print(elf.username)
print(elf.level)
Пример #30
0
 def setUp(self):
     self.hero = Hero(self.username, self.level, self.health, self.damage)
     self.enemy = Hero(self.enemy_username, self.enemy_level, self.enemy_health, self.enemy_damage)