enthought/distarray — pull request #402 by bgrant (2014-06-02 21:21:59+00:00)
Title: Add a ContextTestCase to testing.py

Builds on @kwmsmith's PR #392.

On the local side, we have an `MpiTestCase` that will create a communicator of a certain size if possible, and if not, it will raise a `skipTest` (skipping tests that need more processes than currently available). This PR adds a `ContextTestCase` that performs a similar function for client-side tests that use `Context`s.

Each test inheriting from `ContextTestCase` (rather than `unittest.TestCase`) can overload the class attribute `ntargets` (default 4) to specify how many engines are required to run that test. If creating a `Context` with `targets=range(self.ntargets)` succeeds, this class manages setting up and closing this `Context`. If it fails, a `skipTest` is raised.