Skip to content

update for node context specific curator status #7634

update for node context specific curator status

update for node context specific curator status #7634

GitHub Actions / website REPORT failed Jan 8, 2025 in 1s

1686 passed, 63 failed and 17 skipped

Tests failed

❌ report.xml

1766 tests were completed in 729s with 1686 passed, 63 failed and 17 skipped.

Test suite Passed Failed Skipped Time
pytest 1686✅ 63❌ 17⚪ 729s

❌ pytest

tests.test_addons.TestAddonAuth
  ✅ test_action_download_contrib
  ✅ test_action_download_mfr_views_contrib
  ✅ test_action_download_mfr_views_non_contrib
  ✅ test_action_download_non_contrib
  ✅ test_action_render_marks_version_as_seen
  ✅ test_auth_bad_bearer_token
  ✅ test_auth_bad_cookie
  ✅ test_auth_cookie
  ✅ test_auth_download
  ✅ test_auth_export_action_requires_read_permission
  ✅ test_auth_export_action_returns_200
  ✅ test_auth_missing_addon
  ✅ test_auth_missing_args
  ✅ test_auth_render_action_requires_read_permission
  ✅ test_auth_render_action_returns_200
tests.test_addons.TestAddonLogs
  ✅ test_action_downloads_contrib
  ✅ test_action_file_rename
  ✅ test_action_file_rename_storage
  ✅ test_add_file_osfstorage_log
  ✅ test_add_folder_osfstorage_log
  ✅ test_add_log
  ✅ test_add_log_bad_action
  ✅ test_add_log_missing_args
  ✅ test_add_log_no_addon
  ✅ test_add_log_no_user
  ✅ test_add_log_updates_cache_copy
  ✅ test_add_log_updates_cache_copy_multiversion
  ✅ test_add_log_updates_cache_copy_same_node
  ✅ test_add_log_updates_cache_copy_same_node_multiversion
  ✅ test_add_log_updates_cache_create
  ✅ test_add_log_updates_cache_delete
  ✅ test_add_log_updates_cache_delete_multiversion
  ✅ test_add_log_updates_cache_move
  ✅ test_add_log_updates_cache_move_into_osf
  ✅ test_add_log_updates_cache_move_multiversion
  ✅ test_add_log_updates_cache_move_outside_osf
  ✅ test_add_log_updates_cache_rename_via_move
  ✅ test_add_log_updates_cache_update
tests.test_addons.TestCheckAuth
  ✅ test_has_permission
  ✅ test_has_permission_on_parent_node_copyfrom
  ✅ test_has_permission_on_parent_node_metadata_pass_if_registration
  ✅ test_has_permission_on_parent_node_upload_fail_if_not_registration
  ✅ test_has_permission_on_parent_node_upload_pass_if_registration
  ✅ test_not_has_permission_logged_in
  ✅ test_not_has_permission_not_logged_in
  ✅ test_not_has_permission_read_has_link
  ✅ test_not_has_permission_read_public
tests.test_addons.TestCheckOAuth
  ✅ test_has_permission_decommissioned_scope_no_error
  ✅ test_has_permission_private_irrelevant_scope_forbidden
  ✅ test_has_permission_private_no_scope_forbidden
  ✅ test_has_permission_private_not_authenticated
  ✅ test_has_permission_public_irrelevant_scope_allowed
  ✅ test_has_permission_read_scope_write_action_forbidden
  ✅ test_has_permission_write_scope_read_action
tests.test_addons.TestAddonFileViews
  ✅ test_action_download_redirects_to_download_with_param
  ✅ test_action_download_redirects_to_download_with_path
  ✅ test_action_download_redirects_to_download_with_path_uppercase
  ✅ test_action_download_redirects_to_download_with_version
  ✅ test_action_view_calls_view_file
  ✅ test_archived_from_url
  ✅ test_archived_from_url_without_copied_from
  ✅ test_copied_from_id_trashed
  ✅ test_delete_action_creates_trashed_file_node
  ✅ test_delete_action_for_folder_deletes_subfolders_and_creates_trashed_file_nodes
  ✅ test_download_create_guid
  ✅ test_head_returns_url_and_redriect
  ✅ test_head_returns_url_with_version_and_redirect
  ✅ test_missing_modified_date_in_file_data
  ✅ test_missing_modified_date_in_file_history
  ✅ test_no_action_calls_view_file
  ✅ test_nonexistent_addons_raise
  ✅ test_nonstorage_addons_raise
  ✅ test_redirects_to_guid
  ✅ test_resolve_folder_raise
  ✅ test_unauth_addons_raise
  ✅ test_unauthorized_addons_raise
  ✅ test_update_logs_to_sentry_when_called_with_disordered_metadata
  ✅ test_view_file_does_not_delete_file_when_requesting_invalid_version
tests.test_addons.TestLegacyViews
  ✅ test_action_as_param
  ✅ test_api_download_file_redirect
  ✅ test_api_download_file_version_redirect
  ✅ test_download_file_redirect
  ✅ test_download_file_version_redirect
  ✅ test_no_provider_name
  ✅ test_other_addon_redirect
  ✅ test_other_addon_redirect_download
  ✅ test_view_file_redirect
tests.test_addons.TestViewUtils
  ✅ test_collect_node_config_js
  ✅ test_include_template_json
  ✅ test_serialize_addons
tests.test_auth.TestAuthUtils
  ✅ test_citation_with_only_fullname
  ✅ test_confirm_email
  ✅ test_get_user_by_email
  ✅ test_get_user_by_external_info
  ✅ test_get_user_by_id
  ✅ test_get_user_with_wrong_password_returns_false
  ✅ test_password_change_sends_email
  ✅ test_sign_up_twice_sends_two_confirmation_emails_only
  ✅ test_successful_external_first_login
  ✅ test_successful_external_first_login_without_attributes
  ✅ test_successful_external_login_cas_redirect
  ✅ test_unreg_user_can_register
  ✅ test_validate_recaptcha_empty_response
  ✅ test_validate_recaptcha_invalid_req_failure
  ✅ test_validate_recaptcha_success
  ✅ test_validate_recaptcha_valid_req_failure
tests.test_auth.TestAuthObject
  ✅ test_factory
  ✅ test_from_kwargs
  ✅ test_logged_in
  ✅ test_repr
tests.test_auth.TestPrivateLink
  ✅ test_does_not_have_key
  ✅ test_has_private_link_key
tests.test_auth.TestMustBeContributorDecorator
  ✅ test_must_be_contributor_no_user_and_private_project_redirect
  ✅ test_must_be_contributor_no_user_and_public_project_redirect
  ✅ test_must_be_contributor_parent_admin_and_private_project
  ✅ test_must_be_contributor_parent_admin_and_public_project
  ✅ test_must_be_contributor_parent_write_private_project
  ✅ test_must_be_contributor_parent_write_public_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_private_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_public_project
  ✅ test_must_be_contributor_when_user_is_not_contributor_and_private_project_raise_error
  ⚪ test_must_be_contributor_when_user_is_not_contributor_and_public_project_raise_error
tests.test_auth.TestMustBeContributorOrPublicDecorator
  ✅ test_must_be_contributor_no_user_and_private_project
  ✅ test_must_be_contributor_no_user_and_public_project
  ✅ test_must_be_contributor_parent_admin_and_private_project
  ✅ test_must_be_contributor_parent_admin_and_public_project
  ✅ test_must_be_contributor_parent_write_private_project
  ✅ test_must_be_contributor_parent_write_public_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_private_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_public_project
  ✅ test_must_be_contributor_when_user_is_not_contributor_and_private_project_raise_error
  ✅ test_must_be_contributor_when_user_is_not_contributor_and_public_project
tests.test_auth.TestMustBeContributorOrPublicButNotAnonymizedDecorator
  ✅ test_decorator_does_allow_anonymous_link_public_project
  ✅ test_decorator_does_not_allow_anonymous_link_private_project
  ✅ test_must_be_contributor_no_user_and_private_project
  ✅ test_must_be_contributor_no_user_and_public_project
  ✅ test_must_be_contributor_parent_admin_and_private_project
  ✅ test_must_be_contributor_parent_admin_and_public_project
  ✅ test_must_be_contributor_parent_write_private_project
  ✅ test_must_be_contributor_parent_write_public_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_private_project
  ✅ test_must_be_contributor_when_user_is_contributor_and_public_project
  ✅ test_must_be_contributor_when_user_is_not_contributor_and_private_project_raise_error
  ✅ test_must_be_contributor_when_user_is_not_contributor_and_public_project
tests.test_auth.TestPermissionDecorators
  ✅ test_must_be_logged_in_decorator_with_no_user
  ✅ test_must_be_logged_in_decorator_with_user
  ✅ test_must_have_permission_false
  ✅ test_must_have_permission_not_logged_in
  ✅ test_must_have_permission_true
tests.test_auth.TestMustHaveAddonDecorator
  ✅ test_must_have_addon_node_false
  ✅ test_must_have_addon_node_true
  ✅ test_must_have_addon_user_false
  ✅ test_must_have_addon_user_true
tests.test_auth.TestMustBeAddonAuthorizerDecorator
  ✅ test_must_be_authorizer_false
  ✅ test_must_be_authorizer_no_node_settings
  ✅ test_must_be_authorizer_no_user_settings
  ✅ test_must_be_authorizer_true
tests.test_auth_basic_auth.TestAuthBasicAuthentication
  ✅ test_expired_cookie
  ✅ test_invalid_credential_fails
  ✅ test_missing_credential_fails
  ❌ test_valid_cookie
	tests/test_auth_basic_auth.py:91: in test_valid_cookie
  ❌ test_valid_credential_authenticates_and_has_permissions
	tests/test_auth_basic_auth.py:47: in test_valid_credential_authenticates_and_has_permissions
  ✅ test_valid_credential_authenticates_but_user_lacks_object_permissions
  ✅ test_valid_credential_but_twofactor_required
  ✅ test_valid_credential_twofactor_invalid_otp
  ❌ test_valid_credential_twofactor_valid_otp
	tests/test_auth_basic_auth.py:84: in test_valid_credential_twofactor_valid_otp
tests.test_auth_forms.TestValidation
  ✅ test_unique_email_validator
  ✅ test_unique_email_validator_with_unreg_user
tests.test_campaigns.TestCampaignInitialization
  ✅ test_get_campaigns_init
  ✅ test_get_campaigns_update_expired
  ✅ test_get_campaigns_update_not_expired
tests.test_campaigns.TestCampaignMethods
  ✅ test_campaign_for_user
  ✅ test_campaign_url_for
  ✅ test_email_template_for_campaign
  ✅ test_get_service_provider
  ✅ test_is_institution_login
  ✅ test_is_native_login
  ✅ test_is_proxy_login
  ✅ test_system_tag_for_campaign
