mirror of
https://github.com/ditkrg/todo-to-issue-action.git
synced 2026-01-25 07:16:42 +00:00
Merge branch 'master' into master
This commit is contained in:
@@ -23,8 +23,8 @@ class NewIssueTests(unittest.TestCase):
|
||||
self.raw_issues = parser.parse(diff_file)
|
||||
|
||||
def test_python_issues(self):
|
||||
# Includes 2 tests for Starlark.
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 6)
|
||||
# Includes 4 tests for Starlark.
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 8)
|
||||
|
||||
def test_yaml_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'yaml'), 2)
|
||||
@@ -35,11 +35,9 @@ class NewIssueTests(unittest.TestCase):
|
||||
def test_java_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'java'), 2)
|
||||
|
||||
def test_json_with_comments_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 2)
|
||||
|
||||
def test_json5_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 2)
|
||||
def test_javascript_issues(self):
|
||||
# Includes 1 test for JSON with Comments, 1 test for JSON5, 3 tests for TSX.
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 5)
|
||||
|
||||
def test_ruby_issues(self):
|
||||
# Includes 2 tests for Crystal.
|
||||
@@ -58,7 +56,7 @@ class NewIssueTests(unittest.TestCase):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'julia'), 2)
|
||||
|
||||
def test_starlark_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 6)
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 8)
|
||||
|
||||
def test_autohotkey_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'autohotkey'), 1)
|
||||
@@ -75,6 +73,9 @@ class NewIssueTests(unittest.TestCase):
|
||||
def test_twig_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2)
|
||||
|
||||
def test_makefile_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'makefile'), 3)
|
||||
|
||||
def test_md_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 8)
|
||||
|
||||
@@ -82,7 +83,7 @@ class NewIssueTests(unittest.TestCase):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'r'), 2)
|
||||
|
||||
def test_haskell_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'haskell'), 2)
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'haskell'), 4)
|
||||
|
||||
def test_clojure_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'clojure'), 2)
|
||||
@@ -93,6 +94,11 @@ class NewIssueTests(unittest.TestCase):
|
||||
def test_xaml_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'xml'), 2)
|
||||
|
||||
def test_c_cpp_like_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'c_cpp'), 2)
|
||||
|
||||
def test_liquid_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'liquid'), 3)
|
||||
|
||||
class ClosedIssueTests(unittest.TestCase):
|
||||
# Check for removed TODOs across the files specified.
|
||||
@@ -130,16 +136,14 @@ class ClosedIssueTests(unittest.TestCase):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'tex'), 2)
|
||||
|
||||
def test_julia_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'julia'), 2)
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'julia'), 4)
|
||||
|
||||
def test_starlark_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 5)
|
||||
|
||||
def test_json_with_comments_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 2)
|
||||
|
||||
def test_json5_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 2)
|
||||
def test_javascript_issues(self):
|
||||
# Includes 1 test for JSON with Comments, 1 test for JSON5, 3 tests for TSX.
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 5)
|
||||
|
||||
def test_autohotkey_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'autohotkey'), 1)
|
||||
@@ -156,6 +160,9 @@ class ClosedIssueTests(unittest.TestCase):
|
||||
def test_twig_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2)
|
||||
|
||||
def test_makefile_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'makefile'), 3)
|
||||
|
||||
def test_md_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 8)
|
||||
|
||||
@@ -163,7 +170,7 @@ class ClosedIssueTests(unittest.TestCase):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'r'), 2)
|
||||
|
||||
def test_haskell_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'haskell'), 2)
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'haskell'), 4)
|
||||
|
||||
def test_clojure_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'clojure'), 2)
|
||||
@@ -173,6 +180,13 @@ class ClosedIssueTests(unittest.TestCase):
|
||||
|
||||
def test_xaml_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'xml'), 2)
|
||||
|
||||
def test_c_cpp_like_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'c_cpp'), 2)
|
||||
|
||||
def test_liquid_issues(self):
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'liquid'), 3)
|
||||
|
||||
|
||||
class IgnorePatternTests(unittest.TestCase):
|
||||
|
||||
@@ -205,3 +219,71 @@ class IgnorePatternTests(unittest.TestCase):
|
||||
# Includes 2 tests for Crystal.
|
||||
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 5)
|
||||
os.environ['INPUT_IGNORE'] = ''
|
||||
|
||||
|
||||
class EscapeMarkdownTest(unittest.TestCase):
|
||||
def test_simple_escape(self):
|
||||
os.environ['INPUT_ESCAPE'] = 'true'
|
||||
parser = TodoParser()
|
||||
with open('syntax.json', 'r') as syntax_json:
|
||||
parser.syntax_dict = json.load(syntax_json)
|
||||
diff_file = open('tests/test_escape.diff', 'r')
|
||||
|
||||
# I had no other idea to make these checks dynamic.
|
||||
self.raw_issues = parser.parse(diff_file)
|
||||
self.assertEqual(len(self.raw_issues), 2)
|
||||
|
||||
issue = self.raw_issues[0]
|
||||
self.assertEqual(len(issue.body), 2)
|
||||
self.assertEqual(issue.body[0], '\\# Some title')
|
||||
self.assertEqual(issue.body[1], '\\<SomeTag\\>')
|
||||
|
||||
issue = self.raw_issues[1]
|
||||
self.assertEqual(len(issue.body), 2)
|
||||
self.assertEqual(issue.body[0], '\\# Another title')
|
||||
self.assertEqual(issue.body[1], '\\<AnotherTag\\>')
|
||||
|
||||
|
||||
class CustomLanguageTest(unittest.TestCase):
|
||||
def test_custom_lang_load(self):
|
||||
os.environ['INPUT_LANGUAGES'] = 'tests/custom_languages.json'
|
||||
parser = TodoParser()
|
||||
# Test if the custom language ILS is actually loaded into the system
|
||||
self.assertIsNotNone(parser.languages_dict['ILS'])
|
||||
self.assertEqual(self.count_syntax(parser, 'ILS'), 1)
|
||||
|
||||
def test_custom_lang_not_dupplicate(self):
|
||||
os.environ['INPUT_LANGUAGES'] = 'tests/custom_languages.json'
|
||||
parser = TodoParser()
|
||||
|
||||
# Test if a custom language can overwrite the rules of an existing one
|
||||
self.assertEqual(self.count_syntax(parser, 'Java'), 1)
|
||||
for syntax in parser.syntax_dict:
|
||||
if syntax['language'] == 'Java':
|
||||
self.assertEqual(len(syntax['markers']), 2)
|
||||
self.assertEqual(syntax['markers'][0]['pattern'], "////")
|
||||
self.assertEqual(syntax['markers'][1]['pattern']['start'], '+=')
|
||||
self.assertEqual(syntax['markers'][1]['pattern']['end'], '=+')
|
||||
break
|
||||
|
||||
self.assertIsNotNone(parser.languages_dict['Java'])
|
||||
self.assertEqual(len(parser.languages_dict['Java']['extensions']), 1)
|
||||
self.assertEqual(parser.languages_dict['Java']['extensions'][0], ".java2")
|
||||
|
||||
def test_url_load(self):
|
||||
os.environ['INPUT_LANGUAGES'] = 'https://raw.githubusercontent.com/alstr/todo-to-issue-action/master/tests/custom_languages.json'
|
||||
os.environ['INPUT_NO_STANDARD'] = 'true'
|
||||
parser = TodoParser()
|
||||
|
||||
self.assertEqual(len(parser.languages_dict), 2)
|
||||
self.assertEqual(len(parser.syntax_dict), 2)
|
||||
|
||||
@staticmethod
|
||||
def count_syntax(parser: TodoParser, name: str):
|
||||
counter = 0
|
||||
|
||||
for syntax in parser.syntax_dict:
|
||||
if syntax['language'] == name:
|
||||
counter = counter + 1
|
||||
|
||||
return counter
|
||||
|
||||
Reference in New Issue
Block a user