Issue 49 in pymox: pymox should support a context handler for verification

7 views
Skip to first unread message

codesite...@google.com

unread,
Jul 30, 2012, 4:46:08 AM7/30/12
to mox-d...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 49 by henry.do...@gmail.com: pymox should support a context
handler for verification
http://code.google.com/p/pymox/issues/detail?id=49

[this is a feature request]

I recently wrote a small helper class to allow a context handlers to
provide verification. e.g.

def testFoo(self):
# set expectations
with Verification(self.mox):
# call code, assert results.

The implementation is simple:

class Verification(object):
def __init__(self, m):
self.m = m

def __enter__(self):
self.m.ReplayAll()

def __exit__(self, exc_type, exc_value, traceback):
if exc_type is None and exc_value is None and traceback is None:
self.m.VerifyAll()

I think that this should probably be a core part of mox, allowing one to
say:

def testFoo(self):
with self.mox.Verification():
# …

To my eye, this nicely delineates the code under test from the setup code.

I've attached a sample implementation for discussion. Some points from
that:

- I'm not sure what the minimum Python version of pymox is. Context
handlers are a 2.6ism.
- I placed a function on the Mox class, which uses another class,
Verification. This seemed more flexible than just saying "with self.mox"
as it allows for other context handlers if necessary.

Attachments:
0001-Add-verification-handler.patch 1.4 KB

Reply all
Reply to author
Forward
0 new messages