tests.test_campaigns.TestCampaignsAuthViews
  ✅ test_campaign_landing_logged_in
  ✅ test_campaign_login_logged_in
  ✅ test_campaign_login_logged_out
  ✅ test_campaign_register_view_logged_in
  ✅ test_campaign_register_view_logged_out
tests.test_campaigns.TestRegistrationThroughCampaigns
  ✅ test_confirm_email_get_with_campaign
tests.test_campaigns.TestCampaignsCASInstitutionLogin
  ✅ test_institution_logged_in
  ✅ test_institution_not_logged_in
tests.test_cas_authentication.TestCASClient
  ✅ test_application_token_revocation_fails
  ✅ test_application_token_revocation_succeeds
  ⚪ test_get_login_url
  ⚪ test_get_logout_url
  ✅ test_profile_invalid_access_token_raises_error
  ⚪ test_profile_valid_access_token_returns_cas_response
  ✅ test_service_validate
  ✅ test_service_validate_invalid_ticket_raises_error
tests.test_cas_authentication.TestCASTicketAuthentication
  ✅ test_make_response_from_ticket_failure
  ✅ test_make_response_from_ticket_invalidates_verification_key
  ✅ test_make_response_from_ticket_success
  ✅ test_make_response_from_ticket_success_with_tos_consent
tests.test_cas_authentication.TestCASExternalLogin
  ✅ test_get_user_from_cas_resp_already_authorized
  ✅ test_get_user_from_cas_resp_not_authorized
  ✅ test_make_response_from_ticket_generates_new_verification_key
  ✅ test_make_response_from_ticket_handles_non_unicode
  ✅ test_make_response_from_ticket_handles_unicode
  ✅ test_make_response_from_ticket_no_user
  ✅ test_make_response_from_ticket_with_user
tests.test_citations.CitationsUtilsTestCase
  ✅ test_datetime_to_csl
tests.test_citations.CitationsNodeTestCase
  ✅ test_csl_multiple_authors
  ✅ test_csl_single_author
  ✅ test_non_visible_contributors_arent_included_in_csl
tests.test_citations.CitationsUserTestCase
  ✅ test_disabled_user_csl
  ✅ test_registered_user_csl
  ✅ test_unregistered_user_csl
tests.test_citations.CitationsViewsTestCase
  ✅ test_list_styles
  ✅ test_list_styles_filter
  ✅ test_node_citation_view
tests.test_citeprocpy.TestCiteprocpy
  ⚪ test_failing_citations
  ⚪ test_passing_citations
tests.test_citeprocpy.TestCiteprocpyMLA
  ✅ test_citation_no_repeated_periods
  ✅ test_citation_osf_provider
  ✅ test_render_citations_mla_one_author
  ✅ test_three_authors
  ✅ test_two_authors
tests.test_conferences.TestConferenceUtils
  ✅ test_get_or_create_user_exists
  ✅ test_get_or_create_user_is_spam
  ✅ test_get_or_create_user_not_exists
  ✅ test_get_or_create_user_with_blocked_domain
tests.test_conferences.TestProvisionNode
  ✅ test_add_poster_by_email
  ✅ test_provision
  ✅ test_provision_private
  ✅ test_provision_spam
  ✅ test_upload
  ✅ test_upload_no_file_name
tests.test_conferences.TestMessage
  ✅ test_alternate_route_invalid
  ✅ test_attachments_count_one
  ✅ test_attachments_count_zero
  ✅ test_is_spam_false_all_headers
  ✅ test_is_spam_false_missing_headers
  ✅ test_is_spam_true_dkim
  ✅ test_is_spam_true_spf
  ✅ test_is_spam_true_sscore
  ✅ test_recipient
  ✅ test_route_invalid_pattern
  ✅ test_route_invalid_test
  ✅ test_route_valid_alternate
  ✅ test_route_valid_b
  ✅ test_sender_email
  ✅ test_sender_name
  ✅ test_subject
  ✅ test_text
  ✅ test_verify_signature_invalid
  ✅ test_verify_signature_valid
tests.test_conferences.TestConferenceEmailViews
  ✅ test_conference_bad_data
  ✅ test_conference_data
  ✅ test_conference_data_tag_upper
  ✅ test_conference_data_url_upper
  ✅ test_conference_plain_returns_200
  ✅ test_conference_results
  ✅ test_conference_submissions
  ✅ test_confererence_results_endpoint_is_case_insensitive
  ✅ test_redirect_to_meetings_url
tests.test_conferences.TestConferenceModel
  ✅ test_conference_valid_submissions
  ✅ test_default_field_names
  ✅ test_endpoint_is_required
  ✅ test_name_is_required
tests.test_conferences.TestConferenceIntegration
  ✅ test_create_conference_node_with_same_name_as_existing_node
  ✅ test_integration
  ✅ test_integration_inactive
  ✅ test_integration_wo_full_name
tests.test_contributors_views.TestContributorUtils
  ✅ test_serialize_access_requests
  ❌ test_serialize_user
	tests/test_contributors_views.py:18: in test_serialize_user
  ❌ test_serialize_user_admin
	tests/test_contributors_views.py:36: in test_serialize_user_admin
  ❌ test_serialize_user_full_does_not_include_emails_by_default
	tests/test_contributors_views.py:23: in test_serialize_user_full_does_not_include_emails_by_default
  ❌ test_serialize_user_full_includes_email_if_is_profile
	tests/test_contributors_views.py:27: in test_serialize_user_full_includes_email_if_is_profile
tests.test_contributors_views.TestContributorViews
  ✅ test_get_contributors_from_parent
  ❌ test_get_contributors_no_limit
	tests/test_contributors_views.py:78: in test_get_contributors_no_limit
  ❌ test_get_contributors_with_limit
	tests/test_contributors_views.py:112: in test_get_contributors_with_limit
tests.test_csrf.TestCSRF
  ✅ test_csrf_cookie_gets_set_on_authd_request
tests.test_ember_osf_web.TestEmberFlagIsActive
  ✅ test_dont_use_ember_app
  ✅ test_ember_flag_is_active_authenticated_user
  ✅ test_ember_flag_is_active_unauthenticated_user
  ✅ test_use_ember_app
tests.test_events.TestEventNotImplemented
  ✅ test_event
  ✅ test_html
  ✅ test_text
  ✅ test_url
tests.test_events.TestListOfFiles
  ✅ test_list_of_files
tests.test_events.TestEventExists
  ✅ test_get_file_added
  ✅ test_get_file_copied
  ✅ test_get_file_moved
  ✅ test_get_file_removed
  ✅ test_get_file_renamed
  ✅ test_get_file_updated
  ✅ test_get_folder_created
tests.test_events.TestSignalEvent
  ✅ test_event_signal
tests.test_events.TestFileUpdated
  ✅ test_file_updated
  ✅ test_info_formed_correct
tests.test_events.TestFileAdded
  ✅ test_file_added
  ✅ test_info_formed_correct
tests.test_events.TestFileRemoved
  ✅ test_file_removed
  ✅ test_info_formed_correct_file
  ✅ test_info_formed_correct_folder
tests.test_events.TestFolderCreated
  ✅ test_folder_added
  ✅ test_info_formed_correct
tests.test_events.TestFolderFileRenamed
  ✅ test_rename_file_html
  ✅ test_rename_file_text
  ✅ test_rename_folder_html
  ✅ test_rename_folder_text
tests.test_events.TestFileMoved
  ✅ test_info_formed_correct
  ✅ test_perform_store_called_once
  ✅ test_perform_store_one_of_each
  ✅ test_remove_user_sent_once
  ✅ test_user_performing_action_no_email
tests.test_events.TestFileCopied
  ✅ test_copied_one_of_each
  ✅ test_info_correct
  ✅ test_user_performing_action_no_email
tests.test_events.TestCategorizeUsers
  ✅ test_moved_user
  ✅ test_node_permissions
  ✅ test_remove_user
  ✅ test_warn_user
tests.test_events.TestSubscriptionManipulations
  ✅ test_remove_duplicates
  ✅ test_remove_duplicates_true
  ✅ test_subscription_user_difference
  ✅ test_subscription_user_union
tests.test_mailchimp.TestMailChimpHelpers
  ✅ test_get_list_name_from_id
  ✅ test_subscribe_called
  ✅ test_subscribe_fake_email_does_not_throw_validation_error
  ✅ test_unsubscribe_called_with_correct_arguments
tests.test_metadata.TestMetaData
  ✅ test_ensure_schemas
  ✅ test_process
  ✅ test_process_list
  ✅ test_process_whitespace
  ✅ test_registrationschema_is_fine_with_same_name_but_different_version
  ✅ test_reigstrationschema_uniqueness_is_enforced_in_the_database
tests.test_node_licenses.TestNodeLicenses
  ✅ test_Node_set_node_license
  ✅ test_Node_set_node_license_invalid
  ✅ test_copy_node_license_record
  ✅ test_ensure_licenses_no_licenses
  ✅ test_ensure_licenses_some_missing
  ✅ test_ensure_licenses_updates_existing
  ✅ test_ensure_licenses_updates_existing_licenses
  ✅ test_license_uniqueness_on_id_is_enforced_in_the_database
  ✅ test_serialize_node_license
  ✅ test_serialize_node_license_record
  ✅ test_serialize_node_license_record_None
tests.test_notifications.TestNotificationsModels
  ✅ test_check_admin_has_permissions_on_private_component
  ✅ test_check_user_child_node_permissions_false_if_no_children
  ✅ test_check_user_does_not_have_permission_on_private_node_child
  ✅ test_check_user_has_permission_excludes_deleted_components
  ✅ test_check_user_private_node_child_permissions_excludes_pointers
  ✅ test_contributor_subscribed_when_added_to_component
  ✅ test_contributor_subscribed_when_added_to_project
  ✅ test_has_permission_on_children
  ✅ test_new_fork_creator_is_subscribed_with_default_global_settings
  ✅ test_new_node_creator_is_not_subscribed
  ✅ test_new_node_creator_is_not_subscribed_with_default_global_settings
  ✅ test_new_node_creator_is_not_subscribed_with_global_settings
  ✅ test_new_project_creator_is_subscribed
  ✅ test_new_project_creator_is_subscribed_with_default_global_settings
  ✅ test_new_project_creator_is_subscribed_with_global_settings
  ✅ test_subscribe_user_to_global_notfiications
  ✅ test_subscribe_user_to_registration_notifications
  ✅ test_unregistered_contributor_not_subscribed_when_added_to_project
