Skip to content
GitHub Actions / Pytest Results succeeded Jun 25, 2024 in 0s

353 passed, 4 failed and 17 skipped

Tests failed

❌ pytest_report.xml

374 tests were completed in 1113s with 353 passed, 4 failed and 17 skipped.

Test suite Passed Failed Skipped Time
pytest 353✅ 4❌ 17⚪ 1113s

❌ pytest

⚪ src.server.oasisapi.files.v1_api.tests.test_convert
⚪ src.server.oasisapi.files.v2_api.tests.test_convert
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisApi
  ✅ test_cleaned_name_is_empty___response_is_400
  ✅ test_cleaned_name_portfolio_and_model_are_present___object_is_created
  ✅ test_complex_model_file_present___object_is_created
  ✅ test_model_does_exist___response_is_200
  ✅ test_model_does_not_exist___response_is_400
  ✅ test_model_run_mode_is_not_V1___response_is_400
  ✅ test_name_is_not_provided___response_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisRun
  ✅ test_run_mode_is_not_V1___responce_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___run_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisCancel
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___cancel_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisGenerateInputs
  ✅ test_model_run_mode_not_V1___response_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___generate_inputs_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisCancelInputsGeneration
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___generate_inputs_generation_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisCopy
  ✅ test_complex_model_file_is_not_supplied___model_is_copied
  ✅ test_complex_model_file_is_supplied___model_is_replaced
  ✅ test_creator_is_set_to_caller
  ✅ test_generate_inputs_task_id_is_reset
  ✅ test_input_file_is_not_supplied___input_file_is_not_copied
  ✅ test_lookup_errors_file_is_cleared
  ✅ test_lookup_success_file_is_cleared
  ✅ test_lookup_validation_file_is_cleared
  ✅ test_model_is_not_supplied___model_is_copied
  ✅ test_model_is_supplied___model_is_replaced
  ✅ test_new_name_is_provided___new_name_is_set_on_new_object
  ✅ test_new_object_is_created
  ✅ test_no_new_name_is_provided___copy_is_appended_to_name
  ✅ test_output_file_is_cleared
  ✅ test_portfolio_is_not_supplied___portfolio_is_copied
  ✅ test_portfolio_is_supplied___portfolio_is_replaced
  ✅ test_run_task_id_is_reset
  ✅ test_settings_file_is_not_supplied___settings_file_is_copied
  ✅ test_state_is_reset
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisSettingsJson
  ✅ test_settings_json_is_not_present___delete_response_is_404
  ✅ test_settings_json_is_not_present___get_response_is_404
  ✅ test_settings_json_is_not_valid___response_is_400
  ✅ test_settings_json_is_uploaded___can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisSettingsFile
  ✅ test_settings_file_is_not_a_valid_format___response_is_400
  ✅ test_settings_file_is_not_present___delete_response_is_404
  ✅ test_settings_file_is_not_present___get_response_is_404
  ✅ test_settings_file_is_uploaded___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisInputFile
  ✅ test_input_file_is_not_present___get_response_is_404
  ✅ test_input_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisLookupErrorsFile
  ✅ test_lookup_errors_file_is_not_present___get_response_is_404
  ✅ test_lookup_errors_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisLookupSuccessFile
  ✅ test_lookup_success_file_is_not_present___get_response_is_404
  ✅ test_lookup_success_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisLookupValidationFile
  ✅ test_lookup_validation_file_is_not_present___get_response_is_404
  ✅ test_lookup_validation_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisInputGenerationTracebackFile
  ✅ test_input_generation_traceback_file_is_not_present___delete_response_is_404
  ✅ test_input_generation_traceback_file_is_not_present___get_response_is_404
  ✅ test_input_generation_traceback_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisOutputFile
  ✅ test_output_file_is_not_present___delete_response_is_404
  ✅ test_output_file_is_not_present___get_response_is_404
  ✅ test_output_file_is_not_valid_format___post_response_is_405
  ✅ test_output_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_api.AnalysisRunTracebackFile
  ✅ test_run_traceback_file_is_not_present___delete_response_is_404
  ✅ test_run_traceback_file_is_not_present___get_response_is_404
  ✅ test_run_traceback_file_is_not_valid_format___post_response_is_405
  ✅ test_run_traceback_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v1_api.tests.test_analysis_model.AnalysisCancel
  ✅ test_state_is_not_running___validation_error_is_raised_revoke_is_not_called
  ✅ test_state_is_running___revoke_is_called
src.server.oasisapi.analyses.v1_api.tests.test_analysis_model.AnalysisRun
  ✅ test_state_is_ready___run_is_started
  ✅ test_state_is_running_or_generating_inputs___validation_error_is_raised_revoke_is_not_called
  ✅ test_v1_run_analysis_signature_is_correct
src.server.oasisapi.analyses.v1_api.tests.test_analysis_model.AnalysisCancelInputGeneration
  ✅ test_state_is_generating_inputs___revoke_is_called
  ✅ test_state_is_not_generating_inputs___validation_error_is_raised_revoke_is_not_called
