@@ -496,6 +496,26 @@ def test_dag_cli_should_display_help(self):
496496 with pytest .raises (SystemExit ):
497497 parser .parse_args ([* cmd_args , "--help" ])
498498
499+ @pytest .mark .parametrize (
500+ ("selected_names" , "source_commands" ),
501+ [
502+ pytest .param (cli_config .DAG_CLI_DAGS_SUBCOMMANDS , cli_config .DAGS_COMMANDS , id = "dags" ),
503+ pytest .param (cli_config .DAG_CLI_TASKS_SUBCOMMANDS , cli_config .TASKS_COMMANDS , id = "tasks" ),
504+ ],
505+ )
506+ def test_dag_cli_subcommands_all_exist (self , selected_names , source_commands ):
507+ """A name that no longer exists is silently dropped, so guard against stale entries."""
508+ assert set (selected_names ) <= {command .name for command in source_commands }
509+
510+ def test_dag_cli_parser_keeps_args_when_rebuilt (self ):
511+ """``_remove_dag_id_opt`` must not hand argparse a one-shot generator."""
512+ cli_parser .get_parser .cache_clear ()
513+ first = vars (cli_parser .get_parser (dag_parser = True ).parse_args (["dags" , "pause" ]))
514+ cli_parser .get_parser .cache_clear ()
515+ second = vars (cli_parser .get_parser (dag_parser = True ).parse_args (["dags" , "pause" ]))
516+ assert "treat_dag_id_as_regex" in first
517+ assert first .keys () == second .keys ()
518+
499519 def test_positive_int (self ):
500520 assert cli_config .positive_int (allow_zero = True )("1" ) == 1
501521 assert cli_config .positive_int (allow_zero = True )("0" ) == 0
0 commit comments