tests.test_notifications.TestSubscriptionView
  ✅ test_adopt_parent_subscription_default
  ✅ test_cannot_create_registration_subscription
  ✅ test_change_subscription_to_adopt_parent_subscription_removes_user
  ✅ test_configure_subscription_adds_node_id_to_notifications_configured
  ✅ test_create_new_subscription
tests.test_notifications.TestRemoveContributor
  ✅ test_remove_contributor_signal_called_when_contributor_is_removed
  ✅ test_removed_contributor_admin_on_parent_not_removed_from_node_subscription
  ✅ test_removed_non_admin_contributor_is_removed_from_subscriptions
  ✅ test_removed_non_parent_admin_contributor_is_removed_from_subscriptions
tests.test_notifications.TestRemoveNodeSignal
  ✅ test_node_subscriptions_and_backrefs_removed_when_node_is_deleted
tests.test_notifications.TestNotificationUtils
  ✅ test_check_if_all_global_subscriptions_are_none_false
  ✅ test_format_data_excludes_pointers
  ✅ test_format_data_node_settings
  ✅ test_format_data_project_settings
  ✅ test_format_data_user_settings
  ✅ test_format_data_user_subscriptions_if_children_points_to_parent
  ✅ test_format_data_user_subscriptions_includes_private_parent_if_configured_children
  ✅ test_format_includes_admin_view_only_component_subscriptions
  ✅ test_format_user_subscriptions
  ✅ test_from_subscription_key
  ✅ test_get_all_node_subscriptions_given_user_and_node
  ✅ test_get_all_node_subscriptions_given_user_subscriptions
  ✅ test_get_all_user_subscriptions
  ✅ test_get_configured_project_ids_does_not_return_user_or_node_ids
  ✅ test_get_configured_project_ids_excludes_deleted_projects
  ✅ test_get_configured_project_ids_excludes_node_with_project_category
  ✅ test_get_configured_project_ids_excludes_private_projects_if_no_subscriptions_on_node
  ✅ test_get_configured_project_ids_includes_top_level_private_projects_if_subscriptions_on_node
  ✅ test_get_global_notification_type
  ✅ test_get_parent_notification_type
  ✅ test_get_parent_notification_type_handles_user_id
  ✅ test_get_parent_notification_type_no_parent
  ✅ test_get_parent_notification_type_no_parent_subscriptions
  ✅ test_serialize_node_level_event
  ✅ test_serialize_node_level_event_that_adopts_parent_settings
  ✅ test_serialize_user_level_event
  ✅ test_to_subscription_key
tests.test_notifications.TestNotificationsDict
  ✅ test_notifications_dict_add_message_returns_proper_format
tests.test_notifications.TestCompileSubscriptions
  ✅ test_creator_diff_subs_to_both_from_child
  ✅ test_creator_subbed_parent
  ✅ test_creator_subbed_to_both_from_child
  ✅ test_creator_subbed_to_parent_from_child
  ✅ test_no_subscribers
  ✅ test_no_subscription
  ✅ test_several_nodes_deep
  ✅ test_several_nodes_deep_precedence
  ✅ test_user_wo_permission_on_child_node_not_listed
tests.test_notifications.TestMoveSubscription
  ✅ test_event_nodes_same
  ✅ test_event_subs_same
  ✅ test_garrulous_event_name
  ✅ test_move_sub
  ✅ test_move_sub_with_none
  ✅ test_remove_one_user
  ✅ test_remove_one_user_warn_another
  ✅ test_separate_users
  ✅ test_user_node_subbed_and_not_removed
  ✅ test_warn_user
tests.test_notifications.TestSendEmails
  ✅ test_check_node_node_none
  ✅ test_check_node_one
  ✅ test_check_user_comment_reply_only_calls_once
  ✅ test_check_user_comment_reply_subscription_if_email_not_sent_to_target_user
  ✅ test_fix_locale
  ✅ test_get_node_lineage
  ✅ test_get_settings_url_for_node
  ✅ test_get_settings_url_for_user
  ✅ test_localize_timestamp
  ✅ test_localize_timestamp_empty_locale
  ✅ test_localize_timestamp_empty_timezone
  ✅ test_localize_timestamp_handles_unicode
  ✅ test_notify_does_not_send_comment_if_they_reply_to_their_own_comment
  ✅ test_notify_does_not_send_to_exclude
  ✅ test_notify_does_not_send_to_users_subscribed_to_none
  ✅ test_notify_mentions_does_not_send_to_mentioned_users_subscribed_to_none
  ✅ test_notify_mentions_does_send_to_mentioned_users
  ✅ test_notify_no_subscribers
  ✅ test_notify_no_subscription
  ✅ test_notify_sends_comment_event_if_comment_reply_is_not_direct_reply
  ✅ test_notify_sends_comment_event_if_comment_reply_is_not_direct_reply_on_component
  ✅ test_notify_sends_comment_reply_event_if_comment_is_direct_reply
  ✅ test_notify_sends_comment_reply_when_target_user_is_subscribed_via_user_settings
  ✅ test_notify_sends_with_correct_args
tests.test_notifications.TestSendDigest
  ✅ test_group_notifications_by_user_digest
  ✅ test_group_notifications_by_user_transactional
  ✅ test_remove_sent_digest_notifications
  ✅ test_send_users_email_called_with_correct_args
  ✅ test_send_users_email_ignores_disabled_users
tests.test_notifications.TestNotificationsReviews
  ✅ test_reviews_base_notification
  ✅ test_reviews_notification
  ✅ test_reviews_submit_notification
tests.test_notifications.TestNotificationsReviewsModerator
  ✅ test_reviews_request_notification
  ✅ test_reviews_submit_notification
tests.test_oauth.TestExternalAccount
  ✅ test_disconnect
  ✅ test_disconnect_with_multiple_connected
tests.test_oauth.TestExternalProviderOAuth1
  ✅ test_callback
  ✅ test_callback_wrong_user
  ✅ test_start_flow
tests.test_oauth.TestExternalProviderOAuth2
  ✅ test_callback
  ✅ test_callback_oauth_no_redirect
  ✅ test_callback_oauth_standard
  ✅ test_does_need_refresh
  ✅ test_does_not_need_refresh
  ✅ test_force_refresh_oauth_key
  ✅ test_force_refresh_with_expired_credentials
  ✅ test_multiple_users_associated
  ✅ test_oauth_version_default
  ✅ test_provider_down
  ✅ test_refresh_oauth_key_does_not_need_refresh
  ✅ test_refresh_with_broken_provider
  ✅ test_refresh_with_expired_credentials
  ✅ test_refresh_without_account_or_refresh_url
  ✅ test_start_flow_oauth_no_redirect
  ✅ test_start_flow_oauth_standard
  ✅ test_user_denies_access
tests.test_preprints.TestPreprint
  ✅ test_preprint_factory
tests.test_preprints.TestPreprintProperties
  ✅ test_contributors
  ✅ test_verified_publishable
  ✅ test_is_deleted
  ✅ test_has_submitted_preprint
  ✅ test_deep_url
  ✅ test_url_
  ✅ test_absolute_url
  ✅ test_absolute_api_v2_url
  ✅ test_admin_contributor_or_group_member_ids
  ✅ test_visible_contributor_ids
  ✅ test_all_tags
  ✅ test_system_tags
tests.test_preprints.TestPreprintSubjects
  ✅ test_set_subjects
  ✅ test_admin_can_set_subjects
  ✅ test_write_can_set_subjects
tests.test_preprints.TestLogging
  ✅ test_add_log
tests.test_preprints.TestTagging
  ✅ test_add_tag
  ✅ test_add_system_tag
  ✅ test_add_system_tag_instance
  ✅ test_add_system_tag_non_system_instance
  ✅ test_system_tags_property
tests.test_preprints.TestSearch
  ✅ test_update_search
tests.test_preprints.TestPreprintCreation
  ✅ test_creator_is_added_as_contributor
  ✅ test_default_region_set_to_user_settings_osfstorage_default
  ✅ test_root_folder_created_automatically
tests.test_preprints.TestContributorMethods
  ✅ test_add_contributor
  ✅ test_add_contributors
  ✅ test_cant_add_creator_as_contributor_twice
  ✅ test_cant_add_same_contributor_twice
  ✅ test_remove_unregistered_conributor_removes_unclaimed_record
  ✅ test_is_contributor
  ✅ test_visible_contributor_ids
  ✅ test_visible_contributors
  ✅ test_set_visible_false
  ✅ test_set_visible_true
  ✅ test_set_visible_is_noop_if_visibility_is_unchanged
  ✅ test_set_visible_contributor_with_only_one_contributor
  ✅ test_set_visible_missing
  ✅ test_remove_contributor
  ✅ test_remove_contributors
  ✅ test_replace_contributor
  ✅ test_permission_override_fails_if_no_admins
  ✅ test_update_contributor
  ✅ test_update_contributor_non_admin_raises_error
  ✅ test_update_contributor_only_admin_raises_error
  ✅ test_update_contributor_non_contrib_raises_error
tests.test_preprints.TestPreprintAddContributorRegisteredOrNot
  ✅ test_add_contributor_user_id
  ✅ test_add_contributor_user_id_already_contributor
  ✅ test_add_contributor_invalid_user_id
  ✅ test_add_contributor_fullname_email
  ✅ test_add_contributor_fullname
  ✅ test_add_contributor_fullname_email_already_exists
tests.test_preprints.TestContributorVisibility
  ✅ test_get_visible_true
  ✅ test_get_visible_false
  ✅ test_make_invisible
  ✅ test_make_visible
  ✅ test_set_visible_missing
tests.test_preprints.TestPermissionMethods
  ✅ test_has_permission
  ✅ test_has_permission_passed_non_contributor_returns_false
  ✅ test_get_permissions
  ✅ test_add_permission
  ✅ test_remove_permission
  ✅ test_remove_permission_not_granted
  ✅ test_set_permissions
  ✅ test_set_permissions_raises_error_if_only_admins_permissions_are_reduced
  ✅ test_add_permission_with_admin_also_grants_read_and_write
  ✅ test_add_permission_already_granted
  ✅ test_contributor_can_edit
  ✅ test_can_edit_can_be_passed_a_user
  ✅ test_creator_can_edit
  ✅ test_noncontributor_cant_edit_public
  ✅ test_can_view_private
  ✅ test_creator_cannot_edit_project_if_they_are_removed
  ✅ test_can_view_public
  ✅ test_can_view_unpublished
tests.test_preprints.TestAddUnregisteredContributor
  ✅ test_add_unregistered_contributor
  ✅ test_add_unregistered_adds_new_unclaimed_record_if_user_already_in_db
  ✅ test_add_unregistered_raises_error_if_user_is_registered
