import unittest
from nose import LazySuite
from helpers import iter_compat

def gen():
    for x in range(0, 10):
        yield TestLazySuite.TC('test')

class TestLazySuite(unittest.TestCase):

    class TC(unittest.TestCase):
        def test(self):
            pass
        
    def test_basic_iteration(self):        
        ls = LazySuite(gen)
        for t in iter_compat(ls):
            assert isinstance(t, unittest.TestCase)
            
    def test_setup_teardown(self):                
        class SetupTeardownLazySuite(LazySuite):
            _setup = False
            _teardown = False
            
            def setUp(self):
                self._setup = True

            def tearDown(self):
                if self._setup:
                    self._teardown = True

        class Result:
            shouldStop = False

            def addSuccess(self, test):
                pass
            
            def startTest(self, test):
                pass
            
            def stopTest(self, test):
                pass
            
        ls = SetupTeardownLazySuite(gen)
        ls(Result())
        assert ls._setup
        assert ls._teardown
        
if __name__ == '__main__':
    unittest.main()


syntax highlighted by Code2HTML, v. 0.9.1