def test_rule_has_consequence_when_false_different_field():
    def condition(subject):
        return subject['fruit'] == 'strawberry'
    
    def consequence(subject):
        subject['color'] = 'red'

    rule = Rule('all strawberries are red', condition, consequence, {'fruit': 'strawberry'}, ('fruit',))

    assert rule.has_consequence(condition) is False
def test_rule_has_consequence_when_true():
    def condition(subject):
        return subject['fruit'] == 'strawberry'
    
    def consequence(subject):
        subject['color'] = 'red'

    rule = Rule('all strawberries are red', condition, consequence, {'fruit': 'strawberry'}, ('fruit',))

    assert rule.has_consequence({'color': 'red'})