unittest.TestCase, lambda and __getitem__
Roy Smith
roy at panix.com
Mon Sep 13 09:51:46 EDT 2004
Steven Bethard <steven.bethard at gmail.com> wrote:
> self.assertRaises(ValueError, lambda: obj[index])
>
> Presumably, I could write this as:
>
> self.assertRaises(ValueError, obj.__getitem__, index)
I'm with you, I don't like the idea of calling __getitem__ directly,
because you're not testing what you want to test; you're testing
something one step removed. Yes, it's a small step, but the idea in
unit testing is to test as small a thing as possible.
I think you need to just create a little function and call it:
def tryIndex (object, index):
return obj [index]
self.assertRaises (ValueError, tryIndex, object, index)
Another possibility would be:
self.assertRaises (ValueError, eval ("object [index]"))
>From a readability/understandability standpoint, I think I like the eval
version better.
More information about the Python-list
mailing list