diff --git a/tests/test_jc_lib.py b/tests/test_jc_lib.py index 609f1c3c..6b3ea2f0 100644 --- a/tests/test_jc_lib.py +++ b/tests/test_jc_lib.py @@ -1,3 +1,4 @@ +from copy import deepcopy import unittest from typing import Generator import jc.lib @@ -74,5 +75,66 @@ class MyTests(unittest.TestCase): def test_lib_modname_to_cliname(self): self.assertEqual(jc.lib._modname_to_cliname('module_name'), 'module-name') + def test_lib_all_parser_info_show_deprecated(self): + # save old state + old_parsers = deepcopy(jc.lib.parsers) + old_get_parser = deepcopy(jc.lib._get_parser) + + # mock data + class mock_parser_info: + name = "deprecated" + argument = "--deprecated" + version = "1.1" + description = "`deprecated` command parser" + author = "nobody" + author_email = "nobody@gmail.com" + compatible = ["linux", "darwin"] + magic_commands = ["deprecated"] + deprecated = True + + class mock_parser: + info = mock_parser_info + + jc.lib.parsers = ['deprecated'] + jc.lib._get_parser = lambda x: mock_parser + result = jc.lib.all_parser_info(show_deprecated=True) + + # reset + jc.lib.parsers = old_parsers + jc.lib._get_parser = old_get_parser + + self.assertEqual(len(result), 1) + + def test_lib_all_parser_info_show_hidden(self): + # save old state + old_parsers = deepcopy(jc.lib.parsers) + old_get_parser = deepcopy(jc.lib._get_parser) + + # mock data + class mock_parser_info: + name = "deprecated" + argument = "--deprecated" + version = "1.1" + description = "`deprecated` command parser" + author = "nobody" + author_email = "nobody@gmail.com" + compatible = ["linux", "darwin"] + magic_commands = ["deprecated"] + hidden = True + + class mock_parser: + info = mock_parser_info + + jc.lib.parsers = ['deprecated'] + jc.lib._get_parser = lambda x: mock_parser + result = jc.lib.all_parser_info(show_hidden=True) + + # reset + jc.lib.parsers = old_parsers + jc.lib._get_parser = old_get_parser + + self.assertEqual(len(result), 1) + + if __name__ == '__main__': unittest.main() \ No newline at end of file