tests.test_preprints.TestPreprintSpam
  ✅ test_set_privacy_on_spammy_preprint
  ⚪ test_check_spam_disabled_by_default
  ✅ test_check_spam_only_public_preprint_by_default
  ✅ test_check_spam_skips_ham_user
  ✅ test_check_spam_on_private_preprint
  ✅ test_confirm_ham_on_private_preprint_stays_private
  ✅ test_confirm_ham_on_public_preprint_stays_public
  ⚪ test_check_spam_on_private_preprint_bans_new_spam_user
  ✅ test_check_spam_on_private_preprint_does_not_ban_existing_user
  ✅ test_flag_spam_make_preprint_private
  ✅ test_flag_spam_do_not_make_preprint_private
  ✅ test_confirm_spam_makes_preprint_private
tests.test_preprints.TestManageContributors
  ✅ test_contributor_manage_visibility
  ✅ test_contributor_set_visibility_validation
  ✅ test_manage_contributors_cannot_remove_last_admin_contributor
  ✅ test_manage_contributors_reordering
  ✅ test_manage_contributors_logs_when_users_reorder
  ✅ test_manage_contributors_logs_when_permissions_change
  ✅ test_manage_contributors_new_contributor
  ✅ test_manage_contributors_no_contributors
  ✅ test_manage_contributors_no_admins
  ✅ test_manage_contributors_no_registered_admins
  ✅ test_get_admin_contributors
tests.test_preprints.TestContributorOrdering
  ✅ test_can_get_contributor_order
  ✅ test_can_set_contributor_order
  ✅ test_move_contributor
tests.test_preprints.TestDOIValidation
  ✅ test_validate_bad_doi
  ✅ test_validate_good_doi
tests.test_preprints.TestPreprintUpdate
  ✅ test_set_title_works_with_valid_title
  ✅ test_set_title_fails_if_empty_or_whitespace
  ✅ test_set_title_fails_if_too_long
  ✅ test_set_description
  ✅ test_updating_title_twice_with_same_title
  ✅ test_updating_description_twice_with_same_content
tests.test_preprints.TestSetPreprintFile
  ✅ test_add_invalid_file
  ✅ test_add_primary_file
  ✅ test_cant_save_without_file
  ✅ test_cant_update_without_file
  ✅ test_change_primary_file
  ✅ test_is_preprint_property_new_file_to_published
  ✅ test_preprint_created_date
  ✅ test_preprint_made_public
  ✅ test_removing_primary_file_creates_orphan
  ✅ test_set_supplemental_node
  ✅ test_set_supplemental_node_already_has_a_preprint
  ✅ test_set_supplemental_node_deleted
tests.test_preprints.TestPreprintPermissions
  ✅ test_admin_can_publish
  ✅ test_admin_can_set_file
  ✅ test_admin_can_set_subjects
  ✅ test_admin_cannot_unpublish
  ✅ test_non_admin_cannot_publish
  ✅ test_noncontrib_cannot_set_file
  ✅ test_noncontrib_cannot_set_subjects
  ✅ test_primary_file_must_target_preprint
  ✅ test_read_cannot_publish
  ✅ test_read_cannot_set_subjects
  ✅ test_read_contrib_cannot_set_file
  ✅ test_set_abstract_permissions
  ✅ test_set_privacy
  ✅ test_set_supplemental_node_preprint_permissions
  ✅ test_set_supplemental_node_project_permissions
  ✅ test_set_title_permissions
  ✅ test_write_can_set_subjects
  ✅ test_write_cannot_publish
  ✅ test_write_contrib_can_set_file
tests.test_preprints.TestPreprintProvider
  ✅ test_add_provider
  ✅ test_all_subjects
  ✅ test_change_preprint_provider_custom_taxonomies
  ✅ test_change_preprint_provider_from_osf
  ✅ test_change_preprint_provider_problem_subject
  ✅ test_change_preprint_provider_to_osf
  ✅ test_highlighted_subjects
  ✅ test_remove_provider
  ✅ test_top_level_subjects
tests.test_preprints.TestPreprintIdentifiers
  ✅ test_correct_doi_client_called
  ✅ test_qatest_doesnt_make_dois
  ✅ test_update_or_create_preprint_identifiers_called
tests.test_preprints.TestOnPreprintUpdatedTask
  ✅ test_update_or_enqueue_on_preprint_doi_created
  ✅ test_update_or_enqueue_on_preprint_updated
tests.test_preprints.TestPreprintConfirmationEmails
  ✅ test_creator_gets_email
tests.test_preprints.TestPreprintOsfStorage
  ✅ test_auth_download
  ✅ test_create_log
tests.test_preprints.TestCheckPreprintAuth
  ✅ test_check_access_withdrawn_preprint_file
  ✅ test_has_permission
  ✅ test_not_has_permission_logged_in
  ✅ test_not_has_permission_not_logged_in
  ✅ test_not_has_permission_read_published
tests.test_preprints.TestPreprintOsfStorageLogs
  ✅ test_action_downloads_contrib
  ✅ test_action_file_rename
  ✅ test_add_file_osfstorage_log
  ✅ test_add_folder_osfstorage_log
  ✅ test_add_log
  ✅ test_add_log_bad_action
  ✅ test_add_log_missing_args
  ✅ test_add_log_no_user
tests.test_preprints.TestWithdrawnPreprint
  ✅ test_withdrawn_preprint
  ✅ test_crossref_status_is_updated
tests.test_rubeus.TestRubeus
  ✅ test_build_addon_root_for_anonymous_vols_hides_path
  ✅ test_build_addon_root_for_anonymous_vols_shows_path
  ✅ test_build_addon_root_has_correct_upload_limits
  ✅ test_get_nodes_deleted_component
  ✅ test_hgrid_dummy
  ✅ test_hgrid_dummy_fail
  ✅ test_hgrid_dummy_overrides
  ✅ test_private_components_not_shown
  ✅ test_private_components_shown
  ✅ test_serialized_pointer_has_flag_indicating_its_a_pointer
tests.test_rubeus.TestSerializingNodeWithAddon
  ✅ test_collect_addons
  ✅ test_serialize_node
  ✅ test_sort_by_name
  ✅ test_sort_by_name_none
tests.test_serializers.TestUserSerializers
  ✅ test_serialize_user
  ✅ test_serialize_user_full
  ✅ test_serialize_user_merged
tests.test_serializers.TestNodeSerializers
  ✅ test_get_children_only_returns_child_nodes_with_admin_permissions
  ✅ test_serialize_node_search_returns_only_visible_contributors
  ✅ test_serialize_node_summary_child_exists
  ✅ test_serialize_node_summary_for_registration_uses_correct_date_format
  ✅ test_serialize_node_summary_is_contributor_osf_group
  ✅ test_serialize_node_summary_private_fork_private_project_should_include_is_fork
  ✅ test_serialize_node_summary_private_fork_should_include_is_fork
  ✅ test_serialize_node_summary_private_node_should_include_id_and_primary_boolean_reg_and_fork
  ✅ test_serialize_node_summary_private_registration_should_include_is_registration
tests.test_serializers.TestViewProject
  ✅ test_view_project_child_exists
  ✅ test_view_project_pending_registration_for_admin_contributor_does_contain_cancel_link
  ✅ test_view_project_pending_registration_for_write_contributor_does_not_contain_cancel_link
tests.test_serializers.TestViewProjectEmbeds
  ✅ test_view_project_embed_descendants
  ✅ test_view_project_embed_forks_excludes_registrations
  ✅ test_view_project_embed_registrations_sorted_by_registered_date_descending
tests.test_serializers.TestGetReadableDescendants
  ✅ test__get_readable_descendants
  ✅ test__get_readable_descendants_includes_pointers
  ✅ test__get_readable_descendants_masked_by_permissions
tests.test_serializers.TestNodeLogSerializers
  ✅ test_serialize_node_for_logs
tests.test_serializers.TestAddContributorJson
  ✅ test_add_contributor_json
  ✅ test_add_contributor_json_with_edu
  ✅ test_add_contributor_json_with_job
  ✅ test_add_contributor_json_with_job_and_edu
tests.test_spam_mixin
  ✅ test_throttled_autoban
tests.test_spam_mixin.TestReportAbuse
  ✅ test_cannot_remove_flag_not_retracted
  ✅ test_remove_flag
  ✅ test_report_abuse
  ✅ test_report_abuse_own_comment
  ✅ test_retract_one_report_of_many
  ✅ test_retract_report
  ✅ test_retract_report_not_reporter
  ✅ test_validate_reports_bad_key
  ✅ test_validate_reports_bad_type
  ✅ test_validate_reports_bad_value
