diff options
author | Gustavo Niemeyer <gustavo@niemeyer.net> | 2007-12-09 18:28:20 -0200 |
---|---|---|
committer | Gustavo Niemeyer <gustavo@niemeyer.net> | 2007-12-09 18:28:20 -0200 |
commit | a471e0e32d58eae9475456ee0963dcb9aaf7d9f2 (patch) | |
tree | 11ed5815fa83824cdd3500d366185dce207fbea6 /mocker.py | |
parent | c8f2e2a50b5a31d27f829012bfb8193f764a69d8 (diff) | |
download | mocker-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.py | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -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. |