fix: reset modified environment variables after test

CustomLanguageTest was modifying a few environment
variables and not restoring them when complete. This
led to problems for later tests that expected those
variables to be at their default values.
This commit is contained in:
Robert Alonso 2024-10-25 14:20:23 +00:00
parent 22ab6506e0
commit 67fd1f496c

View File

@ -256,21 +256,34 @@ class EscapeMarkdownTest(unittest.TestCase):
self.assertEqual(issue.body[1], '\\<AnotherTag\\>') self.assertEqual(issue.body[1], '\\<AnotherTag\\>')
class CustomLanguageTest(unittest.TestCase): class BaseCustomLanguageTests:
def test_custom_lang_load(self): class BaseTest(unittest.TestCase):
@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
class CustomLanguageFileTest(BaseCustomLanguageTests.BaseTest):
def setUp(self):
os.environ['INPUT_LANGUAGES'] = 'tests/custom_languages.json' os.environ['INPUT_LANGUAGES'] = 'tests/custom_languages.json'
parser = TodoParser() self.parser = TodoParser()
def test_custom_lang_load(self):
# Test if the custom language ILS is actually loaded into the system # Test if the custom language ILS is actually loaded into the system
self.assertIsNotNone(parser.languages_dict['ILS']) self.assertIsNotNone(self.parser.languages_dict['ILS'])
self.assertEqual(self.count_syntax(parser, 'ILS'), 1) self.assertEqual(self.count_syntax(self.parser, 'ILS'), 1)
def test_custom_lang_not_dupplicate(self): 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 # Test if a custom language can overwrite the rules of an existing one
self.assertEqual(self.count_syntax(parser, 'Java'), 1) self.assertEqual(self.count_syntax(self.parser, 'Java'), 1)
for syntax in parser.syntax_dict: for syntax in self.parser.syntax_dict:
if syntax['language'] == 'Java': if syntax['language'] == 'Java':
self.assertEqual(len(syntax['markers']), 2) self.assertEqual(len(syntax['markers']), 2)
self.assertEqual(syntax['markers'][0]['pattern'], "////") self.assertEqual(syntax['markers'][0]['pattern'], "////")
@ -278,24 +291,24 @@ class CustomLanguageTest(unittest.TestCase):
self.assertEqual(syntax['markers'][1]['pattern']['end'], '=+') self.assertEqual(syntax['markers'][1]['pattern']['end'], '=+')
break break
self.assertIsNotNone(parser.languages_dict['Java']) self.assertIsNotNone(self.parser.languages_dict['Java'])
self.assertEqual(len(parser.languages_dict['Java']['extensions']), 1) self.assertEqual(len(self.parser.languages_dict['Java']['extensions']), 1)
self.assertEqual(parser.languages_dict['Java']['extensions'][0], ".java2") self.assertEqual(self.parser.languages_dict['Java']['extensions'][0], ".java2")
def test_url_load(self): def tearDown(self):
del os.environ['INPUT_LANGUAGES']
class CustomLanguageUrlTest(BaseCustomLanguageTests.BaseTest):
def setUp(self):
os.environ['INPUT_LANGUAGES'] = 'https://raw.githubusercontent.com/alstr/todo-to-issue-action/master/tests/custom_languages.json' os.environ['INPUT_LANGUAGES'] = 'https://raw.githubusercontent.com/alstr/todo-to-issue-action/master/tests/custom_languages.json'
os.environ['INPUT_NO_STANDARD'] = 'true' os.environ['INPUT_NO_STANDARD'] = 'true'
parser = TodoParser() self.parser = TodoParser()
self.assertEqual(len(parser.languages_dict), 2) def test_url_load(self):
self.assertEqual(len(parser.syntax_dict), 2) self.assertEqual(len(self.parser.languages_dict), 2)
self.assertEqual(len(self.parser.syntax_dict), 2)
@staticmethod def tearDown(self):
def count_syntax(parser: TodoParser, name: str): del os.environ['INPUT_LANGUAGES']
counter = 0 del os.environ['INPUT_NO_STANDARD']
for syntax in parser.syntax_dict:
if syntax['language'] == name:
counter = counter + 1
return counter