Resolve unit tests
This commit is contained in:
parent
a4eff902cc
commit
705d47fe47
14 changed files with 291 additions and 350 deletions
|
|
@ -43,4 +43,4 @@ class TestCharacters(BaseEvenniaTest):
|
|||
# can't get more coins than we have
|
||||
result = self.character.at_pay(100)
|
||||
self.assertEqual(result, 40)
|
||||
self.assertEqual(self.characer.coins, 0)
|
||||
self.assertEqual(self.character.coins, 0)
|
||||
|
|
|
|||
64
evennia/contrib/tutorials/evadventure/tests/test_chargen.py
Normal file
64
evennia/contrib/tutorials/evadventure/tests/test_chargen.py
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
"""
|
||||
Test chargen.
|
||||
|
||||
"""
|
||||
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from evennia import create_object
|
||||
from evennia.utils.test_resources import BaseEvenniaTest
|
||||
from parameterized import parameterized
|
||||
|
||||
from .. import chargen, enums, objects
|
||||
|
||||
|
||||
class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
||||
"""
|
||||
Test the Character generator in the rule engine.
|
||||
|
||||
"""
|
||||
|
||||
@patch("evennia.contrib.tutorials.evadventure.rules.randint")
|
||||
def setUp(self, mock_randint):
|
||||
super().setUp()
|
||||
mock_randint.return_value = 10
|
||||
self.chargen = chargen.TemporaryCharacterSheet()
|
||||
|
||||
def test_base_chargen(self):
|
||||
self.assertEqual(self.chargen.strength, 10) # not realistic, due to mock
|
||||
self.assertEqual(self.chargen.armor, "gambeson")
|
||||
self.assertEqual(self.chargen.shield, "shield")
|
||||
self.assertEqual(
|
||||
self.chargen.backpack, ["ration", "ration", "waterskin", "waterskin", "drill", "twine"]
|
||||
)
|
||||
|
||||
def test_build_desc(self):
|
||||
self.assertEqual(
|
||||
self.chargen.desc,
|
||||
"You are scrawny with a broken face, pockmarked skin, greased hair, hoarse speech, and "
|
||||
"stained clothing. You were a Herbalist, but you were exiled and ended up a knave. You "
|
||||
"are honest but also irascible. You tend towards neutrality.",
|
||||
)
|
||||
|
||||
@patch("evennia.contrib.tutorials.evadventure.chargen.spawn")
|
||||
def test_apply(self, mock_spawn):
|
||||
|
||||
gambeson = create_object(objects.EvAdventureArmor, key="gambeson")
|
||||
mock_spawn.return_value = gambeson
|
||||
|
||||
character = self.chargen.apply()
|
||||
|
||||
self.assertIn("Herbalist", character.db.desc)
|
||||
self.assertEqual(
|
||||
character.equipment.all(),
|
||||
[
|
||||
(None, enums.WieldLocation.WEAPON_HAND),
|
||||
(None, enums.WieldLocation.SHIELD_HAND),
|
||||
(None, enums.WieldLocation.TWO_HANDS),
|
||||
(gambeson, enums.WieldLocation.BODY),
|
||||
(None, enums.WieldLocation.HEAD),
|
||||
],
|
||||
)
|
||||
|
||||
gambeson.delete()
|
||||
character.delete()
|
||||
|
|
@ -4,7 +4,10 @@ Test the EvAdventure equipment handler.
|
|||
"""
|
||||
|
||||
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from evennia.utils.test_resources import BaseEvenniaTest
|
||||
from parameterized import parameterized
|
||||
|
||||
from ..enums import Ability, WieldLocation
|
||||
from ..equipment import EquipmentError
|
||||
|
|
@ -20,13 +23,6 @@ class TestEquipment(EvAdventureMixin, BaseEvenniaTest):
|
|||
setattr(self.character, Ability.CON.value, 3)
|
||||
self.assertEqual(self.character.equipment.max_slots, 13)
|
||||
|
||||
def test_validate_slot_usage(self):
|
||||
helmet = self.helmet
|
||||
self.assertTrue(self.character.equipment.validate_slot_usage(helmet))
|
||||
helmet.size = 20 # a very large helmet
|
||||
with self.assertRaises(EquipmentError):
|
||||
self.assertFalse(self.character.equipment.validate_slot_usage(helmet))
|
||||
|
||||
def test_add__remove(self):
|
||||
self.character.equipment.add(self.helmet)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.BACKPACK], [self.helmet])
|
||||
|
|
@ -53,6 +49,141 @@ class TestEquipment(EvAdventureMixin, BaseEvenniaTest):
|
|||
)
|
||||
|
||||
self.assertEqual(
|
||||
self.character.equipment.get_all(),
|
||||
[(self.helmet, WieldLocation.BACKPACK), (self.weapon, WieldLocation.BACKPACK)],
|
||||
self.character.equipment.all(),
|
||||
[
|
||||
(None, WieldLocation.WEAPON_HAND),
|
||||
(None, WieldLocation.SHIELD_HAND),
|
||||
(None, WieldLocation.TWO_HANDS),
|
||||
(None, WieldLocation.BODY),
|
||||
(None, WieldLocation.HEAD),
|
||||
(self.helmet, WieldLocation.BACKPACK),
|
||||
(self.weapon, WieldLocation.BACKPACK),
|
||||
],
|
||||
)
|
||||
|
||||
def _get_empty_slots(self):
|
||||
return {
|
||||
WieldLocation.BACKPACK: [],
|
||||
WieldLocation.WEAPON_HAND: None,
|
||||
WieldLocation.SHIELD_HAND: None,
|
||||
WieldLocation.TWO_HANDS: None,
|
||||
WieldLocation.BODY: None,
|
||||
WieldLocation.HEAD: None,
|
||||
}
|
||||
|
||||
def test_equipmenthandler_max_slots(self):
|
||||
self.assertEqual(self.character.equipment.max_slots, 11)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
# size, pass_validation?
|
||||
(1, True),
|
||||
(2, True),
|
||||
(11, True),
|
||||
(12, False),
|
||||
(20, False),
|
||||
(25, False),
|
||||
]
|
||||
)
|
||||
def test_validate_slot_usage(self, size, is_ok):
|
||||
obj = MagicMock()
|
||||
obj.size = size
|
||||
|
||||
with patch("evennia.contrib.tutorials.evadventure.equipment.inherits_from") as mock_inherit:
|
||||
mock_inherit.return_value = True
|
||||
if is_ok:
|
||||
self.assertTrue(self.character.equipment.validate_slot_usage(obj))
|
||||
else:
|
||||
with self.assertRaises(EquipmentError):
|
||||
self.character.equipment.validate_slot_usage(obj)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
# item, where
|
||||
("helmet", WieldLocation.HEAD),
|
||||
("shield", WieldLocation.SHIELD_HAND),
|
||||
("armor", WieldLocation.BODY),
|
||||
("weapon", WieldLocation.WEAPON_HAND),
|
||||
("big_weapon", WieldLocation.TWO_HANDS),
|
||||
("item", WieldLocation.BACKPACK),
|
||||
]
|
||||
)
|
||||
def test_move(self, itemname, where):
|
||||
self.assertEqual(self.character.equipment.slots, self._get_empty_slots())
|
||||
|
||||
obj = getattr(self, itemname)
|
||||
self.character.equipment.move(obj)
|
||||
# check that item ended up in the right place
|
||||
if where is WieldLocation.BACKPACK:
|
||||
self.assertTrue(obj in self.character.equipment.slots[where])
|
||||
else:
|
||||
self.assertEqual(self.character.equipment.slots[where], obj)
|
||||
|
||||
def test_add(self):
|
||||
self.character.equipment.add(self.weapon)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.WEAPON_HAND], None)
|
||||
self.assertTrue(self.weapon in self.character.equipment.slots[WieldLocation.BACKPACK])
|
||||
|
||||
def test_two_handed_exclusive(self):
|
||||
"""Two-handed weapons can't be used together with weapon+shield"""
|
||||
self.character.equipment.move(self.big_weapon)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.TWO_HANDS], self.big_weapon)
|
||||
# equipping sword or shield removes two-hander
|
||||
self.character.equipment.move(self.shield)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], self.shield)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.TWO_HANDS], None)
|
||||
self.character.equipment.move(self.weapon)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.WEAPON_HAND], self.weapon)
|
||||
|
||||
# the two-hander removes the two weapons
|
||||
self.character.equipment.move(self.big_weapon)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.TWO_HANDS], self.big_weapon)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.WEAPON_HAND], None)
|
||||
|
||||
def test_remove__with_obj(self):
|
||||
self.character.equipment.move(self.shield)
|
||||
self.character.equipment.move(self.item)
|
||||
self.character.equipment.add(self.weapon)
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], self.shield)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[WieldLocation.BACKPACK], [self.item, self.weapon]
|
||||
)
|
||||
|
||||
self.assertEqual(self.character.equipment.remove(self.shield), [self.shield])
|
||||
self.assertEqual(self.character.equipment.remove(self.item), [self.item])
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.BACKPACK], [self.weapon])
|
||||
|
||||
def test_remove__with_slot(self):
|
||||
self.character.equipment.move(self.shield)
|
||||
self.character.equipment.move(self.item)
|
||||
self.character.equipment.add(self.helmet)
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], self.shield)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[WieldLocation.BACKPACK], [self.item, self.helmet]
|
||||
)
|
||||
|
||||
self.assertEqual(self.character.equipment.remove(WieldLocation.SHIELD_HAND), [self.shield])
|
||||
self.assertEqual(
|
||||
self.character.equipment.remove(WieldLocation.BACKPACK), [self.item, self.helmet]
|
||||
)
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(self.character.equipment.slots[WieldLocation.BACKPACK], [])
|
||||
|
||||
def test_properties(self):
|
||||
self.character.equipment.move(self.armor)
|
||||
self.assertEqual(self.character.equipment.armor, 1)
|
||||
self.character.equipment.move(self.shield)
|
||||
self.assertEqual(self.character.equipment.armor, 2)
|
||||
self.character.equipment.move(self.helmet)
|
||||
self.assertEqual(self.character.equipment.armor, 3)
|
||||
|
||||
self.character.equipment.move(self.weapon)
|
||||
self.assertEqual(self.character.equipment.weapon, self.weapon)
|
||||
self.character.equipment.move(self.big_weapon)
|
||||
self.assertEqual(self.character.equipment.weapon, self.big_weapon)
|
||||
|
|
|
|||
|
|
@ -151,24 +151,20 @@ class EvAdventureRollEngineTest(BaseEvenniaTest):
|
|||
mock_randint.return_value = 10
|
||||
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table(
|
||||
"1d20", random_tables.character_generation["physique"]
|
||||
),
|
||||
self.roll_engine.roll_random_table("1d20", random_tables.chargen_tables["physique"]),
|
||||
"scrawny",
|
||||
)
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table("1d20", random_tables.character_generation["vice"]),
|
||||
self.roll_engine.roll_random_table("1d20", random_tables.chargen_tables["vice"]),
|
||||
"irascible",
|
||||
)
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table(
|
||||
"1d20", random_tables.character_generation["alignment"]
|
||||
),
|
||||
self.roll_engine.roll_random_table("1d20", random_tables.chargen_tables["alignment"]),
|
||||
"neutrality",
|
||||
)
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table(
|
||||
"1d20", random_tables.character_generation["helmets and shields"]
|
||||
"1d20", random_tables.chargen_tables["helmets and shields"]
|
||||
),
|
||||
"no helmet or shield",
|
||||
)
|
||||
|
|
@ -176,14 +172,14 @@ class EvAdventureRollEngineTest(BaseEvenniaTest):
|
|||
mock_randint.return_value = 25
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table(
|
||||
"1d20", random_tables.character_generation["helmets and shields"]
|
||||
"1d20", random_tables.chargen_tables["helmets and shields"]
|
||||
),
|
||||
"helmet and shield",
|
||||
)
|
||||
mock_randint.return_value = -10
|
||||
self.assertEqual(
|
||||
self.roll_engine.roll_random_table(
|
||||
"1d20", random_tables.character_generation["helmets and shields"]
|
||||
"1d20", random_tables.chargen_tables["helmets and shields"]
|
||||
),
|
||||
"no helmet or shield",
|
||||
)
|
||||
|
|
@ -202,17 +198,15 @@ class EvAdventureRollEngineTest(BaseEvenniaTest):
|
|||
@patch("evennia.contrib.tutorials.evadventure.rules.randint")
|
||||
def test_heal_from_rest(self, mock_randint):
|
||||
character = MagicMock()
|
||||
character.heal = MagicMock()
|
||||
character.hp_max = 8
|
||||
character.hp = 1
|
||||
character.constitution = 1
|
||||
|
||||
mock_randint.return_value = 5
|
||||
self.roll_engine.heal_from_rest(character)
|
||||
self.assertEqual(character.hp, 7) # hp + 1d8 + consititution bonus
|
||||
mock_randint.assert_called_with(1, 8) # 1d8
|
||||
|
||||
self.roll_engine.heal_from_rest(character)
|
||||
self.assertEqual(character.hp, 8) # can't have more than max hp
|
||||
character.heal.assert_called_with(6) # roll + constitution bonus
|
||||
|
||||
@patch("evennia.contrib.tutorials.evadventure.rules.randint")
|
||||
def test_roll_death(self, mock_randint):
|
||||
|
|
@ -229,233 +223,3 @@ class EvAdventureRollEngineTest(BaseEvenniaTest):
|
|||
mock_randint.return_value = 3
|
||||
self.roll_engine.roll_death(character)
|
||||
self.assertEqual(character.strength, 10)
|
||||
|
||||
|
||||
class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
||||
"""
|
||||
Test the Character generator in the rule engine.
|
||||
|
||||
"""
|
||||
|
||||
@patch("evennia.contrib.tutorials.evadventure.rules.randint")
|
||||
def setUp(self, mock_randint):
|
||||
super().setUp()
|
||||
mock_randint.return_value = 10
|
||||
self.chargen = rules.EvAdventureCharacterGeneration()
|
||||
|
||||
def test_base_chargen(self):
|
||||
self.assertEqual(self.chargen.strength, 2)
|
||||
self.assertEqual(self.chargen.physique, "scrawny")
|
||||
self.assertEqual(self.chargen.skin, "pockmarked")
|
||||
self.assertEqual(self.chargen.hair, "greased")
|
||||
self.assertEqual(self.chargen.clothing, "stained")
|
||||
self.assertEqual(self.chargen.misfortune, "exiled")
|
||||
self.assertEqual(self.chargen.armor, "gambeson")
|
||||
self.assertEqual(self.chargen.shield, "shield")
|
||||
self.assertEqual(
|
||||
self.chargen.backpack, ["ration", "ration", "waterskin", "waterskin", "drill", "twine"]
|
||||
)
|
||||
|
||||
def test_build_desc(self):
|
||||
self.assertEqual(
|
||||
self.chargen.build_desc(),
|
||||
"Herbalist. Wears stained clothes, and has hoarse speech. Has a scrawny physique, "
|
||||
"a broken face, pockmarked skin and greased hair. Is honest, but irascible. "
|
||||
"Has been exiled in the past. Favors neutrality.",
|
||||
)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
# source, target, value, new_source_val, new_target_val
|
||||
(enums.Ability.CON, enums.Ability.STR, 1, 1, 3),
|
||||
(enums.Ability.INT, enums.Ability.DEX, 1, 1, 3),
|
||||
(enums.Ability.CHA, enums.Ability.CON, 1, 1, 3),
|
||||
(enums.Ability.STR, enums.Ability.WIS, 1, 1, 3),
|
||||
(enums.Ability.WIS, enums.Ability.CHA, 1, 1, 3),
|
||||
(enums.Ability.DEX, enums.Ability.DEX, 1, 2, 2),
|
||||
]
|
||||
)
|
||||
def test_adjust_attribute(self, source, target, value, new_source_val, new_target_val):
|
||||
self.chargen.adjust_attribute(source, target, value)
|
||||
self.assertEqual(getattr(self.chargen, source.value), new_source_val, f"{source}->{target}")
|
||||
self.assertEqual(getattr(self.chargen, target.value), new_target_val, f"{source}->{target}")
|
||||
|
||||
def test_adjust_consecutive(self):
|
||||
# gradually shift all to STR (starts at 2)
|
||||
self.chargen.adjust_attribute(enums.Ability.CON, enums.Ability.STR, 1)
|
||||
self.chargen.adjust_attribute(enums.Ability.CHA, enums.Ability.STR, 1)
|
||||
self.chargen.adjust_attribute(enums.Ability.DEX, enums.Ability.STR, 1)
|
||||
self.chargen.adjust_attribute(enums.Ability.WIS, enums.Ability.STR, 1)
|
||||
self.assertEqual(self.chargen.constitution, 1)
|
||||
self.assertEqual(self.chargen.strength, 6)
|
||||
|
||||
# max is 6
|
||||
with self.assertRaises(ValueError):
|
||||
self.chargen.adjust_attribute(enums.Ability.INT, enums.Ability.STR, 1)
|
||||
# minimum is 1
|
||||
with self.assertRaises(ValueError):
|
||||
self.chargen.adjust_attribute(enums.Ability.DEX, enums.Ability.WIS, 1)
|
||||
|
||||
# move all from str to wis
|
||||
self.chargen.adjust_attribute(enums.Ability.STR, enums.Ability.WIS, 5)
|
||||
|
||||
self.assertEqual(self.chargen.strength, 1)
|
||||
self.assertEqual(self.chargen.wisdom, 6)
|
||||
|
||||
def test_apply(self):
|
||||
character = MagicMock()
|
||||
|
||||
self.chargen.apply(character)
|
||||
|
||||
self.assertTrue(character.db.desc.startswith("Herbalist"))
|
||||
self.assertEqual(character.armor, "gambeson")
|
||||
|
||||
character.equipment.add.assert_called()
|
||||
|
||||
|
||||
class EvAdventureEquipmentTest(EvAdventureMixin, BaseEvenniaTest):
|
||||
"""
|
||||
Test the equipment mechanism.
|
||||
|
||||
"""
|
||||
|
||||
def _get_empty_slots(self):
|
||||
return {
|
||||
enums.WieldLocation.BACKPACK: [],
|
||||
enums.WieldLocation.WEAPON_HAND: None,
|
||||
enums.WieldLocation.SHIELD_HAND: None,
|
||||
enums.WieldLocation.TWO_HANDS: None,
|
||||
enums.WieldLocation.BODY: None,
|
||||
enums.WieldLocation.HEAD: None,
|
||||
}
|
||||
|
||||
def test_equipmenthandler_max_slots(self):
|
||||
self.assertEqual(self.character.equipment.max_slots, 11)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
# size, pass_validation?
|
||||
(1, True),
|
||||
(2, True),
|
||||
(11, True),
|
||||
(12, False),
|
||||
(20, False),
|
||||
(25, False),
|
||||
]
|
||||
)
|
||||
def test_validate_slot_usage(self, size, is_ok):
|
||||
obj = MagicMock()
|
||||
obj.size = size
|
||||
|
||||
if is_ok:
|
||||
self.assertTrue(self.character.equipment.validate_slot_usage(obj))
|
||||
else:
|
||||
with self.assertRaises(equipment.EquipmentError):
|
||||
self.character.equipment.validate_slot_usage(obj)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
# item, where
|
||||
("helmet", enums.WieldLocation.HEAD),
|
||||
("shield", enums.WieldLocation.SHIELD_HAND),
|
||||
("armor", enums.WieldLocation.BODY),
|
||||
("weapon", enums.WieldLocation.WEAPON_HAND),
|
||||
("big_weapon", enums.WieldLocation.TWO_HANDS),
|
||||
("item", enums.WieldLocation.BACKPACK),
|
||||
]
|
||||
)
|
||||
def test_use(self, itemname, where):
|
||||
self.assertEqual(self.character.equipment.slots, self._get_empty_slots())
|
||||
|
||||
obj = getattr(self, itemname)
|
||||
self.character.equipment.use(obj)
|
||||
# check that item ended up in the right place
|
||||
if where is enums.WieldLocation.BACKPACK:
|
||||
self.assertTrue(obj in self.character.equipment.slots[where])
|
||||
else:
|
||||
self.assertEqual(self.character.equipment.slots[where], obj)
|
||||
|
||||
def test_add(self):
|
||||
self.character.equipment.add(self.weapon)
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.WEAPON_HAND], None)
|
||||
self.assertTrue(self.weapon in self.character.equipment.slots[enums.WieldLocation.BACKPACK])
|
||||
|
||||
def test_two_handed_exclusive(self):
|
||||
"""Two-handed weapons can't be used together with weapon+shield"""
|
||||
self.character.equipment.use(self.big_weapon)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.TWO_HANDS], self.big_weapon
|
||||
)
|
||||
# equipping sword or shield removes two-hander
|
||||
self.character.equipment.use(self.shield)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], self.shield
|
||||
)
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.TWO_HANDS], None)
|
||||
self.character.equipment.use(self.weapon)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.WEAPON_HAND], self.weapon
|
||||
)
|
||||
|
||||
# the two-hander removes the two weapons
|
||||
self.character.equipment.use(self.big_weapon)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.TWO_HANDS], self.big_weapon
|
||||
)
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.WEAPON_HAND], None)
|
||||
|
||||
def test_remove__with_obj(self):
|
||||
self.character.equipment.use(self.shield)
|
||||
self.character.equipment.use(self.item)
|
||||
self.character.equipment.add(self.weapon)
|
||||
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], self.shield
|
||||
)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.BACKPACK], [self.item, self.weapon]
|
||||
)
|
||||
|
||||
self.assertEqual(self.character.equipment.remove(self.shield), [self.shield])
|
||||
self.assertEqual(self.character.equipment.remove(self.item), [self.item])
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.BACKPACK], [self.weapon]
|
||||
)
|
||||
|
||||
def test_remove__with_slot(self):
|
||||
self.character.equipment.use(self.shield)
|
||||
self.character.equipment.use(self.item)
|
||||
self.character.equipment.add(self.helmet)
|
||||
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], self.shield
|
||||
)
|
||||
self.assertEqual(
|
||||
self.character.equipment.slots[enums.WieldLocation.BACKPACK], [self.item, self.helmet]
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
self.character.equipment.remove(enums.WieldLocation.SHIELD_HAND), [self.shield]
|
||||
)
|
||||
self.assertEqual(
|
||||
self.character.equipment.remove(enums.WieldLocation.BACKPACK), [self.item, self.helmet]
|
||||
)
|
||||
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.SHIELD_HAND], None)
|
||||
self.assertEqual(self.character.equipment.slots[enums.WieldLocation.BACKPACK], [])
|
||||
|
||||
def test_properties(self):
|
||||
self.character.equipment.use(self.armor)
|
||||
self.assertEqual(self.character.equipment.armor, 1)
|
||||
self.character.equipment.use(self.shield)
|
||||
self.assertEqual(self.character.equipment.armor, 2)
|
||||
self.character.equipment.use(self.helmet)
|
||||
self.assertEqual(self.character.equipment.armor, 3)
|
||||
|
||||
self.character.equipment.use(self.weapon)
|
||||
self.assertEqual(self.character.equipment.weapon, self.weapon)
|
||||
self.character.equipment.use(self.big_weapon)
|
||||
self.assertEqual(self.character.equipment.weapon, self.big_weapon)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue