summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2010-03-15 17:30:08 -0300
committerGustavo Niemeyer <gustavo@niemeyer.net>2010-03-15 17:30:08 -0300
commit88f2b4b1ac94b26bafe2357fbc3129030109780b (patch)
treed1af3e70866ba113e47090ff1b56f51dfb0b44f1
parenta9b44545edaae14ea4656181a93a98cfaad8310c (diff)
downloadmocker-88f2b4b1ac94b26bafe2357fbc3129030109780b.tar.gz
__nonzero__ should necessarily return a boolean value, so transform Mock
results into True.
-rw-r--r--mocker.py5
-rwxr-xr-xtest.py4
2 files changed, 8 insertions, 1 deletions
diff --git a/mocker.py b/mocker.py
index ac6d1d5..a49675f 100644
--- a/mocker.py
+++ b/mocker.py
@@ -1092,9 +1092,12 @@ class Mock(object):
def __nonzero__(self):
try:
- return self.__mocker_act__("nonzero")
+ result = self.__mocker_act__("nonzero")
except MatchError, e:
return True
+ if type(result) is Mock:
+ return True
+ return result
def __iter__(self):
# XXX On py3k, when next() becomes __next__(), we'll be able
diff --git a/test.py b/test.py
index 2647141..6816513 100755
--- a/test.py
+++ b/test.py
@@ -2543,6 +2543,10 @@ class MockTest(TestCase):
self.mocker.act = raise_error
self.assertEquals(bool(self.mock), True)
+ def test_nonzero_with_mock_result(self):
+ self.mocker.act = lambda path: Mock(self.mocker)
+ self.assertEquals(bool(self.mock), True)
+
def test_iter(self):
result_mock = Mock(self.mocker)
self.mocker.act = lambda path: self.paths.append(path) or result_mock