diff --git a/tests/test_process_diff.py b/tests/test_process_diff.py index 3091026..9dbd7a4 100644 --- a/tests/test_process_diff.py +++ b/tests/test_process_diff.py @@ -9,7 +9,7 @@ from TodoParser import TodoParser from main import process_diff -class IssueUrlInsertionTestBase(unittest.TestCase): +class ProcessDiffTestBase(unittest.TestCase): orig_cwd = None tempdir = None diff_file = None @@ -37,6 +37,16 @@ class IssueUrlInsertionTestBase(unittest.TestCase): # change to the simulated filesystem directory os.chdir(self.tempdir.name) + def _standardTest(self, expected_count): + # create object to hold output + output = io.StringIO() + # process the diffs + process_diff(diff=self.diff_file, insert_issue_urls=True, parser=self.parser, output=output) + # make sure the number of issue URL comments inserted is as expected + self.assertEqual(output.getvalue().count('Issue URL successfully inserted'), + expected_count, + msg='\nProcessing log\n--------------\n'+output.getvalue()) + def _tearDown(self): # return to original working directory to ensure we don't mess up other tests os.chdir(self.orig_cwd) @@ -46,7 +56,7 @@ class IssueUrlInsertionTestBase(unittest.TestCase): self.tempdir = None -class IssueUrlInsertionTest(IssueUrlInsertionTestBase): +class IssueUrlInsertionTest(ProcessDiffTestBase): def setUp(self): return super()._setUp('test_new.diff') @@ -56,12 +66,18 @@ class IssueUrlInsertionTest(IssueUrlInsertionTestBase): @unittest.skipIf(os.getenv('SKIP_PROCESS_DIFF_TEST', 'false') == 'true', "Skipping because 'SKIP_PROCESS_DIFF_TEST' is 'true'") def test_url_insertion(self): - # create object to hold output - output = io.StringIO() - # process the diffs - process_diff(diff=self.diff_file, insert_issue_urls=True, parser=self.parser, output=output) - # make sure the number of issue URL comments inserted is as expected - self.assertEqual(output.getvalue().count('Issue URL successfully inserted'), 80) + self._standardTest(80) + + def tearDown(self): + return super()._tearDown() + +class IdenticalTodoTest(ProcessDiffTestBase): + def setUp(self): + return super()._setUp('test_same_title_in_same_file.diff') + + @unittest.expectedFailure + def test_same_title_in_same_file(self): + self._standardTest(5) def tearDown(self): return super()._tearDown() diff --git a/tests/test_same_title_in_same_file.diff b/tests/test_same_title_in_same_file.diff new file mode 100644 index 0000000..60f37bf --- /dev/null +++ b/tests/test_same_title_in_same_file.diff @@ -0,0 +1,27 @@ +diff --git a/Counter.sol b/Counter.sol +new file mode 100644 +index 0000000..d340f6a +--- /dev/null ++++ b/Counter.sol +@@ -0,0 +1,21 @@ ++contract Counter { ++ // TODO: Test this ++ // Do it ++ // labels: urgent ++ ++ /// TODO: Natspec comment ++ /// Do it ++ /// labels: urgent ++ ++ /* ++ TODO: Test this too ++ Do it ASAP ++ labels: urgent ++ */ ++ ++ // TODO: Test this ++ /** ++ * TODO: Test this too ++ * labels: urgent ++ */ ++}