Пример #1
0
def test_attack():
    unit1 = Unit('SoLdIeR', 100, 100, 10)
    unit2 = Unit('SoLdIeR', 100, 100, 10)
    assert unit1.hp == 100
    assert unit2.hp == 100
    unit1.attack(unit2)
    assert unit1.hp == 95
    assert unit2.hp == 90
Пример #2
0
def test_unit_attack():
    soldier = Unit('Soldier', 100, 20)
    warrior = Unit('Warrior', 100, 20)

    assert soldier.hp == 100
    assert warrior.hp == 100

    soldier.attack(warrior)

    assert soldier.hp == 90
    assert warrior.hp == 80
Пример #3
0
def test_unit_attack_exception():
    soldier = Unit('Soldier', 0, 20)
    warrior = Unit('Warrior', 100, 20)

    with pytest.raises(UnitIsDeadException):
        soldier.attack(warrior)

    with pytest.raises(UnitIsDeadException):
        soldier.counter_attack(warrior)

    with pytest.raises(UnitIsDeadException):
        soldier.take_damage(warrior.damage)
Пример #4
0
def test_unit_constructor():
    soldier = Unit('Soldier', 100, 20)

    assert soldier.name == 'Soldier'
    assert soldier.hp == 100
    assert soldier.max_hp == 100
    assert soldier.damage == 20
Пример #5
0
def test_addHitPoints():
    unit1 = Unit('SoLdIeR', 50, 100, 10)
    unit1.addHitPoints(40)
    assert unit1.hp == 90

    unit1.addHitPoints(40)
    assert unit1.hp == 100
Пример #6
0
def test_unit_setter():
    soldier = Unit('Soldier', 100, 20)

    assert soldier.hp == 100

    soldier.hp = 50
    assert soldier.hp == 50

    soldier.hp += 50
    assert soldier.hp == 100

    soldier.hp -= 90
    assert soldier.hp == 10

    with pytest.raises(ValueError):
        soldier.hp = -100

    assert soldier.hp == 10

    with pytest.raises(ValueError):
        soldier.hp -= 100

    assert soldier.hp == 10
Пример #7
0
def test_unit_setters():
    soldier = Unit('SoLdIeR', 100, 100, 20)
    assert soldier.hp == 100

    soldier.hp = 50
    assert soldier.hp == 50

    soldier.hp += 50
    assert soldier.hp == 100

    soldier.maxHP -= 90
    assert soldier.maxHP == 10

    with pytest.raises(ValueError):
        soldier.hp = -100

    with pytest.raises(ValueError):
        soldier.hp -= 100

    soldier.dmg = 50
    assert soldier.dmg == 50

    soldier.name = 'Ivan'
    assert soldier.name == 'Ivan'
Пример #8
0
def test_add_hit_points(actual, expected):
    unit = Unit('Soldier', 100, 20)
    unit.hp = 50
    unit.add_hit_points(actual)
    assert unit.hp == expected
Пример #9
0
def test_unit_to_string():
    soldier = Unit('Soldier', 100, 20)

    assert str(soldier) == 'Soldier: (100/100), dmg: 20'
Пример #10
0
def test_damage_greater_than_hp():
    soldier = Unit('Soldier', 20, 20)

    soldier.take_damage(30)
    assert soldier.hp == 0
Пример #11
0
 def load(self, gene):
     return Unit(gene=gene)
Пример #12
0
def test_counter_attack_exception():
    unit1 = Unit('SoLdIeR', 100, 100, 50)
    unit2 = Unit('SoLdIeR', 100, 100, 210)
    with pytest.raises(UnitIsDeadException):
        unit1.attack(unit2)
Пример #13
0
def test_takeDamage():
    unit1 = Unit('SoLdIeR', 100, 100, 10)
    unit1.takeDamage(40)
    assert unit1.hp == 60
Пример #14
0
def test__check_type_exception(value2, exception_type2):
    soldier = Unit('SoLdIeR', 100, 100, 20)

    with pytest.raises(exception_type2):
        soldier.check_type(value2)