From a471e0e32d58eae9475456ee0963dcb9aaf7d9f2 Mon Sep 17 00:00:00 2001 From: Gustavo Niemeyer Date: Sun, 9 Dec 2007 18:28:20 -0200 Subject: 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. :-) --- mocker.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'mocker.py') 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. -- cgit v1.2.1