Le Thu, 11 Feb 2010 10:56:32 -0500, R. David Murray a écrit :
> 
> @unittest.case_context(foo_cm)
> @unittest.test_context(foo_test_cm)
> class TestFoo(unittest.TestCase):
> 
>     def test_bar:
>         foo = Foo(self.baz, testing=True)
>         self.assertTrue("Context managers are cool")
> 
> would be easier to write, be more maintainable, and be easier to
> understand when reading the code than the equivalent setUp and tearDown
> methods would be.

I don't think it would be seriously easier to write, more maintainable or 
easier to understand. There's nothing complicated or obscure in setUp and 
tearDown methods (the only annoying thing being PEP8 non-compliance).

As a matter of fact, nose has a "with_setup()" decorator which allows to 
avoid writing setUp/tearDown methods. But in my experience it's more 
annoying to use because:
- you have to add the decorator explicitly (setUp/tearDown is always
  invoked)
- you have to create your own recipient for local state (setUp/tearDown
  can simply use the TestCase instance), or use global variables which 
  is ugly.

Regards

Antoine.

_______________________________________________
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

Reply via email to