[TIP] new assertion library for unit tests

Andrew Bennetts andrew-tip at puzzling.org
Tue Aug 12 21:05:35 PDT 2008


Michael Gratton wrote:
> 
> Hi guys,
> 
> I've just released a new assertion library for Python and would be
> interested in getting the list's feedback on it. It uses a fluent
> interface[0] which I feel is a big improvement over unittests's {assert|
> fail} methods.

Can you give an example of a test written in both styles where you feel Achoo is
a big improvement?  Your email didn't include any examples, and the
documentation on the website doesn't give any convincing examples that I could
find.

For instance, <http://web.quuxo.com/products/achoo/doc/> has this example
test method:

    def testSplit(self):
        s = 'foo,bar'
        calling(s.split).passing(',').returns()\ 
            .length(2)\ 
            .index(0).equal_to('foo')\ 
            .index(1).equal_to('bar')

The obvious equivalent without Achoo seems much simpler and clearer to me:

    def testSplit(self):
        s = 'foo,bar'
        self.assertEqual(['foo', 'bar'], s.split(','))

Another example test method doesn't look like it would work:

    def testLength(self):
        s = 'foo'
        requiring(s.length).equal_to(3)

Surely “s.length” will raise an AttributeError in that example?

-Andrew.




More information about the testing-in-python mailing list