353 passed, 4 failed and 17 skipped
❌ 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
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
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
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
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