예제 #1
0
class TestSpellEffects:
    """
    Tests for spell effects
    """

    def __init__(self):
        """
        Default constructor
        """
        self.effect = None
        self.effect_handle = None
        self.spell = None
        self.effects = None

    def setup(self):
        """
        Setup test cases
        """
        self.character = CharacterBuilder().with_hit_points(10).with_max_hp(20).build()

        effect_config = {
            "healing wind": {
                "type": Heal,
                "duration": 0,
                "frequency": 0,
                "tick": 0,
                "healing": 1,
                "icon": "icon",
                "title": "Cure minor wounds",
                "description": "Cures small amount of damage",
            }
        }

        self.effects = get_effect_creator(effect_config)

        self.effect_handle = EffectHandle(trigger="on spell hit", effect="healing wind", parameters={}, charges=1)

        self.spell = SpellBuilder().with_effect_handle(self.effect_handle).with_target(self.character).build()

    def test_triggering_effect(self):
        """
        Casting a spell should trigger the effect
        """
        self.spell.cast(self.effects)

        assert_that(self.character.hit_points, is_(greater_than(10)))