diff --git a/tests/test_process_diff.py b/tests/test_process_diff.py index 769412e..3091026 100644 --- a/tests/test_process_diff.py +++ b/tests/test_process_diff.py @@ -9,13 +9,13 @@ from TodoParser import TodoParser from main import process_diff -class IssueUrlInsertionTest(unittest.TestCase): +class IssueUrlInsertionTestBase(unittest.TestCase): orig_cwd = None tempdir = None diff_file = None parser = None - def setUp(self): + def _setUp(self, diff_file): # get current working directory self.orig_cwd = os.getcwd() @@ -24,12 +24,12 @@ class IssueUrlInsertionTest(unittest.TestCase): # run patch against the diff file to generate the simulated filesystem subprocess.run(['patch', '-d', self.tempdir.name, - '-i', f'{os.getcwd()}/tests/test_new.diff'], + '-i', f'{os.getcwd()}/tests/{diff_file}'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=True) - self.diff_file = open('tests/test_new.diff', 'r') + self.diff_file = open(f'tests/{diff_file}', 'r') self.parser = TodoParser() with open('syntax.json', 'r') as syntax_json: self.parser.syntax_dict = json.load(syntax_json) @@ -37,6 +37,19 @@ class IssueUrlInsertionTest(unittest.TestCase): # change to the simulated filesystem directory os.chdir(self.tempdir.name) + def _tearDown(self): + # return to original working directory to ensure we don't mess up other tests + os.chdir(self.orig_cwd) + + # explicitly cleanup to avoid warning being printed about implicit cleanup + self.tempdir.cleanup() + self.tempdir = None + + +class IssueUrlInsertionTest(IssueUrlInsertionTestBase): + def setUp(self): + return super()._setUp('test_new.diff') + # this test can take a while and, as far as TodoParser is concerned, # redundant with the tests of test_todo_parser, so enable the means # to skip it if desired @@ -51,9 +64,4 @@ class IssueUrlInsertionTest(unittest.TestCase): self.assertEqual(output.getvalue().count('Issue URL successfully inserted'), 80) def tearDown(self): - # return to original working directory to ensure we don't mess up other tests - os.chdir(self.orig_cwd) - - # explicitly cleanup to avoid warning being printed about implicit cleanup - self.tempdir.cleanup() - self.tempdir = None + return super()._tearDown()