blob: df2761a8d4011f4bb130c733bee80b4349c3eaff [file]
from app.objects.secondclass.c_goal import Goal
from app.objects.c_objective import Objective
from app.objects.secondclass.c_fact import Fact
class TestGoal:
def test_satisfied(self):
test_goal = Goal(target='target', value='value', count=1)
assert test_goal.satisfied() is False
assert test_goal.satisfied(all_facts=[Fact(trait='target', value='value')]) is True
def test_multi_satisfied(self):
test_goal = Goal(target='target', value='value', count=3)
test_fact = Fact(trait='target', value='value')
assert test_goal.satisfied(all_facts=[test_fact]) is False
assert test_goal.satisfied(all_facts=[test_fact, test_fact, test_fact]) is True
def test_operators(self):
test_goal1 = Goal(target='target', value=2, count=1, operator='>')
test_goal2 = Goal(target='target', value=2, count=1, operator='<=')
test_goal3 = Goal(target='target', value='tes', count=1, operator='in')
test_goal4 = Goal(target='target', value='', count=3, operator='*')
test_facta = Fact(trait='target', value=1)
test_factb = Fact(trait='target', value=2)
test_factc = Fact(trait='target', value='test')
assert test_goal1.satisfied(all_facts=[test_facta]) is True
assert test_goal2.satisfied(all_facts=[test_facta]) is False
assert test_goal2.satisfied(all_facts=[test_facta, test_factb]) is True
assert test_goal3.satisfied(all_facts=[test_factc]) is True
assert test_goal4.satisfied(all_facts=[test_facta, test_factb, test_factc]) is True
def test_goals_satisfied(self):
test_goal1 = Goal(target='target', value='value', count=1)
test_goal2 = Goal(target='target2', value='value2', count=1)
test_facta = Fact(trait='target', value='value')
test_factb = Fact(trait='target2', value='value2')
multi = Objective(id='123', name='test', goals=[test_goal1, test_goal2])
assert multi.completed([test_facta]) is False
assert multi.completed([test_facta, test_factb]) is True
def test_goals_percent(self):
test_goal1 = Goal(target='target', value='value', count=1)
test_goal2 = Goal(target='target2', value='value2', count=1)
test_fact = Fact(trait='target', value='value')
multi = Objective(id='123', name='test', goals=[test_goal1, test_goal2])
assert multi.completed([test_fact]) is False
assert multi.percentage == 50