src.server.oasisapi.analyses.v1_api.tests.test_analysis_model.AnalysisGenerateInputs
  ✅ test_portfolio_has_no_location_file___validation_error_is_raised_revoke_is_not_called
  ✅ test_state_is_not_running___run_is_started
  ✅ test_state_is_running_or_generating_inputs___validation_error_is_raised_revoke_is_not_called
  ✅ test_v1_generate_input_signature_is_correct
src.server.oasisapi.analyses.v1_api.tests.test_analysis_tasks.RunAnalysisSuccess
  ✅ test_output_file_and_status_are_updated
src.server.oasisapi.analyses.v1_api.tests.test_analysis_tasks.RunAnalysisFailure
  ✅ test_output_tracebackfile__and_status_are_updated
src.server.oasisapi.analyses.v1_api.tests.test_analysis_tasks.GenerateInputsSuccess
  ✅ test_input_file_lookup_files_and_status_are_updated
src.server.oasisapi.analyses.v1_api.tests.test_analysis_tasks.GenerateInputsFailure
  ✅ test_input_generation_traceback_file_and_status_are_updated
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi
  ✅ test_cleaned_name_is_empty___response_is_400
  ❌ test_cleaned_name_portfolio_and_model_are_present___object_is_created
	self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_cleaned_name_portfolio_and_model_are_present___object_is_created>
  ✅ test_cleaned_name_portfolio_and_model_are_present___run_mode_null_response_is_400
  ❌ test_complex_model_file_present___object_is_created
	self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_complex_model_file_present___object_is_created>
  ✅ test_create_as_admin_low_priority___successfully
  ✅ test_create_as_no_admin_low_priority___rejected
  ✅ test_create_no_priority___successfully_set_default
  ✅ test_model_does_exist___response_is_200
  ✅ test_model_does_not_exist___response_is_400
  ✅ test_modify_analysis_without_group___successfully
  ✅ test_multiple_analyses_with_different_groups___user_should_not_see_each_others
  ✅ test_multiple_analyses_with_different_groups___user_without_group_should_not_see_them
  ✅ test_name_is_not_provided___response_is_400
  ✅ test_portfolio_group_inheritance___same_groups_as_portfolio
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
  ✅ test_user_with_and_without_group_can_access_portfolio_without_group
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisRun
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___run_is_called
  ✅ test_user_is_authenticated_object_exists___run_is_called__with_override
  ✅ test_user_is_not_authenticated___response_is_forbidden
  ✅ test_user_is_not_in_same_model_group___run_is_denied
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisCancel
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___cancel_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
  ✅ test_user_is_not_in_same_model_group___cancel_is_denied
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisGenerateInputs
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___generate_inputs_is_called
  ✅ test_user_is_authenticated_object_exists___generate_inputs_is_called__with_override
  ✅ test_user_is_not_authenticated___response_is_forbidden
  ✅ test_user_is_not_in_same_model_group___run_is_denied
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisCancelInputsGeneration
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_authenticated_object_exists___generate_inputs_generation_is_called
  ✅ test_user_is_not_authenticated___response_is_forbidden
  ✅ test_user_is_not_in_same_model_group___cancel_is_denied
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisCopy
  ✅ test_complex_model_file_is_not_supplied___model_is_copied
  ✅ test_complex_model_file_is_supplied___model_is_replaced
  ✅ test_creator_is_set_to_caller
  ✅ test_generate_inputs_task_id_is_reset
  ✅ test_input_file_is_not_supplied___input_file_is_not_copied
  ✅ test_lookup_errors_file_is_cleared
  ✅ test_lookup_success_file_is_cleared
  ✅ test_lookup_validation_file_is_cleared
  ✅ test_model_is_not_supplied___model_is_copied
  ✅ test_model_is_supplied___model_is_replaced
  ✅ test_new_name_is_provided___new_name_is_set_on_new_object
  ✅ test_new_object_is_created
  ✅ test_no_new_name_is_provided___copy_is_appended_to_name
  ✅ test_output_file_is_cleared
  ✅ test_portfolio_is_not_supplied___portfolio_is_copied
  ✅ test_portfolio_is_supplied___portfolio_is_replaced
  ✅ test_run_task_id_is_reset
  ✅ test_settings_file_is_not_supplied___settings_file_is_copied
  ✅ test_state_is_reset
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisSettingsJson
  ✅ test_settings_json_is_not_present___delete_response_is_404
  ✅ test_settings_json_is_not_present___get_response_is_404
  ✅ test_settings_json_is_not_valid___response_is_400
  ✅ test_settings_json_is_uploaded___can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisSettingsFile
  ✅ test_settings_file_is_not_a_valid_format___response_is_400
  ✅ test_settings_file_is_not_present___delete_response_is_404
  ✅ test_settings_file_is_not_present___get_response_is_404
  ✅ test_settings_file_is_uploaded___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisInputFile
  ✅ test_input_file_is_not_present___get_response_is_404
  ✅ test_input_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisLookupErrorsFile
  ✅ test_lookup_errors_file_is_not_present___get_response_is_404
  ✅ test_lookup_errors_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisLookupSuccessFile
  ✅ test_lookup_success_file_is_not_present___get_response_is_404
  ✅ test_lookup_success_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisLookupValidationFile
  ✅ test_lookup_validation_file_is_not_present___get_response_is_404
  ✅ test_lookup_validation_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisInputGenerationTracebackFile
  ✅ test_input_generation_traceback_file_is_not_present___delete_response_is_404
  ✅ test_input_generation_traceback_file_is_not_present___get_response_is_404
  ✅ test_input_generation_traceback_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisOutputFile
  ✅ test_output_file_is_not_present___delete_response_is_404
  ✅ test_output_file_is_not_present___get_response_is_404
  ✅ test_output_file_is_not_valid_format___post_response_is_405
  ✅ test_output_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisRunTracebackFile
  ✅ test_run_traceback_file_is_not_present___delete_response_is_404
  ✅ test_run_traceback_file_is_not_present___get_response_is_404
  ✅ test_run_traceback_file_is_not_valid_format___post_response_is_405
  ✅ test_run_traceback_file_is_present___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisOutputFileListSQLApiDefaultReader
  ⚪ test_endpoint_disabled___raises_no_reverse_match
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisOutputFileListSQLApi
  ⚪ test_list_expected__response_200
  ⚪ test_user_is_authenticated_object_does_not_exist___response_is_404
  ⚪ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisOutputFileSQLApiDefaultReader
  ⚪ test_endpoint_disabled___raises_no_reverse_match
src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisOutputFileSQLApi
  ⚪ test_file__sql_applied__csv_response
  ⚪ test_file__sql_applied__json_response
  ⚪ test_file__sql_applied__parquet_response
  ⚪ test_sql___file_incorrect__response_is_404
  ⚪ test_sql__response_is_200
  ⚪ test_sql_is_empty___response_is_400
  ⚪ test_sql_is_invalid___response_is_400
  ⚪ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analyses.v2_api.tests.test_analysis_model.AnalysisGenerateAndRun
  ✅ test_state_is_ready___run_is_started
  ✅ test_state_is_running_or_generating_inputs___run_mode_invalid__validation_error_raised
  ✅ test_state_is_running_or_generating_inputs___validation_error_is_raised_revoke_is_not_called
src.server.oasisapi.analyses.v2_api.tests.test_analysis_model.AnalysisRun
  ✅ test_run_analysis_signature_is_correct
  ✅ test_state_is_ready___run_is_started
  ✅ test_state_is_running_or_generating_inputs___validation_error_is_raised_revoke_is_not_called
src.server.oasisapi.analyses.v2_api.tests.test_analysis_model.AnalysisGenerateInputs
  ✅ test_generate_input_signature_is_correct
  ✅ test_portfolio_has_no_location_file___validation_error_is_raised_revoke_is_not_called
  ✅ test_state_is_not_running___run_is_started
  ✅ test_state_is_running_or_generating_inputs___validation_error_is_raised_revoke_is_not_called
src.server.oasisapi.analysis_models.v1_api.tests.test_analysis_model.AnalysisModelApi
  ✅ test_data_is_valid___object_is_created
  ✅ test_supplier_id_is_missing___response_is_400
  ✅ test_version_id_is_missing___response_is_400
src.server.oasisapi.analysis_models.v1_api.tests.test_analysis_model.ModelSettingsJson
  ✅ test_settings_json_is_not_present___delete_response_is_404
  ✅ test_settings_json_is_not_present___get_response_is_404
  ✅ test_settings_json_is_not_valid___response_is_400
  ✅ test_settings_json_is_uploaded___can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi
  ✅ test_as_admin_create_with_non_existing_groups___successfully_1
  ✅ test_as_admin_create_with_non_existing_groups___successfully_2
  ✅ test_create_with_default_groups___response_is_201
  ❌ test_create_with_default_groups_and_get_with_other_groups___response_is_empty
	self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi testMethod=test_create_with_default_groups_and_get_with_other_groups___response_is_empty>
  ✅ test_create_with_invalid_groups___response_is_403
  ✅ test_create_with_valid_groups___response_is_201
  ✅ test_data_is_valid___object_is_created
  ✅ test_supplier_id_is_missing___response_is_400
  ✅ test_version_id_is_missing___response_is_400
src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson
  ✅ test_settings_json_is_not_present___delete_response_is_404
  ✅ test_settings_json_is_not_present___get_response_is_404
  ✅ test_settings_json_is_not_valid___response_is_400
  ✅ test_settings_json_is_uploaded___can_be_retrieved
  ❌ test_settings_json_is_uploaded___run_mode_is_set
	self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson testMethod=test_settings_json_is_uploaded___run_mode_is_set>
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.auth.tests.test_jwt.AccessToken
  ✅ test_password_is_not_correct___response_is_401
  ✅ test_username_and_password_are_correct___returned_token_represents_the_user
  ✅ test_username_is_not_correct___response_is_401
src.server.oasisapi.auth.tests.test_jwt.RefreshToken
  ✅ test_username_and_password_are_correct___refresh_token_can_be_used_to_get_access_token
src.server.oasisapi.data_files.v1_api.tests.test_data_files.ComplexModelFilesApi
  ✅ test_data_is_valid___object_is_created
src.server.oasisapi.data_files.v1_api.tests.test_data_files.ComplexModelFileDataFile
  ✅ test_data_file_is_not_present___delete_response_is_404
  ✅ test_data_file_is_not_present___get_response_is_404
  ✅ test_data_file_is_unknown_format___response_is_200
  ✅ test_data_file_is_uploaded___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.data_files.v2_api.tests.test_data_files.ComplexModelFilesApi
  ✅ test_data_is_valid___object_is_created
src.server.oasisapi.data_files.v2_api.tests.test_data_files.ComplexModelFileDataFile
  ✅ test_data_file_is_not_present___delete_response_is_404
  ✅ test_data_file_is_not_present___get_response_is_404
  ✅ test_data_file_is_unknown_format___response_is_200
  ✅ test_data_file_is_uploaded___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.healthcheck.tests.test_healthcheck.Healthcheck
  ✅ test_user_is_authenticated___response_is_ok
  ✅ test_user_is_not_authenticated___response_is_ok
src.server.oasisapi.info.tests.test_info.Perilcodes
  ✅ test_user_is_authenticated___response_is_ok
  ✅ test_user_is_not_authenticated___response_is_ok
src.server.oasisapi.info.tests.test_info.ServerInfo
  ✅ test_user_is_authenticated___response_is_ok
  ✅ test_user_is_not_authenticated___response_is_Forbidden
src.server.oasisapi.permissions.tests.test_group_auth.TestGroupAuth
  ✅ test_verify_and_get_groups
  ✅ test_verify_and_get_groups__invalid_groups
  ✅ test_verify_and_get_groups__no_or_empty
  ✅ test_verify_and_get_groups__valid_groups
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioApi
  ✅ test_cleaned_name_is_empty___response_is_400
  ✅ test_cleaned_name_is_present___object_is_created
  ✅ test_name_is_not_provided___response_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioApiCreateAnalysis
  ✅ test_cleaned_name_and_model_are_present___object_is_created_inputs_are_generated
  ✅ test_cleaned_name_is_empty___response_is_400
  ✅ test_model_does_not_exist___response_is_400
  ✅ test_model_is_not_provided___response_is_400
  ✅ test_name_is_not_provided___response_is_400
  ✅ test_portfolio_does_not_have_location_file_set___response_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioAccountsFile
  ✅ test_accounts_file_invalid_uploaded___parquet_exception_raised
  ✅ test_accounts_file_is_not_a_valid_format___response_is_400
  ✅ test_accounts_file_is_not_present___delete_response_is_404
  ✅ test_accounts_file_is_not_present___get_response_is_404
  ✅ test_accounts_file_is_uploaded___file_can_be_retrieved
  ✅ test_accounts_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioLocationFile
  ✅ test_location_file_invalid_uploaded___parquet_exception_raised
  ✅ test_location_file_is_not_a_valid_format___response_is_400
  ✅ test_location_file_is_not_present___delete_response_is_404
  ✅ test_location_file_is_not_present___get_response_is_404
  ✅ test_location_file_is_uploaded___file_can_be_retrieved
  ✅ test_location_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioReinsuranceSourceFile
  ✅ test_reinsurance_scope_file_invalid_uploaded___parquet_exception_raised
  ✅ test_reinsurance_scope_file_is_not_a_valid_format___response_is_400
  ✅ test_reinsurance_scope_file_is_not_present___delete_response_is_404
  ✅ test_reinsurance_scope_file_is_not_present___get_response_is_404
  ✅ test_reinsurance_scope_file_is_uploaded___file_can_be_retrieved
  ✅ test_reinsurance_scope_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioReinsuranceInfoFile
  ✅ test_reinsurance_info_file_invalid_uploaded___parquet_exception_raised
  ✅ test_reinsurance_info_file_is_not_a_valid_format___response_is_400
  ✅ test_reinsurance_info_file_is_not_present___delete_response_is_404
  ✅ test_reinsurance_info_file_is_not_present___get_response_is_404
  ✅ test_reinsurance_info_file_is_uploaded___file_can_be_retrieved
  ✅ test_reinsurance_info_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v1_api.tests.test_portfolio.PortfolioValidation
  ✅ test_account_file__is_invalid__response_is_400
  ✅ test_all_exposure__are_valid
  ✅ test_location_file__is_invalid__response_is_400
  ✅ test_location_file__is_valid
  ✅ test_reinsurance_info_file__is_invalid__response_is_400
  ✅ test_reinsurance_scope_file__is_invalid__response_is_400
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioApi
  ✅ test_cleaned_name_is_empty___response_is_400
  ✅ test_cleaned_name_is_present___object_is_created
  ✅ test_default_empty_groups___visible_for_users_without_groups_only
  ✅ test_name_is_not_provided___response_is_400
  ⚪ test_portfolio_files_have_conversions___conversion_urls_are_present
  ⚪ test_portfolio_files_have_failed_conversions___conversion_urls_are_not_present
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioApiCreateAnalysis
  ✅ test_cleaned_name_and_model_are_present___object_is_created_inputs_are_generated
  ✅ test_cleaned_name_is_empty___response_is_400
  ✅ test_model_does_not_exist___response_is_400
  ✅ test_model_is_not_provided___response_is_400
  ✅ test_name_is_not_provided___response_is_400
  ✅ test_portfolio_does_not_have_location_file_set___response_is_400
  ✅ test_user_is_authenticated_object_does_not_exist___response_is_404
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioAccountsFile
  ✅ test_accounts_file_invalid_uploaded___parquet_exception_raised
  ✅ test_accounts_file_is_not_a_valid_format___response_is_400
  ✅ test_accounts_file_is_not_present___delete_response_is_404
  ✅ test_accounts_file_is_not_present___get_response_is_404
  ✅ test_accounts_file_is_uploaded___file_can_be_retrieved
  ✅ test_accounts_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_accounts_file_user_is_not_permitted___response_is_403
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioLocationFile
  ✅ test_location_file_invalid_uploaded___parquet_exception_raised
  ✅ test_location_file_is_not_a_valid_format___response_is_400
  ✅ test_location_file_is_not_present___delete_response_is_404
  ✅ test_location_file_is_not_present___get_response_is_404
  ✅ test_location_file_is_uploaded___file_can_be_retrieved
  ✅ test_location_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioReinsuranceSourceFile
  ✅ test_reinsurance_scope_file_invalid_uploaded___parquet_exception_raised
  ✅ test_reinsurance_scope_file_is_not_a_valid_format___response_is_400
  ✅ test_reinsurance_scope_file_is_not_present___delete_response_is_404
  ✅ test_reinsurance_scope_file_is_not_present___get_response_is_404
  ✅ test_reinsurance_scope_file_is_uploaded___file_can_be_retrieved
  ✅ test_reinsurance_scope_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioReinsuranceInfoFile
  ✅ test_reinsurance_info_file_invalid_uploaded___parquet_exception_raised
  ✅ test_reinsurance_info_file_is_not_a_valid_format___response_is_400
  ✅ test_reinsurance_info_file_is_not_present___delete_response_is_404
  ✅ test_reinsurance_info_file_is_not_present___get_response_is_404
  ✅ test_reinsurance_info_file_is_uploaded___file_can_be_retrieved
  ✅ test_reinsurance_info_file_is_uploaded_as_parquet___file_can_be_retrieved
  ✅ test_user_is_not_authenticated___response_is_forbidden
src.server.oasisapi.portfolios.v2_api.tests.test_portfolio.PortfolioValidation
  ✅ test_account_file__is_invalid__response_is_400
  ✅ test_all_exposure__are_valid
  ✅ test_location_file__is_invalid__response_is_400
  ✅ test_location_file__is_valid
  ✅ test_reinsurance_info_file__is_invalid__response_is_400
  ✅ test_reinsurance_scope_file__is_invalid__response_is_400
src.server.oasisapi.queues.tests.test_build_task_status_message.BuildTaskStatusMessage
  ✅ test_current_time_is_included
  ✅ test_type_is_correct
src.server.oasisapi.queues.tests.test_filter_queues_info.FilterQueuesInfo
  ✅ test_info_not_supplied___data_from_get_queues_info_is_filtered_by_queue_name
  ✅ test_info_not_supplied___data_from_supplied_info_is_filtered_by_queue_name
src.server.oasisapi.queues.tests.test_send_task_status_message.SendTaskStatusMessage
  ✅ test_build_status_message_is_sent_to_the_channel_layer
src.model_execution_worker.tests.test_settings.SettingsGet
  ✅ test_config_file_is_set_in_environment_variable___specified_values_are_from_new_config_others_are_default
  ✅ test_variable_is_set_in_default___default_value_is_returned
  ✅ test_variable_is_set_in_global_and_section_env_setting_and_default___setting_env_value_is_returned
  ✅ test_variable_is_set_in_global_env_setting_and_default___env_value_is_returned
  ✅ test_variable_is_set_in_section_and_default___section_value_is_returned
src.model_execution_worker.tests.test_settings.SettingsSetupLogging
  ✅ test_oasis_logging_is_setup_correctly
src.model_execution_worker.tests.test_tasks.StartAnalysis
  ✅ test_custom_model_runner_does_not_exist___generate_losses_is_called_output_files_are_tared_up
  ✅ test_input_location_is_not_a_tar___exception_is_raised
