You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
6 years ago
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
# pylint: disable=no-self-use, 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
|