← Back to team overview

launchpad-dev team mailing list archive

Re: Lighter tests with FakeLibrarian

 

On Wed, Aug 25, 2010 at 7:38 AM, Aaron Bentley <aaron@xxxxxxxxxxxxx> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 08/24/2010 03:33 PM, Robert Collins wrote:
>>> self.useContext(FakeLibrarian())
>>
>> I think both would be useful. I like context managers too, but
>> sometimes (perhaps not this case) its easier to express with a little
>> regular code in the middle.
>
> I don't understand.  What is the regular code in the middle?  Is a
> Context Manager not a superset of a fixture?  If it is, surely we should
> prefer context managers, so there is one obvious correct way of doing
> things.
>
> Aaron

A context manager with its enter and exit is indeed a super set of a
fixture as launchpad has defined them. Its a subset of what I defined
them as in lp:python-fixtures (where they are defined as having both
protocols, so there still isn't anything you can do with one and not
the other).

However, writing
def setUp(self):
    bar = xx
    foo = something(bar)
    foo.__enter__()
    self.addCleanup(foo__exit__, None, None, None)

is frankly ugly.

-Rob



Follow ups

References