Issue 53 in pymox: Improve MockObject description for classmethod

12 views
Skip to first unread message

codesite...@google.com

unread,
Nov 17, 2012, 9:42:16 PM11/17/12
to mox-d...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 53 by kunalpar...@gmail.com: Improve MockObject description for
classmethod
http://code.google.com/p/pymox/issues/detail?id=53

What steps will reproduce the problem?
import unittest
import mox

class Foo(object):

@classmethod
def some_method(cls):
pass

class TestFoo(mox.MoxTestBase):

def setUp(self):
super(TestFoo, self).setUp()
self.mox.StubOutWithMock(Foo, 'some_method')

def test_some_method_is_called(self):
Foo.some_method()
self.mox.ReplayAll()

if __name__ == '__main__':
unittest.main()

What do you see?
python test.py
F
======================================================================
FAIL: test_some_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2120, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. instancemethod.__call__() -> None

Please provide any additional information below.
With the changes made from the patch, the output is -
python test.py
F
======================================================================
FAIL: test_some_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2120, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. Foo.some_method.__call__() -> None


Attachments:
method_description.patch 578 bytes

codesite...@google.com

unread,
Nov 17, 2012, 9:52:27 PM11/17/12
to mox-d...@googlegroups.com

Comment #1 on issue 53 by kunalpar...@gmail.com: Improve MockObject
My earlier patch did not account for instance methods. Attached an updated
patch.


codesite...@google.com

unread,
Nov 17, 2012, 9:54:27 PM11/17/12
to mox-d...@googlegroups.com

Comment #2 on issue 53 by kunalpar...@gmail.com: Improve MockObject
Here's how I tested it -

import unittest
import mox

class Foo(object):

@classmethod
def cls_method(cls):
pass

def ins_method(self):
pass

class TestFoo(mox.MoxTestBase):

def setUp(self):
super(TestFoo, self).setUp()
self.mox.StubOutWithMock(Foo, 'cls_method')
self.foo = Foo()
self.mox.StubOutWithMock(self.foo, 'ins_method')

def test_cls_method_is_called(self):
Foo.cls_method()
self.mox.ReplayAll()

def test_ins_method_is_called(self):
self.foo.ins_method()
self.mox.ReplayAll()

if __name__ == '__main__':
unittest.main()

Output before -
python test.py
FF
======================================================================
FAIL: test_cls_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2123, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. instancemethod.__call__() -> None

======================================================================
FAIL: test_ins_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2123, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. instancemethod.__call__() -> None

Output after -
python test.py
FF
======================================================================
FAIL: test_cls_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2123, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. Foo.cls_method.__call__() -> None

======================================================================
FAIL: test_ins_method_is_called (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/kparmar/sources/pymox/mox.py", line 2123, in new_method
mox_obj.VerifyAll()
File "/Users/kparmar/sources/pymox/mox.py", line 318, in VerifyAll
mock_obj._Verify()
File "/Users/kparmar/sources/pymox/mox.py", line 559, in _Verify
raise ExpectedMethodCallsError(self._expected_calls_queue)
ExpectedMethodCallsError: Verify: Expected methods never called:
0. Foo.ins_method.__call__() -> None


Attachments:
method_description.patch 712 bytes

codesite...@google.com

unread,
Nov 29, 2012, 3:49:25 PM11/29/12
to mox-d...@googlegroups.com

Comment #3 on issue 53 by kunalpar...@gmail.com: Improve MockObject
Haven't seen any progress on this. Do you need more information?

Reply all
Reply to author
Forward
0 new messages