def test_sub_parser(self): parser = PAIArgumentParser() sub_parser = parser.add_subparsers(dest="sub", required=True) sub_parser1: PAIArgumentParser = sub_parser.add_parser("sub1") sub_parser1.add_root_argument("root", Sub1) sub_parser2: PAIArgumentParser = sub_parser.add_parser("sub2") sub_parser2.add_root_argument("root", Sub2) root = parser.parse_args(args=["sub2"]).root self.assertIsInstance(root, Sub2) self.assertEqual(root.q, 5)
def test_sub_parser_flat(self): parser = PAIArgumentParser() sub_parser = parser.add_subparsers(dest="sub", required=True) sub_parser1: PAIArgumentParser = sub_parser.add_parser("sub1") sub_parser1.add_root_argument("root", Parent) sub_parser2: PAIArgumentParser = sub_parser.add_parser("sub2") sub_parser2.add_root_argument("root", Parent) root = parser.parse_args(args=[ "sub2", "--root.c1.p", "10", ]).root self.assertIsInstance(root.c1, Sub1) self.assertIsInstance(root.c2, Sub2) self.assertEqual(root.c1.p, 10)