[TIP] unittest2.util

Matthew Woodcraft matthew at woodcraft.me.uk
Mon Sep 27 14:41:16 PDT 2010


Michael Foord  <fuzzyman at voidspace.org.uk> wrote:
> Matthew Woodcraft wrote:
>> But I think what I'd really like here is
>> for something like TestCase._formatMessage to be public: it seems to me
>> that pretty much anyone writing a custom TypeEqualityFunc is going to
>> want this facility, and it's bit of a shame to have to reimplement it.

> Ok - that's a reasonable request. Can you raise an issue for it?
> https://code.google.com/p/unittest-ext/issues/list

I tried, but it won't let me without a 'Google account' :-(. Would it be
helpful if I put it in as a wishlist request on the Python tracker?


>> The other is unorderable_list_difference.
> That's in unittest in Python 2.7 - so I doubt it will be removed /
> moved. :-)

Excellent. Thank you for your quick response.


>> In this case, I think what I'd really like is a (variant of)
>> assertItemsEqual which always uses the form of output it chooses for
>> 'unsortable' items, as I find it's usually easier for me to read.

> I don't understand what you mean by this. What are you trying to compare
> and why is the output not good enough?

Here's an example:

a = [('b', (2, 3)), ('w', (3, 4))]
b = [('x', (2, 3)), ('w', (3, 4))]
case.assertItemsEqual(a, b)


unorderable_list_difference gives

Expected, but missing:
    [('b', (2, 3))]
Unexpected, but present:
    [('x', (2, 3))]


while the current assertItemsEqual gives

Sequences differ: [('b', (2, 3)), ('w', (3, 4))] != [('w', (3, 4)), ('x', (2, 3))]

First differing element 0:
('b', (2, 3))
('w', (3, 4))

- [('b', (2, 3)), ('w', (3, 4))]
+ [('w', (3, 4)), ('x', (2, 3))]


I find the first more convenient.

In general, I think that in assertItemsEqual, the 'first differing
element' bit (that has come from assertSequenceEqual) is as likely to be
misleading as it is to be helpful.

-M-




More information about the testing-in-python mailing list