Refactor evadventure test structure
This commit is contained in:
parent
f4c3db1151
commit
6e8e3963dd
6 changed files with 259 additions and 215 deletions
|
|
@ -35,6 +35,7 @@ class CombatFailure(RuntimeError):
|
||||||
Some failure during actions.
|
Some failure during actions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class CombatAction:
|
class CombatAction:
|
||||||
"""
|
"""
|
||||||
This is the base of a combat-action, like 'attack' or defend.
|
This is the base of a combat-action, like 'attack' or defend.
|
||||||
|
|
|
||||||
0
evennia/contrib/tutorials/evadventure/tests/__init__.py
Normal file
0
evennia/contrib/tutorials/evadventure/tests/__init__.py
Normal file
38
evennia/contrib/tutorials/evadventure/tests/mixins.py
Normal file
38
evennia/contrib/tutorials/evadventure/tests/mixins.py
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
"""
|
||||||
|
Helpers for testing evadventure modules.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from evennia.utils import create
|
||||||
|
from ..characters import EvAdventureCharacter
|
||||||
|
from ..objects import EvAdventureObject
|
||||||
|
from .. import enums
|
||||||
|
|
||||||
|
|
||||||
|
class EvAdventureMixin:
|
||||||
|
"""
|
||||||
|
Provides a set of pre-made characters.
|
||||||
|
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
self.character = create.create_object(EvAdventureCharacter, key="testchar")
|
||||||
|
self.helmet = create.create_object(
|
||||||
|
EvAdventureObject, key="helmet",
|
||||||
|
attributes=[("inventory_use_slot", enums.WieldLocation.HEAD),
|
||||||
|
("armor", 1)])
|
||||||
|
self.shield = create.create_object(
|
||||||
|
EvAdventureObject, key="shield",
|
||||||
|
attributes=[("inventory_use_slot", enums.WieldLocation.SHIELD_HAND),
|
||||||
|
("armor", 1)])
|
||||||
|
self.armor = create.create_object(
|
||||||
|
EvAdventureObject, key="armor",
|
||||||
|
attributes=[("inventory_use_slot", enums.WieldLocation.BODY),
|
||||||
|
("armor", 11)])
|
||||||
|
self.weapon = create.create_object(
|
||||||
|
EvAdventureObject, key="weapon",
|
||||||
|
attributes=[("inventory_use_slot", enums.WieldLocation.WEAPON_HAND)])
|
||||||
|
self.big_weapon = create.create_object(
|
||||||
|
EvAdventureObject, key="big_weapon",
|
||||||
|
attributes=[("inventory_use_slot", enums.WieldLocation.TWO_HANDS)])
|
||||||
|
self.item = create.create_object(EvAdventureObject, key="backpack item")
|
||||||
57
evennia/contrib/tutorials/evadventure/tests/test_combat.py
Normal file
57
evennia/contrib/tutorials/evadventure/tests/test_combat.py
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
"""
|
||||||
|
Test EvAdventure combat.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from unittest.mock import patch, MagicMock
|
||||||
|
from evennia.utils.test_resources import BaseEvenniaTest
|
||||||
|
from evennia.utils import create
|
||||||
|
from .mixins import EvAdventureMixin
|
||||||
|
from .. import combat_turnbased
|
||||||
|
from .. charactersd import EvAdventureCharacter
|
||||||
|
|
||||||
|
|
||||||
|
class EvAdventureTurnbasedCombatHandlerTest(EvAdventureMixin, BaseEvenniaTest):
|
||||||
|
"""
|
||||||
|
Test the turn-based combat-handler implementation.
|
||||||
|
|
||||||
|
"""
|
||||||
|
@patch("evennia.contrib.tutorials.evadventure.combat_turnbased"
|
||||||
|
".EvAdventureCombatHandler.interval", new=-1)
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
self.combathandler = combat_turnbased.EvAdventureCombatHandler.objects.create()
|
||||||
|
self.combatant = self.character
|
||||||
|
self.target = create.create_object(EvAdventureCharacter, key="testchar2")
|
||||||
|
self.combathandler.add_combatant(self.combatant)
|
||||||
|
self.combathandler.add_combatant(self.target)
|
||||||
|
|
||||||
|
def test_remove_combatant(self):
|
||||||
|
self.combathandler.remove_combatant(self.character)
|
||||||
|
|
||||||
|
def test_start_turn(self):
|
||||||
|
self.combathandler._start_turn()
|
||||||
|
self.assertEqual(self.combathandler.turn, 1)
|
||||||
|
self.combathandler._start_turn()
|
||||||
|
self.assertEqual(self.combathandler.turn, 2)
|
||||||
|
|
||||||
|
def test_end_of_turn__empty(self):
|
||||||
|
self.combathandler._end_turn()
|
||||||
|
|
||||||
|
def test_register_and_run_action(self):
|
||||||
|
action = combat_turnbased.CombatActionAttack
|
||||||
|
action.use = MagicMock()
|
||||||
|
|
||||||
|
self.combathandler.register_action(action, self.combatant)
|
||||||
|
self.combathandler._end_turn()
|
||||||
|
action.use.assert_called_once()
|
||||||
|
|
||||||
|
@patch("evennia.contrib.tutorials.evadventure.combat_turnbased.rules.randint")
|
||||||
|
def test_attack(self, mock_randint):
|
||||||
|
mock_randint = 8
|
||||||
|
self.combathandler.register_action(
|
||||||
|
combat_turnbased.CombatActionAttack,
|
||||||
|
self.combatant, self.target)
|
||||||
|
self.combathandler._end_turn()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,223 +1,17 @@
|
||||||
"""
|
"""
|
||||||
Tests for EvAdventure.
|
Test the rules and chargen.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from parameterized import parameterized
|
|
||||||
from unittest.mock import patch, MagicMock, call
|
from unittest.mock import patch, MagicMock, call
|
||||||
from evennia.utils import create
|
from parameterized import parameterized
|
||||||
from evennia.utils.test_resources import BaseEvenniaTest
|
from evennia.utils.test_resources import BaseEvenniaTest
|
||||||
from .characters import EvAdventureCharacter, EquipmentHandler, EquipmentError
|
|
||||||
from .objects import EvAdventureObject
|
|
||||||
from . import enums
|
|
||||||
from . import combat_turnbased
|
|
||||||
from . import rules
|
|
||||||
from . import random_tables
|
|
||||||
|
|
||||||
|
from .mixins import EvAdventureMixin
|
||||||
class EvAdventureMixin:
|
from .. import rules
|
||||||
def setUp(self):
|
from .. import enums
|
||||||
super().setUp()
|
from .. import random_tables
|
||||||
self.character = create.create_object(EvAdventureCharacter, key="testchar")
|
from .. import characters
|
||||||
self.helmet = create.create_object(
|
|
||||||
EvAdventureObject, key="helmet",
|
|
||||||
attributes=[("inventory_use_slot", enums.WieldLocation.HEAD),
|
|
||||||
("armor", 1)])
|
|
||||||
self.shield = create.create_object(
|
|
||||||
EvAdventureObject, key="shield",
|
|
||||||
attributes=[("inventory_use_slot", enums.WieldLocation.SHIELD_HAND),
|
|
||||||
("armor", 1)])
|
|
||||||
self.armor = create.create_object(
|
|
||||||
EvAdventureObject, key="armor",
|
|
||||||
attributes=[("inventory_use_slot", enums.WieldLocation.BODY),
|
|
||||||
("armor", 11)])
|
|
||||||
self.weapon = create.create_object(
|
|
||||||
EvAdventureObject, key="weapon",
|
|
||||||
attributes=[("inventory_use_slot", enums.WieldLocation.WEAPON_HAND)])
|
|
||||||
self.big_weapon = create.create_object(
|
|
||||||
EvAdventureObject, key="big_weapon",
|
|
||||||
attributes=[("inventory_use_slot", enums.WieldLocation.TWO_HANDS)])
|
|
||||||
self.item = create.create_object(EvAdventureObject, key="backpack item")
|
|
||||||
|
|
||||||
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(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_store(self):
|
|
||||||
self.character.equipment.store(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.store(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.store(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, 11)
|
|
||||||
self.character.equipment.use(self.shield)
|
|
||||||
self.assertEqual(self.character.equipment.armor, 12)
|
|
||||||
self.character.equipment.use(self.helmet)
|
|
||||||
self.assertEqual(self.character.equipment.armor, 13)
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
class EvAdventureTurnbasedCombatHandlerTest(EvAdventureMixin, BaseEvenniaTest):
|
|
||||||
"""
|
|
||||||
Test the turn-based combat-handler implementation.
|
|
||||||
|
|
||||||
"""
|
|
||||||
@patch("evennia.contrib.tutorials.evadventure.combat_turnbased"
|
|
||||||
".EvAdventureCombatHandler.interval", new=-1)
|
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.combathandler = combat_turnbased.EvAdventureCombatHandler.objects.create()
|
|
||||||
self.combatant = self.character
|
|
||||||
self.target = create.create_object(EvAdventureCharacter, key="testchar2")
|
|
||||||
self.combathandler.add_combatant(self.combatant)
|
|
||||||
self.combathandler.add_combatant(self.target)
|
|
||||||
|
|
||||||
def test_remove_combatant(self):
|
|
||||||
self.combathandler.remove_combatant(self.character)
|
|
||||||
|
|
||||||
def test_start_turn(self):
|
|
||||||
self.combathandler._start_turn()
|
|
||||||
self.assertEqual(self.combathandler.turn, 1)
|
|
||||||
self.combathandler._start_turn()
|
|
||||||
self.assertEqual(self.combathandler.turn, 2)
|
|
||||||
|
|
||||||
def test_end_of_turn__empty(self):
|
|
||||||
self.combathandler._end_turn()
|
|
||||||
|
|
||||||
def test_register_and_run_action(self):
|
|
||||||
action = combat_turnbased.CombatActionAttack
|
|
||||||
action.use = MagicMock()
|
|
||||||
|
|
||||||
self.combathandler.register_action(action, self.combatant)
|
|
||||||
self.combathandler._end_turn()
|
|
||||||
action.use.assert_called_once()
|
|
||||||
|
|
||||||
@patch("evennia.contrib.tutorials.evadventure.combat_turnbased.rules.randint")
|
|
||||||
def test_attack(self, mock_randint):
|
|
||||||
mock_randint = 8
|
|
||||||
self.combathandler.register_action(
|
|
||||||
combat_turnbased.CombatActionAttack,
|
|
||||||
self.combatant, self.target)
|
|
||||||
self.combathandler._end_turn()
|
|
||||||
|
|
||||||
|
|
||||||
class EvAdventureRollEngineTest(BaseEvenniaTest):
|
class EvAdventureRollEngineTest(BaseEvenniaTest):
|
||||||
|
|
@ -433,7 +227,7 @@ class EvAdventureRollEngineTest(BaseEvenniaTest):
|
||||||
|
|
||||||
class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
||||||
"""
|
"""
|
||||||
Test the Character generator tracing object in the rule engine.
|
Test the Character generator in the rule engine.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -463,7 +257,6 @@ class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
||||||
"Has been exiled in the past. Favors neutrality."
|
"Has been exiled in the past. Favors neutrality."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@parameterized.expand([
|
@parameterized.expand([
|
||||||
# source, target, value, new_source_val, new_target_val
|
# source, target, value, new_source_val, new_target_val
|
||||||
(enums.Ability.CON, enums.Ability.STR, 1, 1, 3),
|
(enums.Ability.CON, enums.Ability.STR, 1, 1, 3),
|
||||||
|
|
@ -511,3 +304,140 @@ class EvAdventureCharacterGenerationTest(BaseEvenniaTest):
|
||||||
self.assertEqual(character.armor, "gambeson")
|
self.assertEqual(character.armor, "gambeson")
|
||||||
|
|
||||||
character.equipment.store.assert_called()
|
character.equipment.store.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(characters.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_store(self):
|
||||||
|
self.character.equipment.store(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.store(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.store(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, 11)
|
||||||
|
self.character.equipment.use(self.shield)
|
||||||
|
self.assertEqual(self.character.equipment.armor, 12)
|
||||||
|
self.character.equipment.use(self.helmet)
|
||||||
|
self.assertEqual(self.character.equipment.armor, 13)
|
||||||
|
|
||||||
|
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)
|
||||||
18
evennia/contrib/tutorials/evadventure/tests/tests.py
Normal file
18
evennia/contrib/tutorials/evadventure/tests/tests.py
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
"""
|
||||||
|
Tests for EvAdventure.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from unittest.mock import patch, MagicMock, call
|
||||||
|
from parameterized import parameterized
|
||||||
|
from evennia.utils import create
|
||||||
|
from evennia.utils.test_resources import BaseEvenniaTest
|
||||||
|
from .characters import EvAdventureCharacter, EquipmentHandler, EquipmentError
|
||||||
|
from .objects import EvAdventureObject
|
||||||
|
from . import enums
|
||||||
|
from . import combat_turnbased
|
||||||
|
from . import rules
|
||||||
|
from . import random_tables
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue