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 when
it will be merged 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]