summaryrefslogtreecommitdiff
path: root/test.py
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2007-11-11 22:11:24 -0200
committerGustavo Niemeyer <gustavo@niemeyer.net>2007-11-11 22:11:24 -0200
commit02c0298f780d8dcb435fad8967de2a956ac78d14 (patch)
tree65228f4810393771ef0d69627c81462e35b135a3 /test.py
parent990945320feecf1c5352382c1de2ec86bf6993b2 (diff)
downloadmocker-02c0298f780d8dcb435fad8967de2a956ac78d14.tar.gz
Fixed SpecChecker to not break with callables not supported by
getargspec (e.g. builtin functions).
Diffstat (limited to 'test.py')
-rwxr-xr-xtest.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/test.py b/test.py
index 19b132b..2d74217 100755
--- a/test.py
+++ b/test.py
@@ -211,6 +211,18 @@ class IntegrationTest(unittest.TestCase):
self.assertEquals(list(mock), [1, 2, 3])
self.mocker.verify()
+ def test_replace_builtin_function(self):
+ """
+ Inspection doesn't work on builtin functions, but proxying should
+ work even then (without spec enforcement in these cases).
+ """
+ from zlib import adler32
+ mock = self.mocker.proxy(adler32)
+ mock()
+ self.mocker.result(42)
+ self.mocker.replay()
+ self.assertEquals(mock(), 42)
+
class ExpectTest(unittest.TestCase):
@@ -2644,6 +2656,17 @@ class SpecCheckerTest(unittest.TestCase):
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
+ # changed, or the implementation of getargspec has changed.
+ self.assertRaises(TypeError, inspect.getargspec, adler32)
+ try:
+ task = SpecChecker(adler32)
+ task.run(self.path("asd"))
+ except TypeError, e:
+ self.fail("TypeError: %s" % str(e))
+
def test_recorder(self):
self.mocker.add_recorder(spec_checker_recorder)
obj = self.mocker.mock(spec=self.cls)