tests.test_spam_mixin.TestSpamState
  ✅ test_flag_spam[CommentFactory]
  ✅ test_flag_spam[ProjectFactory]
  ✅ test_flag_spam[PreprintFactory]
  ✅ test_flag_spam[RegistrationFactory]
  ✅ test_flag_spam[UserFactory]
  ✅ test_confirm_ham[CommentFactory]
  ✅ test_confirm_ham[ProjectFactory]
  ✅ test_confirm_ham[PreprintFactory]
  ✅ test_confirm_ham[RegistrationFactory]
  ✅ test_confirm_ham[UserFactory]
  ✅ test_confirm_spam[CommentFactory]
  ✅ test_confirm_spam[ProjectFactory]
  ✅ test_confirm_spam[PreprintFactory]
  ✅ test_confirm_spam[RegistrationFactory]
  ✅ test_confirm_spam[UserFactory]
  ✅ test_spam_status_properties[CommentFactory-None-expected_props0-True]
  ✅ test_spam_status_properties[CommentFactory-None-expected_props0-False]
  ✅ test_spam_status_properties[CommentFactory-1-expected_props1-True]
  ✅ test_spam_status_properties[CommentFactory-1-expected_props1-False]
  ✅ test_spam_status_properties[CommentFactory-2-expected_props2-True]
  ✅ test_spam_status_properties[CommentFactory-2-expected_props2-False]
  ✅ test_spam_status_properties[CommentFactory-4-expected_props3-True]
  ✅ test_spam_status_properties[CommentFactory-4-expected_props3-False]
  ✅ test_spam_status_properties[ProjectFactory-None-expected_props0-True]
  ✅ test_spam_status_properties[ProjectFactory-None-expected_props0-False]
  ✅ test_spam_status_properties[ProjectFactory-1-expected_props1-True]
  ✅ test_spam_status_properties[ProjectFactory-1-expected_props1-False]
  ✅ test_spam_status_properties[ProjectFactory-2-expected_props2-True]
  ✅ test_spam_status_properties[ProjectFactory-2-expected_props2-False]
  ✅ test_spam_status_properties[ProjectFactory-4-expected_props3-True]
  ✅ test_spam_status_properties[ProjectFactory-4-expected_props3-False]
  ✅ test_spam_status_properties[PreprintFactory-None-expected_props0-True]
  ✅ test_spam_status_properties[PreprintFactory-None-expected_props0-False]
  ✅ test_spam_status_properties[PreprintFactory-1-expected_props1-True]
  ✅ test_spam_status_properties[PreprintFactory-1-expected_props1-False]
  ✅ test_spam_status_properties[PreprintFactory-2-expected_props2-True]
  ✅ test_spam_status_properties[PreprintFactory-2-expected_props2-False]
  ✅ test_spam_status_properties[PreprintFactory-4-expected_props3-True]
  ✅ test_spam_status_properties[PreprintFactory-4-expected_props3-False]
  ✅ test_spam_status_properties[RegistrationFactory-None-expected_props0-True]
  ✅ test_spam_status_properties[RegistrationFactory-None-expected_props0-False]
  ✅ test_spam_status_properties[RegistrationFactory-1-expected_props1-True]
  ✅ test_spam_status_properties[RegistrationFactory-1-expected_props1-False]
  ✅ test_spam_status_properties[RegistrationFactory-2-expected_props2-True]
  ✅ test_spam_status_properties[RegistrationFactory-2-expected_props2-False]
  ✅ test_spam_status_properties[RegistrationFactory-4-expected_props3-True]
  ✅ test_spam_status_properties[RegistrationFactory-4-expected_props3-False]
  ✅ test_spam_status_properties[UserFactory-None-expected_props0-True]
  ✅ test_spam_status_properties[UserFactory-None-expected_props0-False]
  ✅ test_spam_status_properties[UserFactory-1-expected_props1-True]
  ✅ test_spam_status_properties[UserFactory-1-expected_props1-False]
  ✅ test_spam_status_properties[UserFactory-2-expected_props2-True]
  ✅ test_spam_status_properties[UserFactory-2-expected_props2-False]
  ✅ test_spam_status_properties[UserFactory-4-expected_props3-True]
  ✅ test_spam_status_properties[UserFactory-4-expected_props3-False]
tests.test_spam_mixin.TestSpamCheckEmailDomain
  ✅ test_trusted_domain
tests.test_subjects.TestSubjectTreeValidation
  ✅ test_hiarachy_property
  ✅ test_invalidation_invalid_child_leaf
  ✅ test_invalidation_invalid_ids
  ✅ test_invalidation_invalid_parent_leaf
  ✅ test_invalidation_invalid_root_leaf
  ✅ test_invalidation_no_parent
  ✅ test_invalidation_no_root
  ✅ test_object_hierarchy_property
  ✅ test_validation_full_hierarchy
  ✅ test_validation_one_level_hierarchy
  ✅ test_validation_partial_hierarchy
  ✅ test_validation_root_only
  ✅ test_validation_two_level_hierarchy
tests.test_subjects.TestSubjectEditValidation
  ✅ test_delete_unused_subject
  ✅ test_delete_used_subject
  ✅ test_edit_unused_subject
  ✅ test_edit_used_subject
tests.test_subjects.TestSubjectProperties
  ✅ test_bepress_text
  ✅ test_get_semantic_iri
  ✅ test_path
tests.test_test_utils.TestUtilsTests
  ✅ test_assert_logs
  ✅ test_assert_logs_fail
  ✅ test_assert_logs_stacked
  ✅ test_assert_not_logs_fail
  ✅ test_assert_not_logs_pass
tests.test_tokens.TestTokenHandler
  ✅ test_decode
  ✅ test_encode
  ✅ test_from_payload
  ✅ test_from_string
  ✅ test_token_process_for_invalid_action_raises_TokenHandlerNotFound
  ✅ test_token_process_with_valid_action
tests.test_tokens.SanctionTokenHandlerBase
  ✅ test_sanction_handler
  ✅ test_sanction_handler_no_sanction
  ✅ test_sanction_handler_sanction_approved
  ✅ test_sanction_handler_sanction_rejected
tests.test_tokens.TestEmbargoTokenHandler
  ✅ test_sanction_handler
  ✅ test_sanction_handler_no_sanction
  ✅ test_sanction_handler_sanction_approved
  ✅ test_sanction_handler_sanction_rejected
tests.test_tokens.TestRegistrationApprovalTokenHandler
  ✅ test_sanction_handler
  ✅ test_sanction_handler_no_sanction
  ✅ test_sanction_handler_sanction_approved
  ✅ test_sanction_handler_sanction_rejected
tests.test_tokens.TestRetractionTokenHandler
  ✅ test_sanction_handler
  ✅ test_sanction_handler_no_sanction
  ✅ test_sanction_handler_sanction_approved
  ✅ test_sanction_handler_sanction_rejected
tests.test_utils.TestProjectUtils
  ✅ test_get_recent_public_registrations
tests.test_utils.TestProfileUtils
  ✅ test_get_other_user_profile_image
  ✅ test_get_other_user_profile_image_default_size
tests.test_utils.TestUserFactoryConflict
  ✅ test_build_create_user_time_conflict
tests.test_utils.TestUserSignals
  ✅ test_user_account_deactivated_signal
  ✅ test_user_account_merged_signal
  ✅ test_user_account_deactivate_signal
  ✅ test_publish_body_on_deactivation
  ✅ test_publish_body_on_reactivation
  ✅ test_publish_body_on_merger
tests.test_views.TestViewsAreAtomic
  ✅ test_error_response_rolls_back_transaction
tests.test_views.TestViewingProjectWithPrivateLink
  ✅ test_can_access_registrations_and_forks_with_not_anon_key
  ✅ test_can_be_anonymous_for_public_project
  ✅ test_cannot_access_registrations_or_forks_with_anon_key
  ✅ test_check_can_access_invalid_access_requests_disabled
  ✅ test_check_can_access_invalid_access_requests_enabled
  ✅ test_check_can_access_osf_group_member_valid
  ✅ test_check_can_access_valid
  ✅ test_check_user_access_if_user_is_None
  ✅ test_check_user_access_invalid
  ✅ test_edit_private_link_empty
  ✅ test_edit_private_link_invalid
  ❌ test_has_private_link_key
	tests/test_views.py:192: in test_has_private_link_key
  ❌ test_logged_in_has_key
	tests/test_views.py:207: in test_logged_in_has_key
  ✅ test_logged_in_no_private_key
  ✅ test_logged_in_user_cannot_view_spammy_project_via_private_link
  ✅ test_logged_out_user_cannot_view_spammy_project_via_private_link
  ✅ test_not_logged_in_no_key
  ⚪ test_prepare_private_key
tests.test_views.TestProjectViews
  ❌ test_add_contributor_post
	tests/test_views.py:479: in test_add_contributor_post
  ✅ test_add_tag
  ❌ test_can_view_nested_project_as_admin
	tests/test_views.py:430: in test_can_view_nested_project_as_admin
  ✅ test_cannot_remove_only_visible_contributor
  ✅ test_cant_remove_component_if_not_admin
  ✅ test_contributor_manage_reorder
  ✅ test_edit_description
  ✅ test_edit_node_title
  ✅ test_edit_title_empty
  ✅ test_edit_title_invalid
  ❌ test_fork_count_does_not_include_deleted_forks
	tests/test_views.py:906: in test_fork_count_does_not_include_deleted_forks
  ❌ test_fork_count_does_not_include_fork_registrations
	tests/test_views.py:919: in test_fork_count_does_not_include_fork_registrations
  ✅ test_fork_grandcomponents_has_correct_root
  ✅ test_get_contributors_abbrev
  ✅ test_manage_permissions
  ✅ test_manage_permissions_again
  ✅ test_multiple_project_remove_contributor
  ✅ test_node_setting_with_multiple_matched_institution_email_domains
  ✅ test_private_link_edit_name
  ✅ test_private_project_remove_self_not_admin
  ❌ test_project_api_url
	tests/test_views.py:444: in test_project_api_url
  ✅ test_project_remove_contributor
  ✅ test_project_remove_fake_contributor
  ✅ test_project_remove_other_not_admin
  ✅ test_project_remove_self_only_admin
  ✅ test_public_project_remove_self_not_admin
  ✅ test_registration_retraction_redirect
  ✅ test_removal_empty_tag_throws_error
  ✅ test_removal_unknown_tag_throws_error
  ✅ test_remove_component
  ✅ test_remove_only_visible_contributor_return_false
  ✅ test_remove_private_link
  ✅ test_remove_private_link_anonymous_log
  ✅ test_remove_private_link_log
  ✅ test_remove_tag
  ❌ test_retraction_view
	tests/test_views.py:958: in test_retraction_view
  ✅ test_suspended_project
  ✅ test_update_node
  ✅ test_update_node_with_tags
  ❌ test_view_project_doesnt_select_for_update
	tests/test_views.py:386: in test_view_project_doesnt_select_for_update
  ❌ test_view_project_no_tos_status_message
	tests/test_views.py:339: in test_view_project_no_tos_status_message
  ❌ test_view_project_returns_whether_to_show_wiki_widget
	tests/test_views.py:880: in test_view_project_returns_whether_to_show_wiki_widget
  ❌ test_view_project_tos_status_message
	tests/test_views.py:328: in test_view_project_tos_status_message
tests.test_views.TestEditableChildrenViews
  ✅ test_editable_children_indents
  ✅ test_editable_children_order
  ✅ test_editable_children_parents
  ✅ test_editable_children_privacy
  ✅ test_editable_children_titles
  ✅ test_get_editable_children
tests.test_views.TestGetNodeTree
  ✅ test_get_node_not_parent_owner
  ✅ test_get_node_parent_not_admin
  ✅ test_get_node_with_child_linked_to_parent
  ✅ test_get_node_with_children
  ✅ test_get_single_node
tests.test_views.TestUserProfile
  ✅ test_add_emails_return_emails
  ✅ test_cannot_update_user_without_user_id
  ✅ test_making_email_primary_is_not_case_sensitive
  ✅ test_resend_confirmation_return_emails
  ✅ test_serialize_social_addons_editable
  ✅ test_serialize_social_addons_not_editable
  ✅ test_serialize_social_editable
  ✅ test_serialize_social_not_editable
  ✅ test_unserialize_and_serialize_jobs
  ✅ test_unserialize_and_serialize_schools
  ✅ test_unserialize_jobs
  ✅ test_unserialize_jobs_valid
  ✅ test_unserialize_names
  ✅ test_unserialize_schools
  ✅ test_unserialize_social
  ✅ test_unserialize_social_validation_failure
  ✅ test_unsubscribe_mailchimp_not_called_if_user_not_subscribed
  ✅ test_update_user_locale
  ✅ test_update_user_locale_empty_string
  ✅ test_update_user_locale_none
  ✅ test_update_user_mailing_lists
  ✅ test_update_user_timezone
  ✅ test_user_update_region
  ✅ test_user_update_region_missing_bad_region
  ✅ test_user_update_region_missing_region_id_key
