36 lines
767 B
Python
36 lines
767 B
Python
from core.basic.character.effect_apply import execute_effect, uppercase_attrs
|
|
|
|
|
|
class Source:
|
|
STR = 10
|
|
|
|
def __init__(self):
|
|
self.INT = 20
|
|
self.name = 'ignored'
|
|
|
|
|
|
class Effects:
|
|
def execture(self, key):
|
|
if key != 'known':
|
|
return None
|
|
|
|
def effect(target):
|
|
target.append(key)
|
|
|
|
return effect
|
|
|
|
|
|
def test_uppercase_attrs_returns_only_uppercase_instance_keys():
|
|
assert uppercase_attrs(Source()) == {'INT': 20}
|
|
|
|
|
|
def test_execute_effect_returns_false_for_missing_effect():
|
|
assert execute_effect(Effects(), 'missing', []) is False
|
|
|
|
|
|
def test_execute_effect_calls_existing_effect():
|
|
target = []
|
|
|
|
assert execute_effect(Effects(), 'known', target) is True
|
|
assert target == ['known']
|