Skip to content

pymox should support a context handler for verification #49

@GoogleCodeExporter

Description

@GoogleCodeExporter
[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.

Original issue reported on code.google.com by [email protected] on 30 Jul 2012 at 8:46

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions