Added unit tests

This commit is contained in:
Christoph Koschel 2023-09-30 19:39:59 +02:00
parent c70aafa22a
commit 952f3d6c85

View File

@ -93,6 +93,7 @@ class NewIssueTests(unittest.TestCase):
def test_xaml_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'xml'), 2)
class ClosedIssueTests(unittest.TestCase):
# Check for removed TODOs across the files specified.
def setUp(self):
@ -173,6 +174,7 @@ class ClosedIssueTests(unittest.TestCase):
def test_xaml_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'xml'), 2)
class IgnorePatternTests(unittest.TestCase):
def test_single_ignore(self):
@ -205,6 +207,7 @@ class IgnorePatternTests(unittest.TestCase):
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'
@ -227,3 +230,47 @@ class EscapeMarkdownTest(unittest.TestCase):
self.assertEqual(issue.body[0], '\\# Another title')
self.assertEqual(issue.body[1], '\\<AnotherTag\\>')
class CostumeLanguageTest(unittest.TestCase):
def test_costume_lang_load(self):
os.environ['INPUT_LANGUAGES'] = 'tests/costume_languages.json'
parser = TodoParser()
# Test if the costume language ILS is actually loaded into the system
self.assertIsNotNone(parser.languages_dict['ILS'])
self.assertEqual(self.count_syntax(parser, 'ILS'), 1)
def test_costume_lang_not_dupplicate(self):
os.environ['INPUT_LANGUAGES'] = 'tests/costume_languages.json'
parser = TodoParser()
# Test if a costume 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/Christoph-Koschel/todo-to-issue-action/patch-3/tests/costume_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