У меня есть определенный код Python, который принимает аргументы CLI и обрабатывает их с помощью анализатора argparse. У меня есть родительский парсер:
Код: Выделить всё
verbose_quiet_parent_parser = argparse.ArgumentParser(add_help=False)
И у меня есть парсер, который принимает verbose_quiet_parent_parser в качестве родительского:
Код: Выделить всё
child_parser = argparse.ArgumentParser(prog=command_name, description=command_description,
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=EPILOG,
parents=[verbose_quiet_parent_parser])
Я хочу написать тесты для моего child_parser, которые проверят, что verbose_quiet_parent_parser является родительским для моего парсера child_parser. Я знаю, что могу сделать это, написав тесты, которые предоставляют аргументы, распознаваемые verbose_quiet_parent_parser, и тест пройдет, если нет исключений, но вскоре это станет повторяться, поскольку у меня будет больше дочерних анализаторов, которые в качестве родителя у меня будет verbose_quiet_parent_parser.
Итак, я хочу каким-то образом получить список родителей из child_parser для проверки родительского анализатора.
Дело в том, что я не могу найти способ получить всех родителей из моего дочернего парсера. Простой способ получить родителей из дочернего парсера может выглядеть примерно так:
Но в классе ArgumentParser такого метода/атрибута нет. Как я могу получить родителей от парсера или лучший способ написать тесты, которые не потребуют проверки родительского парсера?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... ses-parser