jimgardener <jimgarde...@gmail.com> writes: > class FileNamesTest(unittest.TestCase): > def setUp(self): > self.dirname='/home/me/data' > > def test_get_filenames(self): > innerstr='tom' > matching_names=get_filenames(self.dirname,innerstr) > self.assertEquals(1,len(matching_names)) > > innerstr='myself' > matching_names=get_filenames(self.dirname,innerstr) > self.assertEquals(0,len(matching_names)) > > innerstr='jerry' > matching_names=get_filenames(self.dirname,innerstr) > self.assertEquals(3,len(matching_names))
A side point unrelated to the question: your code will be easier to read if you follow PEP 8, specifically its recommendations regarding spaces around syntax (like ‘=’ and ‘,’). > when I run the unittest, if the test fails at the first assertion,the > other assertions are not executed at all. Yes, that's by design. Each function in a TestCase subclass is a test case; the function goes about testing *one thing*, and ends as soon as the test passes or fails. > How do I organize the test so that all assertions can run? Every test case should test exactly one true-or-false question. Name each test case after the assertion it's making, so the unittest output makes sense. class get_filenames_TestCase(unittest.TestCase): def setUp(self): self.dirname = '/home/me/data' def test_one_match_returns_one_item(self): innerstr = 'tom' matching_names = get_filenames(self.dirname, innerstr) self.assertEquals(1, len(matching_names)) def test_no_match_returns_empty_sequence(self): innerstr = 'myself' matching_names = get_filenames(self.dirname, innerstr) self.assertEquals(0, len(matching_names)) def test_three_matches_returns_three_items(self): innerstr = 'jerry' matching_names = get_filenames(self.dirname, innerstr) self.assertEquals(3, len(matching_names)) Also, be aware that each test case should be independent of the others: any common set-up should be in a fixture, created in ‘setUp’ and reset (if necessary) in ‘tearDown’. -- \ “I do not believe in forgiveness as it is preached by the | `\ church. We do not need the forgiveness of God, but of each | _o__) other and of ourselves.” —Robert G. Ingersoll | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list