src.model_execution_worker.tests.test_tasks.StartAnalysisTask
  ✅ test_lock_is_acquireable___start_analysis_is_ran
  ✅ test_lock_is_not_acquireable___retry_esception_is_raised

Annotations

Check failure on line 0 in pytest_report.xml

See this annotation in the file changed.

@github-actions github-actions / Pytest Results

pytest ► src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi ► test_cleaned_name_portfolio_and_model_are_present___object_is_created

Failed test found in:
  pytest_report.xml
Error:
  self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_cleaned_name_portfolio_and_model_are_present___object_is_created>
Raw output
self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_cleaned_name_portfolio_and_model_are_present___object_is_created>

    @given(name=text(alphabet=string.ascii_letters, max_size=10, min_size=1))
>   def test_cleaned_name_portfolio_and_model_are_present___object_is_created(self, name):

src/server/oasisapi/analyses/v2_api/tests/test_analysis_api.py:108: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
src/server/oasisapi/analyses/v2_api/tests/test_analysis_api.py:150: in test_cleaned_name_portfolio_and_model_are_present___object_is_created
    self.assertEqual({
E   AssertionError: {'complex_model_data_files': [], 'created': [1490 chars]': 4} != {'created': '2024-06-25T12:00:41.277919Z', '[1475 chars]on/'}
E     {'analysis_chunks': None,
E      'chunking_configuration': 'http://testserver/v2/analyses/1/chunking_configuration/',
E      'complex_model_data_files': [],
E      'created': '2024-06-25T12:00:41.277919Z',
E      'groups': [],
E      'id': 1,
E      'input_file': 'http://testserver/v2/analyses/1/input_file/',
E      'input_generation_traceback_file': 'http://testserver/v2/analyses/1/input_generation_traceback_file/',
E      'lookup_chunks': None,
E      'lookup_errors_file': 'http://testserver/v2/analyses/1/lookup_errors_file/',
E      'lookup_success_file': 'http://testserver/v2/analyses/1/lookup_success_file/',
E      'lookup_validation_file': 'http://testserver/v2/analyses/1/lookup_validation_file/',
E      'model': 1,
E      'modified': '2024-06-25T12:00:41.298144Z',
E      'name': 'A',
E      'output_file': 'http://testserver/v2/analyses/1/output_file/',
E      'portfolio': 1,
E   -  'priority': 4,
E      'run_log_file': 'http://testserver/v2/analyses/1/run_log_file/',
E      'run_mode': 'V2',
E      'run_traceback_file': 'http://testserver/v2/analyses/1/run_traceback_file/',
E      'settings': 'http://testserver/v2/analyses/1/settings/',
E      'settings_file': 'http://testserver/v2/analyses/1/settings_file/',
E      'status': 'NEW',
E      'status_count': {'CANCELLED': 0,
E                       'COMPLETED': 0,
E                       'ERROR': 0,
E                       'PENDING': 0,
E                       'QUEUED': 0,
E                       'STARTED': 0,
E                       'TOTAL': 0,
E                       'TOTAL_IN_QUEUE': 0},
E      'storage_links': 'http://testserver/v2/analyses/1/storage_links/',
E      'sub_task_count': 0,
E      'sub_task_error_ids': [],
E      'sub_task_list': 'http://testserver/v2/analyses/1/sub_task_list/',
E      'summary_levels_file': 'http://testserver/v2/analyses/1/summary_levels_file/',
E      'task_finished': None,
E      'task_started': None}
E   Falsifying example: test_cleaned_name_portfolio_and_model_are_present___object_is_created(
E       self=<src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_cleaned_name_portfolio_and_model_are_present___object_is_created>,
E       name='A',  # or any other generated value
E   )
E   
E   You can reproduce this example by temporarily adding @reproduce_failure('6.98.17', b'AAEAAA==') as a decorator on your test case

Check failure on line 0 in pytest_report.xml

See this annotation in the file changed.

@github-actions github-actions / Pytest Results

pytest ► src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi ► test_complex_model_file_present___object_is_created

Failed test found in:
  pytest_report.xml
Error:
  self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_complex_model_file_present___object_is_created>
Raw output
self = <src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_complex_model_file_present___object_is_created>

    @given(
>       name=text(alphabet=string.ascii_letters, max_size=10, min_size=1),
    )

src/server/oasisapi/analyses/v2_api/tests/test_analysis_api.py:193: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
src/server/oasisapi/analyses/v2_api/tests/test_analysis_api.py:229: in test_complex_model_file_present___object_is_created
    self.assertEqual({
E   AssertionError: {'complex_model_data_files': [1, 2], 'create[972 chars]': 4} != {'created': '2024-06-25T12:01:15.829295Z', '[957 chars]on/'}
E     {'analysis_chunks': None,
E      'chunking_configuration': 'http://testserver/v2/analyses/1/chunking_configuration/',
E      'complex_model_data_files': [1, 2],
E      'created': '2024-06-25T12:01:15.829295Z',
E      'groups': [],
E      'id': 1,
E      'input_file': None,
E      'input_generation_traceback_file': None,
E      'lookup_chunks': None,
E      'lookup_errors_file': None,
E      'lookup_success_file': None,
E      'lookup_validation_file': None,
E      'model': 1,
E      'modified': '2024-06-25T12:01:15.844657Z',
E      'name': 'A',
E      'output_file': None,
E      'portfolio': 1,
E   -  'priority': 4,
E      'run_log_file': None,
E      'run_mode': None,
E      'run_traceback_file': None,
E      'settings': None,
E      'settings_file': None,
E      'status': 'NEW',
E      'status_count': {'CANCELLED': 0,
E                       'COMPLETED': 0,
E                       'ERROR': 0,
E                       'PENDING': 0,
E                       'QUEUED': 0,
E                       'STARTED': 0,
E                       'TOTAL': 0,
E                       'TOTAL_IN_QUEUE': 0},
E      'storage_links': 'http://testserver/v2/analyses/1/storage_links/',
E      'sub_task_count': 0,
E      'sub_task_error_ids': [],
E      'sub_task_list': 'http://testserver/v2/analyses/1/sub_task_list/',
E      'summary_levels_file': None,
E      'task_finished': None,
E      'task_started': None}
E   Falsifying example: test_complex_model_file_present___object_is_created(
E       self=<src.server.oasisapi.analyses.v2_api.tests.test_analysis_api.AnalysisApi testMethod=test_complex_model_file_present___object_is_created>,
E       name='A',  # or any other generated value
E   )
E   
E   You can reproduce this example by temporarily adding @reproduce_failure('6.98.17', b'AAEAAA==') as a decorator on your test case

Check failure on line 0 in pytest_report.xml

See this annotation in the file changed.

@github-actions github-actions / Pytest Results

pytest ► src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi ► test_create_with_default_groups_and_get_with_other_groups___response_is_empty

Failed test found in:
  pytest_report.xml
Error:
  self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi testMethod=test_create_with_default_groups_and_get_with_other_groups___response_is_empty>
Raw output
self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi testMethod=test_create_with_default_groups_and_get_with_other_groups___response_is_empty>

    @given(
>       group_name=text(alphabet=string.ascii_letters, min_size=1, max_size=10),
    )

src/server/oasisapi/analysis_models/v2_api/tests/test_analysis_model.py:186: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
src/server/oasisapi/analysis_models/v2_api/tests/test_analysis_model.py:200: in test_create_with_default_groups_and_get_with_other_groups___response_is_empty
    response = self.app.get(
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django_webtest/__init__.py:138: in get
    response = super(DjangoTestApp, self).get(url, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/app.py:324: in get
    return self.do_request(req, status=status,
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django_webtest/__init__.py:100: in do_request
    response = super(DjangoTestApp, self).do_request(req, status,
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/app.py:620: in do_request
    res = req.get_response(app, catch_exc_info=True)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webob/request.py:1309: in send
    status, headers, app_iter, exc_info = self.call_application(
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webob/request.py:1278: in call_application
    app_iter = application(self.environ, start_response)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/lint.py:196: in lint_app
    iterator = application(environ, start_response_wrapper)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/contrib/staticfiles/handlers.py:76: in __call__
    return self.application(environ, start_response)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/wsgi.py:133: in __call__
    response = self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/base.py:130: in get_response
    response = self._middleware_chain(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/whitenoise/middleware.py:124: in __call__
    return self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/request_logging/middleware.py:160: in __call__
    response = self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/debug_toolbar/middleware.py:49: in __call__
    return self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/base.py:181: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/views/decorators/csrf.py:54: in wrapped_view
    return view_func(*args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/viewsets.py:125: in view
    return self.dispatch(request, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:509: in dispatch
    response = self.handle_exception(exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:469: in handle_exception
    self.raise_uncaught_exception(exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:480: in raise_uncaught_exception
    raise exc
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:506: in dispatch
    response = handler(request, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/mixins.py:46: in list
    return Response(serializer.data)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:768: in data
    ret = super().data
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:253: in data
    self._data = self.to_representation(self.instance)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:686: in to_representation
    return [
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:687: in <listcomp>
    self.child.to_representation(item) for item in iterable
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:522: in to_representation
    ret[field.field_name] = field.to_representation(attribute)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/fields.py:1838: in to_representation
    return method(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = AnalysisModelListSerializer(<SoftDeleteQuerySet [<AnalysisModel: s-m-v>]>, context={'request': <rest_framework.request...rue, queryset=<QuerySet []>, read_only=False, required=False, slug_field='name')
    settings = SerializerMethodField()
instance = <AnalysisModel: s-m-v>

    @swagger_serializer_method(serializer_or_field=serializers.URLField)
    def get_versions(self, instance):
        request = self.context.get('request')
>       return instance.get_absolute_versions_url(request=request, namespace=self.namespace)
E       AttributeError: 'AnalysisModelListSerializer' object has no attribute 'namespace'
E       Falsifying example: test_create_with_default_groups_and_get_with_other_groups___response_is_empty(
E           self=<src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.AnalysisModelApi testMethod=test_create_with_default_groups_and_get_with_other_groups___response_is_empty>,
E           group_name='A',  # or any other generated value
E       )
E       
E       You can reproduce this example by temporarily adding @reproduce_failure('6.98.17', b'AAEAAA==') as a decorator on your test case

src/server/oasisapi/analysis_models/v2_api/serializers.py:56: AttributeError

Check failure on line 0 in pytest_report.xml

See this annotation in the file changed.

@github-actions github-actions / Pytest Results

pytest ► src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson ► test_settings_json_is_uploaded___run_mode_is_set

Failed test found in:
  pytest_report.xml
Error:
  self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson testMethod=test_settings_json_is_uploaded___run_mode_is_set>
Raw output
self = <src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson testMethod=test_settings_json_is_uploaded___run_mode_is_set>

    @given(
>       run_mode_requested=sampled_from([
            AnalysisModel.run_mode_choices.V1,
            AnalysisModel.run_mode_choices.V2,
        ])
    )

src/server/oasisapi/analysis_models/v2_api/tests/test_analysis_model.py:445: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
src/server/oasisapi/analysis_models/v2_api/tests/test_analysis_model.py:471: in test_settings_json_is_uploaded___run_mode_is_set
    response = self.app.get(
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django_webtest/__init__.py:138: in get
    response = super(DjangoTestApp, self).get(url, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/app.py:324: in get
    return self.do_request(req, status=status,
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django_webtest/__init__.py:100: in do_request
    response = super(DjangoTestApp, self).do_request(req, status,
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/app.py:620: in do_request
    res = req.get_response(app, catch_exc_info=True)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webob/request.py:1309: in send
    status, headers, app_iter, exc_info = self.call_application(
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webob/request.py:1278: in call_application
    app_iter = application(self.environ, start_response)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/webtest/lint.py:196: in lint_app
    iterator = application(environ, start_response_wrapper)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/contrib/staticfiles/handlers.py:76: in __call__
    return self.application(environ, start_response)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/wsgi.py:133: in __call__
    response = self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/base.py:130: in get_response
    response = self._middleware_chain(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/utils/deprecation.py:117: in __call__
    response = response or self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/whitenoise/middleware.py:124: in __call__
    return self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/request_logging/middleware.py:160: in __call__
    response = self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/debug_toolbar/middleware.py:49: in __call__
    return self.get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:49: in inner
    response = response_for_exception(request, exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:114: in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/core/handlers/base.py:181: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/django/views/decorators/csrf.py:54: in wrapped_view
    return view_func(*args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/viewsets.py:125: in view
    return self.dispatch(request, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:509: in dispatch
    response = self.handle_exception(exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:469: in handle_exception
    self.raise_uncaught_exception(exc)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:480: in raise_uncaught_exception
    raise exc
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/views.py:506: in dispatch
    response = handler(request, *args, **kwargs)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/mixins.py:56: in retrieve
    return Response(serializer.data)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:555: in data
    ret = super().data
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:253: in data
    self._data = self.to_representation(self.instance)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/serializers.py:522: in to_representation
    ret[field.field_name] = field.to_representation(attribute)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rest_framework/fields.py:1838: in to_representation
    return method(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = AnalysisModelListSerializer(<AnalysisModel: NsRwLONiTtyVAPfaMmSvkpoOCyTRKAczSKAXQTckCeqSkCHFJMWacFutDdZZAmJOfUiazRAuan...rue, queryset=<QuerySet []>, read_only=False, required=False, slug_field='name')
    settings = SerializerMethodField()
instance = <AnalysisModel: NsRwLONiTtyVAPfaMmSvkpoOCyTRKAczSKAXQTckCeqSkCHFJMWacFutDdZZAmJOfUiazRAuanaTWaRHNgmhMPmtrSlgEzOfbrCZYh...wDOOfEWnsaSCNDanthXOtIMjBTWEfRFWoIWzrObhrQcaqzHLTzCgVqwsWRmMfceYqtIvhHpWkeAssHiKHOnIgAOIzVXYrsCxKOikhShyzLDiJQtwOEVAnE>

    @swagger_serializer_method(serializer_or_field=serializers.URLField)
    def get_versions(self, instance):
        request = self.context.get('request')
>       return instance.get_absolute_versions_url(request=request, namespace=self.namespace)
E       AttributeError: 'AnalysisModelListSerializer' object has no attribute 'namespace'
E       Falsifying example: test_settings_json_is_uploaded___run_mode_is_set(
E           self=<src.server.oasisapi.analysis_models.v2_api.tests.test_analysis_model.ModelSettingsJson testMethod=test_settings_json_is_uploaded___run_mode_is_set>,
E           run_mode_requested='V1',
E       )
E       
E       You can reproduce this example by temporarily adding @reproduce_failure('6.98.17', b'AAA=') as a decorator on your test case

src/server/oasisapi/analysis_models/v2_api/serializers.py:56: AttributeError