summaryrefslogtreecommitdiff
path: root/mocker.py
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2007-12-09 18:28:20 -0200
committerGustavo Niemeyer <gustavo@niemeyer.net>2007-12-09 18:28:20 -0200
commita471e0e32d58eae9475456ee0963dcb9aaf7d9f2 (patch)
tree11ed5815fa83824cdd3500d366185dce207fbea6 /mocker.py
parentc8f2e2a50b5a31d27f829012bfb8193f764a69d8 (diff)
downloadmocker-a471e0e32d58eae9475456ee0963dcb9aaf7d9f2.tar.gz
Orderer() is now implemented based on may_run() instead of matches().
If the event is run with may_run() False, a nice assertion error is raised with a nice debugging message. :-)
Diffstat (limited to 'mocker.py')
-rw-r--r--mocker.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/mocker.py b/mocker.py
index da411ec..cbc457f 100644
--- a/mocker.py
+++ b/mocker.py
@@ -471,7 +471,7 @@ class MockerBase(object):
"""
self._events.append(event)
if self._ordering:
- orderer = event.add_task(Orderer())
+ orderer = event.add_task(Orderer(event.path))
if self._last_orderer:
orderer.add_dependency(self._last_orderer)
self._last_orderer = orderer
@@ -865,7 +865,7 @@ class MockerBase(object):
orderer = task
break
else:
- orderer = Orderer()
+ orderer = Orderer(path)
event.add_task(orderer)
if last_orderer:
orderer.add_dependency(last_orderer)
@@ -1790,31 +1790,35 @@ class Orderer(Task):
been run.
"""
- def __init__(self):
+ def __init__(self, path):
+ self.path = path
self._run = False
self._dependencies = []
def replay(self):
self._run = False
- def run(self, path):
- self._run = True
-
def has_run(self):
return self._run
+ def may_run(self, path):
+ for dependency in self._dependencies:
+ if not dependency.has_run():
+ return False
+ return True
+
+ def run(self, path):
+ for dependency in self._dependencies:
+ if not dependency.has_run():
+ raise AssertionError("Should be after: %s" % dependency.path)
+ self._run = True
+
def add_dependency(self, orderer):
self._dependencies.append(orderer)
def get_dependencies(self):
return self._dependencies
- def matches(self, path):
- for dependency in self._dependencies:
- if not dependency.has_run():
- return False
- return True
-
class SpecChecker(Task):
"""Task to check if arguments of the last action conform to a real method.