potiuk commented on code in PR #32612:
URL: https://github.com/apache/airflow/pull/32612#discussion_r1263960362
##########
tests/cli/test_cli_parser.py:
##########
@@ -268,3 +269,13 @@ def
test_invalid_choice_raises_for_export_format_in_db_export_archived_command(
f"--export-format: invalid choice: '{export_format}' "
"(choose from 'csv'), see help above.\n"
)
+
+ def test_cli_run_time(self):
+ setup_code = "import subprocess"
+ timing_code = 'subprocess.run(["airflow", "--help"])'
+ # Limit the number of samples otherwise the test will take a very long
time
+ num_samples = 3
+ threshold = 3.5
+ timing_result = timeit.timeit(stmt=timing_code, number=num_samples,
setup=setup_code) / num_samples
+ # Average run time of Airflow CLI should at least be within 3.5s
+ assert timing_result < threshold
Review Comment:
We should have different timings for different commands IMHO. And I agree
with @uranusjr that if basic commands take > 3 seconds, this is wrong. Some of
them ("config" that I worked on recently in
https://github.com/apache/airflow/pull/32604 need to initialize providers now
(and I deliberately introduced lazy-loading the providers-manager for config in
my change to only run it when actually needed. But maybe this is an indication
that we still need to improve some of that . @uranusjr had done a lot of those
lazy-loading things to make the time smaller for CLIs and some initialization,
but 3 seconds for "most" commands seems really off.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]