James Y Knight wrote: > On Jan 8, 2006, at 1:01 PM, Martin v. Löwis wrote: > >> Fred L. Drake, Jr. wrote: >> >>> I like the way trial (from twisted) supports this. The test >>> method is written >>> normally, in whatever class makes sense. Then the test is marked >>> with an >>> attribute to say it isn't expected to pass yet. When the code is >>> fixed and >>> the test passes, you get that information in trial's output, and >>> can unmark >>> the test. This avoids having to refactor test classes just to >>> update the >>> status of a test. >>> >> So how is the mark added? I would suggest >> >> @xfail >> def test_foo(self): >> self.assertEquals(0,1) > > def test_foo(self): > self.assertEquals(0,1) > test_foo.todo = "Why this test fails description message."
Looks pretty good. Here's some code to critique: import unittest class BrokenTest(unittest.TestCase.failureException): def __repr__(self): return '%s: %s: %s works now' % ( (self.__class__.__name__,) + self.args) def known_broken_XXX(reason): def wrapper(test_method): def replacement(*args, **kwargs): try: test_method(*args, **kwargs) except unittest.TestCase.failureException: pass else: raise BrokenTest(test_method.__name__, reason) return replacement wrapper.todo = reason return wrapper So your use looks like: class SomeTests(unittest.TestCase): ... @known_broken_XXX('Someday the naive expect this to work') def test_distinct_ones(self): self.failIfEqual(1, 1.0) -- Scott David Daniels [EMAIL PROTECTED] _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com