conda-incubator / conda-store

Data science environments, for collaboration. ✨
https://conda.store
BSD 3-Clause "New" or "Revised" License
137 stars 44 forks source link

[Meta] Test optimizations #830

Open peytondmurray opened 3 weeks ago

peytondmurray commented 3 weeks ago

Context

I'm running tests locally, following the steps in test_conda_store_server_unit.yaml workflow. The unit tests for conda-store-server take a long time. Inside conda-store-server/, I ran pytest --durations=0 -m "not extended_prefix and not user_journey" tests and recorded the following durations:

Click to expand output

``` 588.13s call tests/test_actions.py::test_generate_constructor_installer[simple_lockfile_specification] 194.93s call tests/test_actions.py::test_generate_constructor_installer[simple_specification] 172.98s call tests/test_actions.py::test_generate_constructor_installer[simple_specification_with_pip] 118.69s call tests/test_actions.py::test_generate_constructor_installer[simple_lockfile_specification_with_pip] 73.38s call tests/test_actions.py::test_solve_lockfile[simple_specification_with_pip] 29.00s call tests/test_actions.py::test_solve_lockfile_multiple_platforms[simple_specification] 24.80s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-3] 23.47s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-1] 23.11s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-True-1] 22.98s setup tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix1] 22.81s setup tests/test_actions.py::test_api_get_build_installer[conda_prefix1] 22.74s setup tests/test_actions.py::test_generate_conda_pack[conda_prefix1] 22.60s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-2] 22.41s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-0] 22.19s setup tests/test_actions.py::test_generate_conda_export[conda_prefix1] 21.56s setup tests/test_actions.py::test_generate_conda_docker[conda_prefix1] 17.62s call tests/test_actions.py::test_solve_lockfile_multiple_platforms[simple_specification_with_pip] 15.39s call tests/test_actions.py::test_install_specification 13.53s call tests/test_actions.py::test_fetch_and_extract_conda_packages 12.25s call tests/test_actions.py::test_solve_lockfile[simple_specification] 11.86s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-0] 11.77s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-True-1] 11.62s setup tests/test_actions.py::test_api_get_build_installer[conda_prefix0] 11.41s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-3] 11.16s setup tests/test_actions.py::test_generate_conda_pack[conda_prefix0] 10.80s setup tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix0] 10.71s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-2] 10.44s setup tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-1] 9.61s call tests/test_app_api.py::test_conda_store_app_register_solve 8.63s setup tests/test_actions.py::test_generate_conda_docker[conda_prefix0] 8.03s call tests/test_actions.py::test_solve_lockfile_valid_conda_flags 7.97s call tests/test_actions.py::test_generate_conda_pack[conda_prefix1] 7.91s call tests/test_actions.py::test_solve_lockfile_invalid_conda_flags 7.90s setup tests/test_actions.py::test_generate_conda_export[conda_prefix0] 5.07s call tests/test_server.py::test_celery_stats 1.98s teardown tests/test_app_api.py::test_conda_store_register_environment_workflow 1.98s teardown tests/test_server.py::test_create_specification_auth 1.94s teardown tests/test_server.py::test_create_specification_auth_env_name_too_long[256] 1.94s call tests/test_actions.py::test_remove_conda_prefix 1.90s setup tests/test_server.py::test_delete_build_auth 1.88s teardown tests/test_server.py::test_update_environment_build_auth 1.85s teardown tests/test_app_api.py::test_conda_store_app_register_solve 1.77s setup tests/test_server.py::test_create_specification_auth_env_name_too_long[255] 1.77s setup tests/test_server.py::test_celery_stats 1.70s setup tests/test_server.py::test_delete_environment_auth 1.70s setup tests/test_server.py::test_put_build_trigger_build_auth 1.64s setup tests/test_server.py::test_create_specification_auth_no_namespace_specified 1.64s teardown tests/test_server.py::test_create_specification_auth_no_namespace_specified 1.62s call tests/test_actions.py::test_set_conda_prefix_permissions 1.49s teardown tests/test_server.py::test_put_build_trigger_build_auth 1.47s teardown tests/test_server.py::test_delete_environment_auth 1.46s teardown tests/test_server.py::test_delete_build_auth 1.44s teardown tests/test_server.py::test_create_specification_auth_env_name_too_long[255] 1.41s setup tests/test_server.py::test_create_specification_auth_env_name_too_long[256] 1.32s setup tests/test_app_api.py::test_conda_store_app_register_solve 1.32s call tests/test_actions.py::test_get_conda_prefix_stats 1.26s setup tests/test_server.py::test_create_get_delete_namespace_auth 1.25s setup tests/test_server.py::test_update_environment_build_auth 1.18s setup tests/test_app_api.py::test_conda_store_register_environment_workflow 1.17s setup tests/test_server.py::test_create_specification_auth 1.14s call tests/test_actions.py::test_install_lockfile 0.95s teardown tests/test_server.py::test_create_get_delete_namespace_auth 0.85s call tests/test_actions.py::test_generate_conda_pack[conda_prefix0] 0.62s call tests/test_actions.py::test_generate_conda_export[conda_prefix1] 0.46s teardown tests/test_server.py::test_celery_stats 0.44s setup tests/test_server.py::test_api_list_conda_channels_unauth 0.39s setup tests/test_server.py::test_get_settings_auth[/api/v1/setting/namespace1/name1] 0.38s setup tests/test_server.py::test_get_settings_unauth[/api/v1/setting/namespace1/] 0.36s setup tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/namespace1] 0.34s setup tests/test_server.py::test_create_namespace_auth 0.34s setup tests/test_server.py::test_delete_build_unauth 0.31s setup tests/test_server.py::test_api_get_build_one_auth_yaml 0.31s setup tests/test_server.py::test_api_get_build_two_auth 0.31s setup tests/test_server.py::test_api_list_conda_packages_unauth 0.31s setup tests/test_server.py::test_update_environment_build_unauth 0.30s setup tests/test_server.py::test_api_get_build_one_unauth_yaml 0.29s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[2-developer-permissions1] 0.29s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[1-developer-permissions1] 0.29s setup tests/test_server.py::test_api_get_build_auth_logs_no_exist 0.28s setup tests/test_server.py::test_api_get_build_one_unauth 0.27s setup tests/test_server.py::test_api_get_environment_auth_existing 0.27s setup tests/test_server.py::test_api_get_build_one_auth_packages 0.27s setup tests/test_server.py::test_api_get_namespace_auth_no_exist 0.26s setup tests/test_server.py::test_api_get_namespace_unauth 0.25s call tests/test_actions.py::test_generate_conda_export[conda_prefix0] 0.24s call tests/test_server.py::test_delete_build_unauth 0.23s setup tests/test_app_api.py::test_conda_store_register_environment_duplicate_force_true 0.22s setup tests/test_traitlets.py::test_conda_store_server_enable_metrics 0.22s setup tests/test_server.py::test_put_global_settings_auth_in_namespace_environment[/api/v1/setting/namespace1] 0.21s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[1-viewer-permissions0] 0.21s setup tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/namespace1] 0.21s setup tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/] 0.20s setup tests/test_actions.py::test_solve_lockfile[simple_specification] 0.20s setup tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/namespace1/name1] 0.20s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[2-editor-permissions2] 0.20s setup tests/test_server.py::test_get_settings_auth[/api/v1/setting/] 0.20s setup tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/namespace1/name1] 0.19s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[2-viewer-permissions0] 0.19s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[2-editor-permissions2] 0.19s setup tests/test_server.py::test_put_global_settings_auth[/api/v1/setting/] 0.19s setup tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/] 0.19s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[1-editor-permissions2] 0.19s setup tests/test_server.py::test_api_list_environments_unauth 0.19s setup tests/test_server.py::test_get_settings_unauth[/api/v1/setting/namespace1/name1] 0.19s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[1-admin-permissions3] 0.19s setup tests/test_server.py::test_get_settings_auth[/api/v1/setting/namespace1/] 0.19s setup tests/test_server.py::test_create_namespace_noauth 0.18s setup tests/test_server.py::test_api_get_namespace_auth 0.18s setup tests/test_server.py::test_put_settings_unauth[/api/v1/setting/namespace1/name1] 0.18s setup tests/test_server.py::test_prometheus_metrics 0.18s setup tests/test_server.py::test_create_specification_unauth 0.18s setup tests/test_server.py::test_get_settings_unauth[/api/v1/setting/] 0.18s setup tests/test_server.py::test_api_permissions_auth 0.18s setup tests/test_server.py::test_api_list_environments_auth 0.18s setup tests/test_server.py::test_put_settings_unauth[/api/v1/setting/namespace1/] 0.18s setup tests/test_server.py::test_put_settings_unauth[/api/v1/setting/] 0.18s setup tests/test_actions.py::test_get_conda_prefix_stats 0.18s setup tests/test_server.py::test_put_settings_auth_invalid_keys[/api/v1/setting/] 0.18s setup tests/test_server.py::test_api_get_build_one_auth 0.18s setup tests/test_server.py::test_api_list_builds_auth 0.17s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[1-developer-permissions1] 0.17s setup tests/test_server.py::test_api_get_build_one_unauth_logs 0.17s setup tests/test_server.py::test_api_get_environment_auth_not_existing 0.17s setup tests/test_server.py::test_api_list_builds_unauth 0.17s setup tests/test_server.py::test_api_list_namespace_unauth 0.17s setup tests/test_server.py::test_api_get_build_auth_packages_no_exist 0.17s setup tests/test_server.py::test_api_get_build_one_unauth_packages 0.16s setup tests/test_server.py::test_api_get_environment_unauth 0.16s setup tests/test_server.py::test_api_list_namespace_auth 0.16s setup tests/test_server.py::test_api_get_build_one_auth_logs 0.16s setup tests/test_server.py::test_api_get_namespace_unauth_no_exist 0.16s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings14-new_entity_bindings14-False] 0.16s setup tests/test_actions.py::test_add_lockfile_packages 0.16s setup tests/test_server.py::test_put_build_trigger_build_noauth 0.16s setup tests/test_actions.py::test_set_conda_prefix_permissions 0.16s setup tests/test_actions.py::test_install_specification 0.16s setup tests/test_db_api.py::test_namespace_role_mapping_v2[developer] 0.15s setup tests/test_server.py::test_delete_environment_unauth 0.15s setup tests/test_actions.py::test_generate_constructor_installer[simple_specification_with_pip] 0.15s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings5-new_entity_bindings5-True] 0.14s setup tests/test_actions.py::test_solve_lockfile_invalid_conda_flags 0.14s setup tests/test_actions.py::test_generate_constructor_installer[simple_lockfile_specification_with_pip] 0.14s setup tests/test_actions.py::test_solve_lockfile[simple_specification_with_pip] 0.14s setup tests/test_actions.py::test_solve_lockfile_valid_conda_flags 0.14s setup tests/test_actions.py::test_generate_constructor_installer[simple_specification] 0.14s setup tests/test_auth.py::test_authorization[entity_bindings3-example-namespace/example-name-permissions3-True] 0.13s setup tests/test_auth.py::test_authorization[entity_bindings4-example-namespace/example-name-permissions4-False] 0.13s setup tests/test_auth.py::test_authorization[entity_bindings2-example-namespace/example-name-permissions2-True] 0.13s setup tests/test_auth.py::test_authorization[entity_bindings0-example-namespace/example-name-permissions0-True] 0.13s setup tests/test_app_api.py::test_conda_store_register_environment_force_false_same_namespace 0.13s setup tests/test_auth.py::test_authorization[entity_bindings1-example-namespace/example-name-permissions1-False] 0.13s setup tests/test_app_api.py::test_conda_store_register_environment_force_false_different_namespace 0.12s call tests/test_actions.py::test_add_lockfile_packages 0.11s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[1-editor-permissions2] 0.11s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[2-viewer-permissions0] 0.11s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[1-admin-permissions3] 0.10s setup tests/test_server.py::test_put_global_settings_auth_in_namespace_environment[/api/v1/setting/namespace1/name1] 0.10s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[2-developer-permissions1] 0.10s setup tests/test_server.py::test_put_settings_auth_invalid_keys[/api/v1/setting/namespace1/name1/] 0.10s setup tests/test_server.py::test_get_usage_auth 0.10s setup tests/test_server.py::test_api_version_unauth 0.10s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[1-viewer-permissions0] 0.10s setup tests/test_auth.py::test_end_to_end_auth_flow_v2[2-admin-permissions3] 0.10s setup tests/test_server.py::test_get_usage_unauth 0.10s setup tests/test_server.py::test_put_settings_auth_invalid_keys[/api/v1/setting/namespace1/] 0.09s setup tests/test_auth.py::test_end_to_end_auth_flow_v1[2-admin-permissions3] 0.09s setup tests/test_server.py::test_api_permissions_unauth 0.09s setup tests/test_traitlets.py::test_conda_store_server_enable_registry 0.09s setup tests/test_traitlets.py::test_conda_store_settings_conda_channels_packages_validate_valid 0.09s setup tests/test_actions.py::test_generate_constructor_installer[simple_lockfile_specification] 0.09s call tests/test_auth.py::test_end_to_end_auth_flow_v1[2-viewer-permissions0] 0.08s setup tests/test_db_api.py::test_namespace_role_mapping_v2[editor] 0.08s setup tests/test_traitlets.py::test_conda_store_server_enable_ui 0.08s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings15-new_entity_bindings15-False] 0.08s setup tests/test_traitlets.py::test_conda_store_server_authentication_class 0.08s setup tests/test_db_api.py::test_namespace_role_mapping 0.08s setup tests/test_traitlets.py::test_conda_store_server_templates 0.08s setup tests/test_traitlets.py::test_conda_store_server_additional_routes 0.08s setup tests/test_traitlets.py::test_conda_store_server_enable_api 0.08s setup tests/test_actions.py::test_install_lockfile 0.08s call tests/test_auth.py::test_end_to_end_auth_flow_v1[2-developer-permissions1] 0.08s setup tests/test_actions.py::test_solve_lockfile_multiple_platforms[simple_specification_with_pip] 0.08s setup tests/test_db_api.py::test_namespace_crud 0.08s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings16-new_entity_bindings16-True] 0.08s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings10-new_entity_bindings10-False] 0.08s setup tests/test_testing.py::test_testing_initialize_database 0.07s setup tests/test_traitlets.py::test_conda_store_server_url_prefix 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings0-new_entity_bindings0-True] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings7-new_entity_bindings7-False] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings18-new_entity_bindings18-False] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings17-new_entity_bindings17-True] 0.07s setup tests/test_db_api.py::test_build_path_too_long 0.07s setup tests/test_db_api.py::test_environment_crud 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings9-new_entity_bindings9-True] 0.07s call tests/test_server.py::test_create_get_delete_namespace_auth 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings8-new_entity_bindings8-True] 0.07s setup tests/test_actions.py::test_solve_lockfile_multiple_platforms[simple_specification] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings19-new_entity_bindings19-False] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings6-new_entity_bindings6-False] 0.07s setup tests/test_db_api.py::test_get_set_keyvaluestore 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings12-new_entity_bindings12-True] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings11-new_entity_bindings11-False] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings13-new_entity_bindings13-True] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings1-new_entity_bindings1-True] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings3-new_entity_bindings3-False] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings2-new_entity_bindings2-False] 0.07s call tests/test_auth.py::test_end_to_end_auth_flow_v1[1-editor-permissions2] 0.07s setup tests/test_auth.py::test_is_subset_entity_permissions[entity_bindings4-new_entity_bindings4-True] 0.07s call tests/test_auth.py::test_end_to_end_auth_flow_v1[1-viewer-permissions0] 0.07s call tests/test_auth.py::test_end_to_end_auth_flow_v1[1-admin-permissions3] 0.07s call tests/test_auth.py::test_end_to_end_auth_flow_v1[1-developer-permissions1] 0.05s call tests/test_traitlets.py::test_conda_store_server_url_prefix 0.05s call tests/test_traitlets.py::test_conda_store_server_enable_ui 0.05s call tests/test_traitlets.py::test_conda_store_server_enable_registry 0.05s call tests/test_traitlets.py::test_conda_store_server_enable_metrics 0.04s call tests/test_testing.py::test_testing_initialize_database 0.04s call tests/test_auth.py::test_end_to_end_auth_flow_v2[1-editor-permissions2] 0.04s call tests/test_auth.py::test_end_to_end_auth_flow_v1[2-editor-permissions2] 0.04s call tests/test_auth.py::test_end_to_end_auth_flow_v1[2-admin-permissions3] 0.03s call tests/test_traitlets.py::test_conda_store_server_authentication_class 0.03s call tests/test_traitlets.py::test_conda_store_server_enable_api 0.03s call tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/namespace1/name1] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[2-developer-permissions1] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[2-viewer-permissions0] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[2-admin-permissions3] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[2-editor-permissions2] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[1-viewer-permissions0] 0.03s call tests/test_traitlets.py::test_conda_store_server_additional_routes 0.03s call tests/test_server.py::test_delete_build_auth 0.03s call tests/test_traitlets.py::test_conda_store_server_templates 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[1-admin-permissions3] 0.03s call tests/test_auth.py::test_end_to_end_auth_flow_v2[1-developer-permissions1] 0.03s call tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/namespace1] 0.02s call tests/test_server.py::test_create_namespace_auth 0.02s call tests/test_server.py::test_create_specification_auth_env_name_too_long[255] 0.02s call tests/test_server.py::test_api_get_build_one_auth_yaml 0.02s call tests/test_server.py::test_api_list_environments_unauth 0.02s call tests/test_server.py::test_create_specification_auth_env_name_too_long[256] 0.02s call tests/test_server.py::test_put_environment_settings_auth[/api/v1/setting/] 0.02s call tests/test_server.py::test_api_list_conda_packages_unauth 0.02s call tests/test_server.py::test_put_global_settings_auth[/api/v1/setting/] 0.02s call tests/test_traitlets.py::test_conda_store_settings_conda_channels_packages_validate_valid 0.02s call tests/test_server.py::test_delete_environment_auth 0.02s setup tests/test_actions.py::test_fetch_and_extract_conda_packages 0.02s call tests/test_server.py::test_api_list_conda_channels_unauth 0.02s setup tests/test_actions.py::test_remove_conda_prefix 0.02s call tests/test_server.py::test_api_list_environments_auth 0.02s call tests/test_db_api.py::test_namespace_role_mapping_v2[editor] 0.02s call tests/test_server.py::test_api_get_build_one_auth_logs 0.02s call tests/test_db_api.py::test_namespace_role_mapping_v2[developer] 0.02s call tests/test_server.py::test_create_specification_unauth 0.02s teardown tests/test_usage.py::test_disk_usage 0.01s call tests/test_server.py::test_api_get_build_two_auth 0.01s call tests/test_server.py::test_api_list_builds_unauth 0.01s call tests/test_server.py::test_prometheus_metrics 0.01s call tests/test_actions.py::test_api_get_build_installer[conda_prefix1] 0.01s call tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/namespace1] 0.01s call tests/test_server.py::test_api_list_builds_auth 0.01s call tests/test_server.py::test_api_get_environment_auth_existing 0.01s call tests/test_server.py::test_api_get_build_auth_logs_no_exist 0.01s call tests/test_server.py::test_get_settings_auth[/api/v1/setting/namespace1/name1] 0.01s call tests/test_server.py::test_put_settings_unauth[/api/v1/setting/namespace1/name1] 0.01s call tests/test_server.py::test_api_get_build_one_auth_packages 0.01s call tests/test_server.py::test_get_settings_auth[/api/v1/setting/namespace1/] 0.01s call tests/test_server.py::test_api_get_build_one_unauth_yaml 0.01s call tests/test_server.py::test_put_build_trigger_build_auth 0.01s call tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/namespace1/name1] 0.01s call tests/test_server.py::test_create_specification_auth 0.01s call tests/test_server.py::test_api_get_build_one_auth 0.01s call tests/test_server.py::test_get_settings_auth[/api/v1/setting/] 0.01s call tests/test_actions.py::test_action_decorator 0.01s call tests/test_server.py::test_api_get_build_one_unauth_packages 0.01s call tests/test_server.py::test_create_namespace_noauth 0.01s call tests/test_server.py::test_api_list_namespace_auth 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-1] 0.01s call tests/test_server.py::test_get_settings_unauth[/api/v1/setting/namespace1/name1] 0.01s call tests/test_server.py::test_api_get_build_auth_packages_no_exist 0.01s call tests/test_server.py::test_api_list_namespace_unauth 0.01s call tests/test_server.py::test_api_get_namespace_auth 0.01s call tests/test_server.py::test_update_environment_build_unauth 0.01s call tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix0] 0.01s call tests/test_server.py::test_api_get_build_one_unauth 0.01s call tests/test_server.py::test_update_environment_build_auth 0.01s call tests/test_server.py::test_create_specification_auth_no_namespace_specified 0.01s call tests/test_server.py::test_api_get_build_one_unauth_logs 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-True-1] 0.01s call tests/test_actions.py::test_api_get_build_installer[conda_prefix0] 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-2] 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-3] 0.01s call tests/test_server.py::test_api_get_namespace_unauth 0.01s call tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix1] 0.01s call tests/test_app_api.py::test_conda_store_register_environment_duplicate_force_true 0.01s call tests/test_server.py::test_put_build_trigger_build_noauth 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-2] 0.01s call tests/test_server.py::test_api_get_environment_auth_not_existing 0.01s call tests/test_server.py::test_put_settings_unauth[/api/v1/setting/] 0.01s call tests/test_app_api.py::test_conda_store_register_environment_workflow 0.01s call tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-1] 0.01s call tests/test_server.py::test_get_settings_unauth[/api/v1/setting/] 0.01s call tests/test_actions.py::test_generate_conda_docker[conda_prefix0] 0.01s call tests/test_app_api.py::test_conda_store_register_environment_force_false_same_namespace 0.01s call tests/test_app_api.py::test_conda_store_register_environment_force_false_different_namespace 0.01s call tests/test_db_api.py::test_environment_crud 0.01s call tests/test_server.py::test_put_global_settings_auth_in_namespace_environment[/api/v1/setting/namespace1/name1] 0.01s call tests/test_db_api.py::test_get_set_keyvaluestore 0.01s call tests/test_server.py::test_get_settings_unauth[/api/v1/setting/namespace1/] 0.01s call tests/test_db_api.py::test_namespace_crud 0.01s call tests/test_server.py::test_api_get_environment_unauth 0.01s call tests/test_server.py::test_delete_environment_unauth 0.01s call tests/test_server.py::test_get_usage_unauth 0.01s call tests/test_server.py::test_get_usage_auth 0.01s call tests/test_server.py::test_put_settings_unauth[/api/v1/setting/namespace1/] 0.01s call tests/test_server.py::test_api_get_namespace_unauth_no_exist 0.01s call tests/test_server.py::test_api_get_namespace_auth_no_exist 0.01s call tests/test_server.py::test_put_global_settings_auth_in_namespace_environment[/api/v1/setting/namespace1] 0.01s call tests/test_server.py::test_put_environment_settings_auth_invliad_type[/api/v1/setting/] ``` A number of tests failed due to a 400 error: ``` FAILED tests/test_server.py::test_create_specification_auth_env_name_too_long[255] - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' ``` Still others error out because of a storage issue: ``` E conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space ``` But in either case I think we have a better idea of the tests that are really slowing down CI. Here's the test summary: ``` ========================================================================================================== short test summary info ========================================================================================================== FAILED tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix0] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_add_conda_prefix_packages[conda_prefix1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-2] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-False-3] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix0-True-1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-2] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-False-3] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_lockfile[conda_prefix1-True-1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_installer[conda_prefix0] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_actions.py::test_api_get_build_installer[conda_prefix1] - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_app_api.py::test_conda_store_register_environment_workflow - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_app_api.py::test_conda_store_register_environment_force_false_same_namespace - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_app_api.py::test_conda_store_register_environment_force_false_different_namespace - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_app_api.py::test_conda_store_register_environment_duplicate_force_true - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_db_api.py::test_build_path_too_long - conda_store_server.utils.CondaStoreError: `CondaStore.storage_threshold` reached. Action environment:create prevented due to insufficient storage space FAILED tests/test_server.py::test_create_specification_auth_env_name_too_long[255] - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' FAILED tests/test_server.py::test_create_specification_auth_env_name_too_long[256] - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' FAILED tests/test_server.py::test_create_specification_auth - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' FAILED tests/test_server.py::test_create_specification_auth_no_namespace_specified - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' FAILED tests/test_server.py::test_put_build_trigger_build_auth - pydantic.error_wrappers.ValidationError: 1 validation error for APIPostSpecification FAILED tests/test_server.py::test_update_environment_build_auth - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/environment/namespace2/name4/' FAILED tests/test_server.py::test_delete_environment_auth - httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://testserver/api/v1/specification/' FAILED tests/test_server.py::test_delete_build_auth - pydantic.error_wrappers.ValidationError: 1 validation error for APIPostSpecification FAILED tests/test_usage.py::test_disk_usage - AssertionError: assert (2000 + 40) <= 2000 ============================================================================ 26 failed, 165 passed, 9 deselected, 2 xfailed, 122 warnings in 1679.13s (0:27:59) ============================================================================= ```

Value and/or benefit

Faster tests mean less energy spent per run, lower waiting times, and quicker turnaround.

Anything else?

test_generate_constructor_installer Accounted for 64% of the total test time.