From ea515bbecc916fe21d29e598b85297d9394a0452 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Tue, 11 Oct 2022 12:19:11 -0700 Subject: [PATCH] add show_hidden and show_deprecated tests --- tests/test_jc_lib.py | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) 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