Skip to content

Commit

Permalink
Added unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Christoph-Koschel committed Sep 30, 2023
1 parent c70aafa commit 952f3d6
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions tests/test_todo_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ def test_nix_issues(self):
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):
Expand Down Expand Up @@ -173,6 +174,7 @@ def test_nix_issues(self):
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):
Expand Down Expand Up @@ -205,6 +207,7 @@ def test_multiple_ignores(self):
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'
Expand All @@ -227,3 +230,47 @@ def test_simple_escape(self):
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

0 comments on commit 952f3d6

Please sign in to comment.