|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# pylint: disable=pointless-statement, missing-docstring, invalid-name, len-as-condition
|
|
|
|
from ..match import Match
|
|
|
|
from ..rules import Rule
|
|
|
|
|
|
|
|
|
|
|
|
class Rule3(Rule):
|
|
|
|
def when(self, matches, context):
|
|
|
|
return context.get('when')
|
|
|
|
|
|
|
|
def then(self, matches, when_response, context):
|
|
|
|
assert when_response in [True, False]
|
|
|
|
matches.append(Match(3, 4))
|
|
|
|
|
|
|
|
|
|
|
|
class Rule2(Rule):
|
|
|
|
dependency = Rule3
|
|
|
|
|
|
|
|
def when(self, matches, context):
|
|
|
|
return True
|
|
|
|
|
|
|
|
def then(self, matches, when_response, context):
|
|
|
|
assert when_response
|
|
|
|
matches.append(Match(3, 4))
|
|
|
|
|
|
|
|
|
|
|
|
class Rule1(Rule):
|
|
|
|
dependency = Rule2
|
|
|
|
|
|
|
|
def when(self, matches, context):
|
|
|
|
return True
|
|
|
|
|
|
|
|
def then(self, matches, when_response, context):
|
|
|
|
assert when_response
|
|
|
|
matches.clear()
|
|
|
|
|
|
|
|
|
|
|
|
class Rule0(Rule):
|
|
|
|
dependency = Rule1
|
|
|
|
|
|
|
|
def when(self, matches, context):
|
|
|
|
return True
|
|
|
|
|
|
|
|
def then(self, matches, when_response, context):
|
|
|
|
assert when_response
|
|
|
|
matches.append(Match(3, 4))
|
|
|
|
|
|
|
|
|
|
|
|
class Rule1Disabled(Rule1):
|
|
|
|
name = "Disabled Rule1"
|
|
|
|
|
|
|
|
def enabled(self, context):
|
|
|
|
return False
|