mirror of
https://github.com/ditkrg/todo-to-issue-action.git
synced 2026-01-25 07:16:42 +00:00
parent
3ad11918d0
commit
d8373a95ac
2
main.py
2
main.py
@ -404,7 +404,7 @@ class TodoParser(object):
|
|||||||
for marker in block['markers']:
|
for marker in block['markers']:
|
||||||
# Check if there are line or block comments.
|
# Check if there are line or block comments.
|
||||||
if marker['type'] == 'line':
|
if marker['type'] == 'line':
|
||||||
comment_pattern = r'(^[+\-\s]\s*' + marker['pattern'] + '.+$)'
|
comment_pattern = r'(^[+\-\s].*' + marker['pattern'] + '.+$)'
|
||||||
comments = re.finditer(comment_pattern, block['hunk'], re.MULTILINE)
|
comments = re.finditer(comment_pattern, block['hunk'], re.MULTILINE)
|
||||||
extracted_comments = []
|
extracted_comments = []
|
||||||
prev_comment = None
|
prev_comment = None
|
||||||
|
|||||||
@ -90,3 +90,20 @@ index 6397789..494d42f 100644
|
|||||||
-# TODO: Define inputs
|
-# TODO: Define inputs
|
||||||
-# Need to do this before the action is released
|
-# Need to do this before the action is released
|
||||||
-# labels: urgent
|
-# labels: urgent
|
||||||
|
diff --git a/tests/example_file.prog.abap b/tests/example_file.prog.abap
|
||||||
|
index 6397789..494d42f 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/example_file.prog.abap
|
||||||
|
@@ -1,5 +0,0 @@
|
||||||
|
-REPORT ztest_todo_2.
|
||||||
|
-
|
||||||
|
-DATA moo TYPE i VALUE 2.
|
||||||
|
-WRITE moo. " TODO This is an end-of-line to-do
|
||||||
|
-moo = 4. * TODO This is another end-of-line to-do
|
||||||
|
diff --git a/tests/example_file.sql b/src/tests/example_file.sql
|
||||||
|
index 6397789..494d42f 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/tests/example_file.sql
|
||||||
|
@@ -1,2 +0,0 @@
|
||||||
|
--- TODO Select all:
|
||||||
|
-SELECT * FROM Products;
|
||||||
@ -94,3 +94,22 @@ index 0000000..6397789
|
|||||||
+# TODO: Define inputs
|
+# TODO: Define inputs
|
||||||
+# Need to do this before the action is released
|
+# Need to do this before the action is released
|
||||||
+# labels: urgent
|
+# labels: urgent
|
||||||
|
diff --git a/tests/example_file.prog.abap b/src/tests/example_file.prog.abap
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7cccc5b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/example_file.prog.abap
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+REPORT ztest_todo_2.
|
||||||
|
+
|
||||||
|
+DATA moo TYPE i VALUE 2.
|
||||||
|
+WRITE moo. " TODO This is an end-of-line to-do
|
||||||
|
+moo = 4. * TODO This is another end-of-line to-do
|
||||||
|
diff --git a/tests/example_file.sql b/src/tests/example_file.sql
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7cccc5b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/tests/example_file.sql
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+-- TODO Select all:
|
||||||
|
+SELECT * FROM Products;
|
||||||
@ -12,7 +12,7 @@ def count_issues_for_file_type(raw_issues, file_type):
|
|||||||
|
|
||||||
|
|
||||||
class NewIssueTests(unittest.TestCase):
|
class NewIssueTests(unittest.TestCase):
|
||||||
# Check for newly added TODOs across the files specified (covers all current marker types).
|
# Check for newly added TODOs across the files specified.
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
diff_file = open('tests/test_new.diff', 'r')
|
diff_file = open('tests/test_new.diff', 'r')
|
||||||
self.raw_issues = TodoParser().parse(diff_file)
|
self.raw_issues = TodoParser().parse(diff_file)
|
||||||
@ -32,9 +32,18 @@ class NewIssueTests(unittest.TestCase):
|
|||||||
def test_ruby_issues(self):
|
def test_ruby_issues(self):
|
||||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
|
||||||
|
|
||||||
|
def test_abap_issues(self):
|
||||||
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'abap'), 2)
|
||||||
|
|
||||||
|
def test_sql_issues(self):
|
||||||
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'sql'), 1)
|
||||||
|
|
||||||
|
# TODO: Update tests
|
||||||
|
# Need tests for Julia, AutoHotKey, Handlebars, Org and TeX, as these markers are not currently covered.
|
||||||
|
|
||||||
|
|
||||||
class ClosedIssueTests(unittest.TestCase):
|
class ClosedIssueTests(unittest.TestCase):
|
||||||
# Check for removed TODOs across the files specified (covers all current marker types).
|
# Check for removed TODOs across the files specified.
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
diff_file = open('tests/test_closed.diff', 'r')
|
diff_file = open('tests/test_closed.diff', 'r')
|
||||||
self.raw_issues = TodoParser().parse(diff_file)
|
self.raw_issues = TodoParser().parse(diff_file)
|
||||||
@ -54,10 +63,17 @@ class ClosedIssueTests(unittest.TestCase):
|
|||||||
def test_ruby_issues(self):
|
def test_ruby_issues(self):
|
||||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
|
||||||
|
|
||||||
|
def test_abap_issues(self):
|
||||||
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'abap'), 2)
|
||||||
|
|
||||||
|
def test_sql_issues(self):
|
||||||
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'sql'), 1)
|
||||||
|
|
||||||
|
|
||||||
class IgnorePatternTests(unittest.TestCase):
|
class IgnorePatternTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_single_ignore(self):
|
def test_single_ignore(self):
|
||||||
os.environ['INPUT_IGNORE'] = '.*\.java'
|
os.environ['INPUT_IGNORE'] = '.*\\.java'
|
||||||
diff_file = open('tests/test_new.diff', 'r')
|
diff_file = open('tests/test_new.diff', 'r')
|
||||||
self.raw_issues = TodoParser().parse(diff_file)
|
self.raw_issues = TodoParser().parse(diff_file)
|
||||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 2)
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 2)
|
||||||
@ -68,7 +84,7 @@ class IgnorePatternTests(unittest.TestCase):
|
|||||||
os.environ['INPUT_IGNORE'] = ''
|
os.environ['INPUT_IGNORE'] = ''
|
||||||
|
|
||||||
def test_multiple_ignores(self):
|
def test_multiple_ignores(self):
|
||||||
os.environ['INPUT_IGNORE'] = '.*\.java, tests/example-file\.php'
|
os.environ['INPUT_IGNORE'] = '.*\\.java, tests/example-file\\.php'
|
||||||
diff_file = open('tests/test_new.diff', 'r')
|
diff_file = open('tests/test_new.diff', 'r')
|
||||||
self.raw_issues = TodoParser().parse(diff_file)
|
self.raw_issues = TodoParser().parse(diff_file)
|
||||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 2)
|
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 2)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user