tests.test_views.TestUserProfileApplicationsPage
  ✅ test_non_owner_cant_access_detail_page
  ✅ test_owner_cant_access_deleted_application
  ✅ test_owner_cant_access_nonexistent_application
  ✅ test_url_has_not_broken
tests.test_views.TestUserProfileTokensPage
  ✅ test_url_has_not_broken
tests.test_views.TestUserAccount
  ✅ test_get_unconfirmed_emails_exclude_external_identity
  ✅ test_old_password_invalid_attempts_reset_if_password_successfully_reset
  ✅ test_password_change_invalid
  ✅ test_password_change_invalid_blank_confirm_password
  ✅ test_password_change_invalid_blank_new_password
  ✅ test_password_change_invalid_blank_password
  ✅ test_password_change_invalid_confirm_password
  ✅ test_password_change_invalid_empty_string_confirm_password
  ✅ test_password_change_invalid_empty_string_new_password
  ✅ test_password_change_invalid_new_password_length
  ✅ test_password_change_invalid_old_password
  ✅ test_password_change_rate_limiting
  ✅ test_password_change_rate_limiting_not_imposed_if_old_password_correct
  ✅ test_password_change_valid
  ✅ test_password_change_valid_new_password_length
  ✅ test_user_account_password_reset_query_params
  ✅ test_user_cannot_request_account_export_before_throttle_expires
tests.test_views.TestAddingContributorViews
  ❌ test_add_contribs_to_multiple_nodes
	tests/test_views.py:2212: in test_add_contribs_to_multiple_nodes
  ✅ test_add_contributor_to_fork_sends_email
  ✅ test_add_contributor_to_template_sends_email
  ❌ test_add_contributor_with_unreg_contribs_and_reg_contribs
	tests/test_views.py:1928: in test_add_contributor_with_unreg_contribs_and_reg_contribs
  ❌ test_add_contributors_post_only_sends_one_email_to_registered_user
	tests/test_views.py:1996: in test_add_contributors_post_only_sends_one_email_to_registered_user
  ❌ test_add_contributors_post_only_sends_one_email_to_unreg_user
	tests/test_views.py:1968: in test_add_contributors_post_only_sends_one_email_to_unreg_user
  ❌ test_add_contributors_post_sends_email_if_user_not_contributor_on_parent_node
	tests/test_views.py:2024: in test_add_contributors_post_sends_email_if_user_not_contributor_on_parent_node
  ❌ test_add_multiple_contributors_only_adds_one_log
	tests/test_views.py:2187: in test_add_multiple_contributors_only_adds_one_log
  ✅ test_contributor_added_email_sent_to_unreg_user
  ✅ test_creating_fork_does_not_email_creator
  ✅ test_creating_template_does_not_email_creator
  ✅ test_deserialize_contributors
  ✅ test_deserialize_contributors_validates_email
  ✅ test_deserialize_contributors_validates_fullname
  ✅ test_email_sent_when_reg_user_is_added
  ❌ test_email_sent_when_unreg_user_is_added
	tests/test_views.py:2045: in test_email_sent_when_unreg_user_is_added
  ✅ test_forking_project_does_not_send_contributor_added_email
  ✅ test_notify_contributor_email_does_not_send_before_throttle_expires
  ✅ test_notify_contributor_email_sends_after_throttle_expires
  ✅ test_registering_project_does_not_send_contributor_added_email
  ✅ test_serialize_unregistered_with_record
  ✅ test_serialize_unregistered_without_record
  ✅ test_templating_project_does_not_send_contributor_added_email
tests.test_views.TestUserInviteViews
  ✅ test_invite_contributor_post_if_email_already_registered
  ✅ test_invite_contributor_post_if_not_in_db
  ✅ test_invite_contributor_post_if_unreg_already_in_db
  ✅ test_invite_contributor_post_if_user_is_already_contributor
  ✅ test_invite_contributor_requires_fullname
  ✅ test_invite_contributor_with_no_email
  ✅ test_send_claim_email_before_throttle_expires
  ✅ test_send_claim_email_to_given_email
  ✅ test_send_claim_email_to_referrer
tests.test_views.TestClaimViews
  ✅ test_cannot_claim_user_with_user_who_is_already_contributor
  ✅ test_claim_url_with_bad_token_returns_400
  ✅ test_claim_user_already_registered_redirects_to_claim_user_registered
  ✅ test_claim_user_already_registered_secondary_email_redirects_to_claim_user_registered
  ✅ test_claim_user_form_redirects_to_password_confirm_page_if_user_is_logged_in
  ✅ test_claim_user_invited_with_no_email_posts_to_claim_form
  ✅ test_claim_user_post_if_email_is_different_from_given_email
  ✅ test_claim_user_post_returns_fullname
  ✅ test_claim_user_post_with_email_already_registered_sends_correct_email
  ✅ test_claim_user_post_with_registered_user_id
  ✅ test_claim_user_when_user_is_registered_with_orcid
  ✅ test_claim_user_with_preprint_id_adds_corresponding_claimed_tag_to_user
  ✅ test_claim_user_with_project_id_adds_corresponding_claimed_tag_to_user
  ✅ test_get_valid_form
  ✅ test_invalid_claim_form_raise_400
  ✅ test_posting_to_claim_form_removes_all_unclaimed_data
  ✅ test_posting_to_claim_form_sets_fullname_to_given_name
  ✅ test_posting_to_claim_form_with_valid_data
  ✅ test_send_claim_registered_email
  ✅ test_send_claim_registered_email_before_throttle_expires
  ✅ test_user_with_claim_url_cannot_claim_twice
  ✅ test_user_with_removed_unclaimed_url_claiming
tests.test_views.TestPointerViews
  ✅ test_add_pointers
  ✅ test_add_pointers_contributor
  ✅ test_add_pointers_no_user_logg_in
  ✅ test_add_pointers_not_provided
  ✅ test_add_pointers_public_non_contributor
  ✅ test_add_the_same_pointer_more_than_once
  ✅ test_before_fork_no_pointer
  ✅ test_before_fork_with_pointer
  ✅ test_before_register_no_pointer
  ✅ test_before_register_with_pointer
  ✅ test_can_template_project_linked_to_each_other
  ✅ test_fork_pointer_not_found
  ✅ test_fork_pointer_not_in_nodes
  ✅ test_fork_pointer_not_provided
  ✅ test_forking_pointer_works
  ✅ test_get_pointed
  ✅ test_get_pointed_excludes_folders
  ✅ test_get_pointed_private
  ❌ test_pointer_list_read_contributor_cannot_remove_private_component_entry
	tests/test_views.py:2882: in test_pointer_list_read_contributor_cannot_remove_private_component_entry
  ❌ test_pointer_list_read_contributor_cannot_remove_public_component_entry
	tests/test_views.py:2903: in test_pointer_list_read_contributor_cannot_remove_public_component_entry
  ❌ test_pointer_list_write_contributor_can_remove_private_component_entry
	tests/test_views.py:2851: in test_pointer_list_write_contributor_can_remove_private_component_entry
  ❌ test_pointer_list_write_contributor_can_remove_public_component_entry
	tests/test_views.py:2865: in test_pointer_list_write_contributor_can_remove_public_component_entry
  ✅ test_remove_pointer
  ✅ test_remove_pointer_not_found
  ✅ test_remove_pointer_not_in_nodes
  ✅ test_remove_pointer_not_provided
tests.test_views.TestPublicViews
  ✅ test_explore
tests.test_views.TestAuthViews
  ✅ test_add_email
  ✅ test_add_email_merge
  ✅ test_add_expired_email
  ✅ test_add_invalid_email
  ✅ test_clean_email_verifications
  ✅ test_clean_email_verifications_when_email_verifications_is_an_empty_dict
  ✅ test_click_confirmation_email
  ✅ test_confirm_email_clears_unclaimed_records_and_revokes_token
  ✅ test_confirmation_link_registers_user
  ✅ test_get_email_to_add
  ✅ test_get_email_to_add_no_email
  ✅ test_get_unconfirmed_email
  ✅ test_register_after_being_invited_as_unreg_contributor
  ✅ test_register_bad_captcha
  ✅ test_register_blocked_email_domain
  ✅ test_register_email_already_registered
  ✅ test_register_email_case_insensitive
  ✅ test_register_email_mismatch
  ✅ test_register_email_with_accepted_tos
  ✅ test_register_email_without_accepted_tos
  ✅ test_register_good_captcha
  ✅ test_register_missing_captcha
  ✅ test_register_ok
  ✅ test_register_scrubs_username
  ✅ test_register_sends_user_registered_signal
  ✅ test_remove_email
  ✅ test_resend_confirmation
  ✅ test_resend_confirmation_does_not_send_before_throttle_expires
  ✅ test_resend_confirmation_not_work_for_confirmed_email
  ✅ test_resend_confirmation_not_work_for_primary_email
  ✅ test_resend_confirmation_without_email
  ✅ test_resend_confirmation_without_user_id
tests.test_views.TestAuthLoginAndRegisterLogic
  ✅ test_campaign_login_with_auth
  ✅ test_campaign_login_without_auth
  ✅ test_campaign_next_url_login_with_auth
  ✅ test_campaign_next_url_login_without_auth
  ✅ test_campaign_next_url_register_with_auth
  ✅ test_campaign_next_url_register_without_auth
  ✅ test_campaign_register_with_auth
  ✅ test_campaign_register_without_auth
  ✅ test_institution_login_and_register
  ✅ test_institution_login_next_url_with_auth
  ✅ test_institution_login_next_url_without_auth
  ✅ test_institution_login_with_auth
  ✅ test_institution_login_without_auth
  ✅ test_institution_register_without_auth
  ✅ test_institution_regsiter_with_auth
  ✅ test_invalid_campaign_login_without_auth
  ✅ test_invalid_campaign_register_without_auth
  ✅ test_next_url_login_with_auth
  ✅ test_next_url_login_without_auth
  ✅ test_next_url_register_with_auth
  ✅ test_next_url_register_without_auth
  ✅ test_osf_login_with_auth
  ✅ test_osf_login_without_auth
  ✅ test_osf_register_with_auth
  ✅ test_osf_register_without_auth
  ✅ test_register_logout_flag_with_auth
  ✅ test_register_logout_flage_without
