/functional_tests/test_generator_fixtures.py

https://bitbucket.org/jpellerin/nose/ · Python · 58 lines · 41 code · 13 blank · 4 comment · 3 complexity · aec368a5de80f0a0a072c16e8e502651 MD5 · raw file

  1. from nose.tools import eq_
  2. called = []
  3. def outer_setup():
  4. called.append('outer_setup')
  5. def outer_teardown():
  6. called.append('outer_teardown')
  7. def inner_setup():
  8. called.append('inner_setup')
  9. def inner_teardown():
  10. called.append('inner_teardown')
  11. def test_gen():
  12. called[:] = []
  13. for i in range(0, 5):
  14. yield check, i
  15. def check(i):
  16. expect = ['outer_setup']
  17. for x in range(0, i):
  18. expect.append('inner_setup')
  19. expect.append('inner_teardown')
  20. expect.append('inner_setup')
  21. eq_(called, expect)
  22. test_gen.setup = outer_setup
  23. test_gen.teardown = outer_teardown
  24. check.setup = inner_setup
  25. check.teardown = inner_teardown
  26. class TestClass(object):
  27. def setup(self):
  28. print "setup called in", self
  29. self.called = ['setup']
  30. def teardown(self):
  31. print "teardown called in", self
  32. eq_(self.called, ['setup'])
  33. self.called.append('teardown')
  34. def test(self):
  35. print "test called in", self
  36. for i in range(0, 5):
  37. yield self.check, i
  38. def check(self, i):
  39. print "check called in", self
  40. expect = ['setup']
  41. #for x in range(0, i):
  42. # expect.append('setup')
  43. # expect.append('teardown')
  44. #expect.append('setup')
  45. eq_(self.called, expect)