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)))