tests.test_views.TestAuthLogout
  ✅ test_logout_with_invalid_next_url_logged_in
  ✅ test_logout_with_invalid_next_url_logged_out
  ✅ test_logout_with_no_parameter
  ✅ test_logout_with_redirect_url
  ✅ test_logout_with_valid_next_url_logged_in
  ✅ test_logout_with_valid_next_url_logged_out
tests.test_views.TestExternalAuthViews
  ✅ test_ensure_external_identity_uniqueness_multiple
  ✅ test_ensure_external_identity_uniqueness_unverified
  ✅ test_ensure_external_identity_uniqueness_verified
  ✅ test_external_login_confirm_email_get_create
  ✅ test_external_login_confirm_email_get_duped_id
  ✅ test_external_login_confirm_email_get_duping_id
  ✅ test_external_login_confirm_email_get_link
  ✅ test_external_login_confirm_email_get_with_another_user_logged_in
  ✅ test_external_login_confirm_email_get_without_destination
  ✅ test_external_login_email_get_with_invalid_session
tests.test_views.TestAddonUserViews
  ✅ test_choose_addons_add
  ✅ test_choose_addons_remove
tests.test_views.TestConfigureMailingListViews
  ✅ test_get_mailchimp_get_endpoint_returns_200
  ✅ test_get_notifications
  ✅ test_mailchimp_webhook_profile_action_does_not_change_user
  ✅ test_mailchimp_webhook_subscribe_action_does_not_change_user
  ✅ test_osf_help_mails_subscribe
  ✅ test_osf_help_mails_unsubscribe
  ✅ test_sync_data_from_mailchimp_fails_without_secret_key
  ✅ test_sync_data_from_mailchimp_unsubscribes_user
  ✅ test_user_choose_mailing_lists_updates_user_dict
  ✅ test_user_unsubscribe_and_subscribe_help_mailing_list
tests.test_views.TestFileViews
  ✅ test_grid_data
tests.test_views.TestTagViews
  ⚪ test_tag_get_returns_200
tests.test_views.TestReorderComponents
  ✅ test_reorder_components_with_private_component
tests.test_views.TestWikiWidgetViews
  ✅ test_show_wiki_for_contributors_when_no_wiki_or_content
  ✅ test_show_wiki_for_osf_group_members
  ✅ test_show_wiki_is_false_for_noncontributors_when_no_wiki_or_content
  ✅ test_show_wiki_is_false_for_read_contributors_when_no_wiki_or_content
tests.test_views.TestProjectCreation
  ✅ test_can_template
  ✅ test_create_component_add_contributors_admin
  ✅ test_create_component_add_no_contributors
  ❌ test_create_component_strips_html
	tests/test_views.py:4478: in test_create_component_strips_html
  ✅ test_create_component_with_contributors_read
  ✅ test_create_component_with_contributors_read_write
  ✅ test_creates_a_project
  ✅ test_description_works
  ✅ test_fails_to_create_project_with_whitespace_title
  ✅ test_group_copied_over_to_component_if_manager
  ✅ test_needs_title
  ✅ test_new_project_returns_serialized_node_data
  ✅ test_only_needs_title
  ✅ test_project_before_template_no_addons
  ✅ test_project_before_template_with_addons
  ✅ test_project_new_from_template_contributor
  ✅ test_project_new_from_template_non_user
  ✅ test_project_new_from_template_public_non_contributor
  ✅ test_strip_html_from_title
  ✅ test_title_must_be_less_than_200
  ✅ test_title_must_be_one_long
tests.test_views.TestUnconfirmedUserViews
  ✅ test_can_view_profile
tests.test_views.TestStaticFileViews
  ✅ test_favicon
  ✅ test_getting_started_page
  ✅ test_help_redirect
  ✅ test_robots_dot_txt
tests.test_views.TestUserConfirmSignal
  ✅ test_confirm_user_signal_called_when_user_claims_account
  ✅ test_confirm_user_signal_called_when_user_confirms_email
tests.test_views.TestCommentViews
  ✅ test_confirm_non_contrib_viewers_dont_have_pid_in_comments_view_timestamp
  ✅ test_view_comments_updates_user_comments_view_timestamp_files
  ✅ test_view_project_comments_updates_user_comments_view_timestamp
tests.test_views.TestResetPassword
  ✅ test_can_reset_password_if_form_success
  ✅ test_reset_password_logs_out_user
  ✅ test_reset_password_view_raises_400
  ✅ test_reset_password_view_returns_200
tests.test_views.TestResolveGuid
  ✅ test_preprint_provider_with_domain_with_redirect
  ✅ test_preprint_provider_with_domain_without_redirect
  ✅ test_preprint_provider_with_osf_domain
  ✅ test_preprint_provider_without_domain
tests.test_views.TestConfirmationViewBlockBingPreview
  ✅ test_claim_user_form_existing_user
  ✅ test_claim_user_form_new_user
  ✅ test_confirm_email_add_email_returns_403
  ✅ test_confirm_email_get_new_user_returns_403
  ✅ test_confirm_email_merge_account_returns_403
  ✅ test_external_login_confirm_email_get_create_user
  ✅ test_external_login_confirm_email_get_link_user
  ✅ test_reset_password_get_returns_403
tests.test_websitefiles.TestStoredFileNode
  ✅ test_deep_url
  ✅ test_deep_url_unicode
  ✅ test_get_guid_create
  ✅ test_get_guid_no_create
tests.test_websitefiles.TestFileNodeObj
  ✅ test_attr_passthrough
  ✅ test_copy_under
  ✅ test_create
  ✅ test_delete
  ✅ test_delete_with_guid
  ✅ test_delete_with_user
  ✅ test_find
  ✅ test_find_one
  ✅ test_get_file_guids
  ✅ test_get_file_guids_with_folder_path
  ✅ test_get_file_guids_with_folder_path_does_not_include_deleted_files
  ✅ test_get_or_create
  ✅ test_kind
  ✅ test_load
  ✅ test_metadata_url
  ✅ test_move_under
  ✅ test_parent
  ✅ test_repr
  ✅ test_restore_file
  ✅ test_restore_folder
  ✅ test_restore_folder_nested
  ✅ test_save
tests.test_websitefiles.TestFileObj
  ✅ test_download_url
  ✅ test_get_download_count
  ✅ test_get_version
  ✅ test_serialize
  ✅ test_touch
  ✅ test_touch_auth
  ✅ test_touch_caching
  ✅ test_update_version_metadata
tests.test_websitefiles.TestFolderObj
  ✅ test_append_file
  ✅ test_append_folder
  ✅ test_children
  ✅ test_delete
  ✅ test_find_child_by_name
tests.test_websitefiles.TestSubclasses
  ✅ test_s3file
tests.test_webtests.TestDisabledUser
  ✅ test_profile_disabled_returns_401
tests.test_webtests.TestAnUnregisteredUser
  ✅ test_cant_see_profile_if_not_logged_in
tests.test_webtests.TestAUser
  ❌ test_can_see_make_private_button_if_admin
	tests/test_webtests.py:169: in test_can_see_make_private_button_if_admin
  ❌ test_can_see_make_public_button_if_admin
	tests/test_webtests.py:147: in test_can_see_make_public_button_if_admin
  ✅ test_can_see_profile_url
  ❌ test_cant_see_make_private_button_if_not_admin
	tests/test_webtests.py:180: in test_cant_see_make_private_button_if_not_admin
  ❌ test_cant_see_make_public_button_if_not_admin
	tests/test_webtests.py:158: in test_cant_see_make_public_button_if_not_admin
  ✅ test_does_not_see_osffiles_in_user_addon_settings
  ✅ test_is_redirected_to_cas_if_not_logged_in_at_login_page
  ✅ test_is_redirected_to_dashboard_if_already_logged_in_at_login_page
  ✅ test_is_redirected_to_dashboard_if_already_logged_in_at_register_page
  ✅ test_no_wiki_content_message
  ❌ test_noncontributor_cannot_see_wiki_if_no_content
	tests/test_webtests.py:228: in test_noncontributor_cannot_see_wiki_if_no_content
  ✅ test_register_page
  ✅ test_sees_another_profile
  ✅ test_sees_correct_title_on_dashboard
  ❌ test_sees_logs_on_a_project
	tests/test_webtests.py:186: in test_sees_logs_on_a_project
  ✅ test_sees_osffiles_in_project_addon_settings
  ✅ test_sees_own_profile
  ✅ test_sees_projects_in_her_dashboard
  ✅ test_wiki_content
  ✅ test_wiki_does_not_exist
  ✅ test_wiki_page_name_non_ascii
tests.test_webtests.TestComponents
  ✅ test_can_configure_comments_if_admin
  ✅ test_cant_configure_comments_if_not_admin
  ✅ test_cant_delete_project_if_not_admin
  ❌ test_components_should_have_component_list
	tests/test_webtests.py:325: in test_components_should_have_component_list
  ✅ test_delete_project
  ❌ test_sees_parent
	tests/test_webtests.py:273: in test_sees_parent
tests.test_webtests.TestPrivateLinkView
  ✅ test_anonymous_link_hide_contributor
  ✅ test_anonymous_link_hides_citations
  ❌ test_no_warning_for_read_only_user_with_invalid_link
	tests/test_webtests.py:371: in test_no_warning_for_read_only_user_with_invalid_link
  ❌ test_no_warning_for_read_only_user_with_valid_link
	tests/test_webtests.py:359: in test_no_warning_for_read_only_user_with_valid_link
tests.test_webtests.TestMergingAccounts
  ✅ test_merged_user_has_alert_message_on_profile
  ❌ test_merged_user_is_not_shown_as_a_contributor
	tests/test_webtests.py:397: in test_merged_user_is_not_shown_as_a_contributor
tests.test_webtests.TestShortUrls
  ❌ test_component_url
	tests/test_webtests.py:462: in test_component_url
  ❌ test_project_url
	tests/test_webtests.py:458: in test_project_url
  ✅ test_wiki_url
tests.test_webtests.TestClaiming
  ⚪ test_cannot_set_email_to_a_user_that_already_exists
  ✅ test_correct_display_name_is_shown_at_claim_page
  ❌ test_correct_name_shows_in_contributor_list
	tests/test_webtests.py:487: in test_correct_name_shows_in_contributor_list
  ✅ test_sees_is_redirected_if_user_already_logged_in
  ❌ test_unregistered_users_names_are_project_specific
	tests/test_webtests.py:543: in test_unregistered_users_names_are_project_specific

Report exceeded GitHub limit of 65535 bytes and has been trimmed

Annotations

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_auth_basic_auth.TestAuthBasicAuthentication ► test_valid_cookie

Failed test found in:
  report.xml
Error:
  tests/test_auth_basic_auth.py:91: in test_valid_cookie
