diff options
author | Gustavo Niemeyer <gustavo@niemeyer.net> | 2007-12-04 23:56:34 -0200 |
---|---|---|
committer | Gustavo Niemeyer <gustavo@niemeyer.net> | 2007-12-04 23:56:34 -0200 |
commit | a902346fb27f6e70fe778a8eb3a8adc2145dee08 (patch) | |
tree | 14eda8d9269de1d0fe581ca83d32f39d1a30fbb2 | |
parent | dd13d97f602ebb08b0357701a6b22a7441c4abea (diff) | |
download | mocker-a902346fb27f6e70fe778a8eb3a8adc2145dee08.tar.gz |
Now when a spec is provided (or with proxy/replace/patch) the
existence of the real method is checked even if the mocked
method doesn't have to execute (e.g. due to count(0)).
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | mocker.py | 4 | ||||
-rwxr-xr-x | test.py | 18 |
3 files changed, 26 insertions, 0 deletions
@@ -4,6 +4,10 @@ - MockerTestCase now verifies if the mocker is put in replay mode in cases where events were recorded. +- Now when a spec is provided (or with proxy/replace/patch) the + existence of the real method is checked even if the mocked + method doesn't have to execute (e.g. due to count(0)). + - Implemented support for Deferred results as understood by Twisted Trial's TestCase, so that coexistence by multiple inheritance is possible and trivial. @@ -1780,6 +1780,10 @@ class SpecChecker(Task): raise AssertionError("Specification is %s%s: %s" % (self._method.__name__, spec, message)) + def verify(self): + if not self._method: + raise AssertionError("Method not found in real specification") + def run(self, path): if not self._method: raise AssertionError("Method not found in real specification") @@ -217,6 +217,15 @@ class IntegrationTest(TestCase): mock.method(1, 2) self.assertRaises(AssertionError, mock.method, 1) + def test_patch_with_spec_and_unexistent(self): + class C(object): + pass + mock = self.mocker.patch(C) + mock.method(1, 2) + self.mocker.count(0) + self.mocker.replay() + self.assertRaises(AssertionError, self.mocker.verify) + def test_mock_iter(self): """ list() uses len() as a hint. When we mock iter(), it shouldn't @@ -3146,6 +3155,15 @@ class SpecCheckerTest(TestCase): else: self.fail("AssertionError not raised") + def test_verify_unexistent_method(self): + task = SpecChecker(None) + try: + task.verify() + except AssertionError, e: + self.assertEquals(str(e), "Method not found in real specification") + else: + self.fail("AssertionError not raised") + def test_unsupported_object_for_getargspec(self): from zlib import adler32 # If that fails, this test has to change because either adler32 has |