Raw output
tests/test_auth_basic_auth.py:91: in test_valid_cookie
    res = self.app.get(self.reachable_url)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_auth_basic_auth.TestAuthBasicAuthentication ► test_valid_credential_authenticates_and_has_permissions

Failed test found in:
  report.xml
Error:
  tests/test_auth_basic_auth.py:47: in test_valid_credential_authenticates_and_has_permissions
Raw output
tests/test_auth_basic_auth.py:47: in test_valid_credential_authenticates_and_has_permissions
    res = self.app.get(self.reachable_url, auth=self.user1.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_auth_basic_auth.TestAuthBasicAuthentication ► test_valid_credential_twofactor_valid_otp

Failed test found in:
  report.xml
Error:
  tests/test_auth_basic_auth.py:84: in test_valid_credential_twofactor_valid_otp
Raw output
tests/test_auth_basic_auth.py:84: in test_valid_credential_twofactor_valid_otp
    res = self.app.get(self.reachable_url, auth=self.user1.auth, headers={'X-OSF-OTP': _valid_code(self.TOTP_SECRET)})
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorUtils ► test_serialize_user

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:18: in test_serialize_user
Raw output
tests/test_contributors_views.py:18: in test_serialize_user
    serialized = utils.serialize_user(self.project.creator, self.project)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorUtils ► test_serialize_user_admin

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:36: in test_serialize_user_admin
Raw output
tests/test_contributors_views.py:36: in test_serialize_user_admin
    serialized = utils.serialize_user(self.project.creator, self.project, admin=True)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorUtils ► test_serialize_user_full_does_not_include_emails_by_default

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:23: in test_serialize_user_full_does_not_include_emails_by_default
Raw output
tests/test_contributors_views.py:23: in test_serialize_user_full_does_not_include_emails_by_default
    serialized = utils.serialize_user(self.project.creator, self.project, full=True)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorUtils ► test_serialize_user_full_includes_email_if_is_profile

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:27: in test_serialize_user_full_includes_email_if_is_profile
Raw output
tests/test_contributors_views.py:27: in test_serialize_user_full_includes_email_if_is_profile
    serialized = utils.serialize_user(
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorViews ► test_get_contributors_no_limit

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:78: in test_get_contributors_no_limit
Raw output
tests/test_contributors_views.py:78: in test_get_contributors_no_limit
    res = self.app.get(url, auth=self.user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
framework/auth/decorators.py:38: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:106: in get_contributors
    contribs = profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_contributors_views.TestContributorViews ► test_get_contributors_with_limit

Failed test found in:
  report.xml
Error:
  tests/test_contributors_views.py:112: in test_get_contributors_with_limit
Raw output
tests/test_contributors_views.py:112: in test_get_contributors_with_limit
    res = self.app.get(url, auth=self.user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
framework/auth/decorators.py:38: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:106: in get_contributors
    contribs = profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestViewingProjectWithPrivateLink ► test_has_private_link_key

Failed test found in:
  report.xml
Error:
  tests/test_views.py:192: in test_has_private_link_key
Raw output
tests/test_views.py:192: in test_has_private_link_key
    res = self.app.get(self.project_url, query_string={'view_only': self.link.key})
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestViewingProjectWithPrivateLink ► test_logged_in_has_key

Failed test found in:
  report.xml
Error:
  tests/test_views.py:207: in test_logged_in_has_key
Raw output
tests/test_views.py:207: in test_logged_in_has_key
    res = self.app.get(self.project_url, query_string={'view_only': self.link.key}, auth=self.user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_add_contributor_post

Failed test found in:
  report.xml
Error:
  tests/test_views.py:479: in test_add_contributor_post
Raw output
tests/test_views.py:479: in test_add_contributor_post
    self.app.post(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1167: in post
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:418: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:172: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:262: in project_contributors_post
    'contributors': profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_can_view_nested_project_as_admin

Failed test found in:
  report.xml
Error:
  tests/test_views.py:430: in test_can_view_nested_project_as_admin
Raw output
tests/test_views.py:430: in test_can_view_nested_project_as_admin
    res = self.app.get(url, auth=self.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_fork_count_does_not_include_deleted_forks

Failed test found in:
  report.xml
Error:
  tests/test_views.py:906: in test_fork_count_does_not_include_deleted_forks
Raw output
tests/test_views.py:906: in test_fork_count_does_not_include_deleted_forks
    res = self.app.get(url, auth=user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_fork_count_does_not_include_fork_registrations

Failed test found in:
  report.xml
Error:
  tests/test_views.py:919: in test_fork_count_does_not_include_fork_registrations
Raw output
tests/test_views.py:919: in test_fork_count_does_not_include_fork_registrations
    res = self.app.get(url, auth=user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_project_api_url

Failed test found in:
  report.xml
Error:
  tests/test_views.py:444: in test_project_api_url
Raw output
tests/test_views.py:444: in test_project_api_url
    res = self.app.get(url, auth=self.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_retraction_view

Failed test found in:
  report.xml
Error:
  tests/test_views.py:958: in test_retraction_view
Raw output
tests/test_views.py:958: in test_retraction_view
    res = self.app.get(url, auth=self.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_view_project_doesnt_select_for_update

Failed test found in:
  report.xml
Error:
  tests/test_views.py:386: in test_view_project_doesnt_select_for_update
Raw output
tests/test_views.py:386: in test_view_project_doesnt_select_for_update
    res = self.app.get(url, auth=self.user1.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_view_project_no_tos_status_message

Failed test found in:
  report.xml
Error:
  tests/test_views.py:339: in test_view_project_no_tos_status_message
Raw output
tests/test_views.py:339: in test_view_project_no_tos_status_message
    self.app.get(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_view_project_returns_whether_to_show_wiki_widget

Failed test found in:
  report.xml
Error:
  tests/test_views.py:880: in test_view_project_returns_whether_to_show_wiki_widget
Raw output
tests/test_views.py:880: in test_view_project_returns_whether_to_show_wiki_widget
    res = self.app.get(url, auth=user.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestProjectViews ► test_view_project_tos_status_message

Failed test found in:
  report.xml
Error:
  tests/test_views.py:328: in test_view_project_tos_status_message
Raw output
tests/test_views.py:328: in test_view_project_tos_status_message
    self.app.get(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1162: in get
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
osf/utils/tokens/__init__.py:86: in wrapper
    return func(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:294: in wrapped
    return response or func(*args, **kwargs)
website/ember_osf_web/decorators.py:20: in wrapped
    return func(*args, **kwargs)
website/project/views/node.py:448: in view_project
    ret = _view_project(node, auth,
website/project/views/node.py:862: in _view_project
    data['node']['contributors'] = utils.serialize_visible_contributors(node)
website/profile/utils.py:124: in serialize_visible_contributors
    serialize_user(c, node) for c in node.contributor_set.all() if c.visible
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestAddingContributorViews ► test_add_contribs_to_multiple_nodes

Failed test found in:
  report.xml
Error:
  tests/test_views.py:2212: in test_add_contribs_to_multiple_nodes
Raw output
tests/test_views.py:2212: in test_add_contribs_to_multiple_nodes
    self.app.post(url, json=payload, follow_redirects=True, auth=self.creator.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1167: in post
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:418: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:172: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:262: in project_contributors_post
    'contributors': profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestAddingContributorViews ► test_add_contributor_with_unreg_contribs_and_reg_contribs

Failed test found in:
  report.xml
Error:
  tests/test_views.py:1928: in test_add_contributor_with_unreg_contribs_and_reg_contribs
Raw output
tests/test_views.py:1928: in test_add_contributor_with_unreg_contribs_and_reg_contribs
    self.app.post(url, json=payload, follow_redirects=True, auth=self.creator.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1167: in post
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:418: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:172: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:262: in project_contributors_post
    'contributors': profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestAddingContributorViews ► test_add_contributors_post_only_sends_one_email_to_registered_user

Failed test found in:
  report.xml
Error:
  tests/test_views.py:1996: in test_add_contributors_post_only_sends_one_email_to_registered_user
Raw output
tests/test_views.py:1996: in test_add_contributors_post_only_sends_one_email_to_registered_user
    self.app.post(url, json=payload, auth=self.creator.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1167: in post
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:418: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:172: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:262: in project_contributors_post
    'contributors': profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'

Check failure on line 0 in report.xml

See this annotation in the file changed.

@github-actions github-actions / website REPORT

pytest ► tests.test_views.TestAddingContributorViews ► test_add_contributors_post_only_sends_one_email_to_unreg_user

Failed test found in:
  report.xml
Error:
  tests/test_views.py:1968: in test_add_contributors_post_only_sends_one_email_to_unreg_user
Raw output
tests/test_views.py:1968: in test_add_contributors_post_only_sends_one_email_to_unreg_user
    self.app.post(url, json=payload, auth=self.creator.auth)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1167: in post
    return self.open(*args, **kw)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/testing.py:235: in open
    response = super().open(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1116: in open
    response_parts = self.run_wsgi_app(request.environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:988: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/werkzeug/test.py:1264: in run_wsgi_app
    app_rv = app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in sentry_patched_wsgi_app
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:109: in __call__
    reraise(*_capture_exception())
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/utils.py:1640: in reraise
    raise value
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py:102: in __call__
    response = self.app(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/sentry_sdk/integrations/flask.py:84: in <lambda>
    return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))(
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1488: in __call__
    return self.wsgi_app(environ, start_response)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1466: in wsgi_app
    response = self.handle_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:1463: in wsgi_app
    response = self.full_dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:872: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:870: in full_dispatch_request
    rv = self.dispatch_request()
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/flask/app.py:855: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
framework/routing/__init__.py:113: in wrapped
    data = fn(*args, **kwargs)
website/project/decorators.py:108: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:418: in wrapped
    return func(*args, **kwargs)
website/project/decorators.py:172: in wrapped
    return func(*args, **kwargs)
website/project/views/contributor.py:262: in project_contributors_post
    'contributors': profile_utils.serialize_contributors(
website/profile/utils.py:117: in serialize_contributors
    serialize_user(contrib, node, **kwargs)
website/profile/utils.py:36: in serialize_user
    'is_curator': user.is_institutional_admin(node=node),
osf/models/user.py:655: in is_institutional_admin
    ).is_curator
../../../.cache/pypoetry/virtualenvs/osf-io-ozdFaKNQ-py3.12/lib/python3.12/site-packages/django/utils/functional.py:57: in __get__
    res = instance.__dict__[self.name] = self.func(instance)
osf/models/contributor.py:45: in is_curator
    return self.user.requests.filter(
E   AttributeError: 'OSFUser' object has no attribute 'requests'