diff --git a/.github/workflows/hypha-ci.yml b/.github/workflows/hypha-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..0f799c690705a331e9d2eaf3446e3774c71e6bc3 --- /dev/null +++ b/.github/workflows/hypha-ci.yml @@ -0,0 +1,113 @@ + +name: Hypha CI + +on: + pull_request: + branches: + - main + push: + branches: + - main + - test + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true + +jobs: + lint-fe: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + - name: install node dependencies + run: npm install --quiet + - name: run scss and js linting + run: npm run lint + + test-fe: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + - name: install node dependencies + run: npm install --quiet + - name: tun functional unit test cases [REACT.JS] + run: npm run test:ci + + lint-be: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + cache: 'pip' + cache-dependency-path: '**/requirements*.txt' + - name: install python dependencies + run: | + python3 -m venv venv + . venv/bin/activate + pip install --upgrade pip + pip install wheel + pip install -r requirements-dev.txt + - name: run python linting + run: | + . venv/bin/activate + make lint + + test-be: + runs-on: ubuntu-latest + env: + DATABASE_URL: postgresql://hypha:hypha@localhost/hypha?sslmode=disable + DJANGO_SETTINGS_MODULE: hypha.settings.test + SEND_MESSAGES: false + services: + postgres: + image: postgres:12-alpine + env: + POSTGRES_USER: hypha + POSTGRES_PASSWORD: hypha + POSTGRES_DB: hypha + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + strategy: + matrix: + group: [1, 2, 3] + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + cache: 'pip' + cache-dependency-path: '**/requirements*.txt' + - uses: codecov/codecov-action@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + - name: install node dependencies + run: npm install --quiet + - name: builds static assets + run: npm run build + - name: install python dependencies + run: | + python3 -m venv venv + . venv/bin/activate + pip install --upgrade pip + pip install wheel + pip install -r requirements-dev.txt + - name: run python tests + run: | + . venv/bin/activate + python manage.py check + python manage.py makemigrations --check --noinput --verbosity=1 + python manage.py collectstatic --noinput --no-post-process --verbosity=1 + pytest --cov --cov-report term:skip-covered --splits 3 --group ${{ matrix.group }} diff --git a/.test_durations b/.test_durations new file mode 100644 index 0000000000000000000000000000000000000000..a94089b8969a14d7db38ffa08eafd545b41ed5a4 --- /dev/null +++ b/.test_durations @@ -0,0 +1,820 @@ +{ + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_activity_created": 0.14344278909265995, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_handle_transition_public_to_public": 0.13533255294896662, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_handle_transition_to_private_to_public": 0.14646936603821814, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_handle_transition_to_public_to_private": 0.2567204600200057, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_internal_transition_kwarg_for_invisible_transition": 0.1296525369398296, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_lead_not_saved_on_activity": 0.2898518198635429, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_public_transition_kwargs": 0.1234216708689928, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_review_saved_on_activity": 0.1342148541007191, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_reviewers_message_both": 0.2380015958333388, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_reviewers_message_no_added": 0.11465408396907151, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_reviewers_message_no_removed": 0.11311879300046712, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_reviewers_with_and_without_role": 0.24679536593612283, + "hypha/apply/activity/tests/test_messaging.py::TestActivityAdapter::test_reviewers_with_role": 0.11993087804876268, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_activity_created": 0.16122049908153713, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_activity_lead_change": 0.1742270030081272, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_activity_lead_change_from_none": 0.16853314999025315, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_email_staff_update_invoice": 0.21800277498550713, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_slack_applicant_update_invoice": 0.20324986602645367, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_slack_created": 0.24237694405019283, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_slack_lead_change": 0.25698602199554443, + "hypha/apply/activity/tests/test_messaging.py::TestAdaptersForProject::test_slack_staff_update_invoice": 0.1890974020352587, + "hypha/apply/activity/tests/test_messaging.py::TestAnyMailBehaviour::test_email_new_submission": 0.19182600686326623, + "hypha/apply/activity/tests/test_messaging.py::TestAnyMailBehaviour::test_webhook_adds_reject_reason": 0.34344921412412077, + "hypha/apply/activity/tests/test_messaging.py::TestAnyMailBehaviour::test_webhook_updates_status": 0.39370555302593857, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_calls_method_if_avaliable": 66.83535401790868, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_can_include_extra_kwargs": 65.78845314600039, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_can_send_a_message": 65.79057331813965, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_django_messages_used": 65.57087543606758, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_doesnt_send_a_message_if_not_configured": 67.64783065696247, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_that_kwargs_passed_to_send_message": 65.64460984803736, + "hypha/apply/activity/tests/test_messaging.py::TestBaseAdapter::test_that_message_is_formatted": 0.12581563601270318, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_email_failed": 0.34751814301125705, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_email_new_submission": 0.42053920798934996, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_email_sent": 0.5066940550459549, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_no_email_own_comment": 0.13877116597723216, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_no_email_private_comment": 0.14252048777416348, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_reviewer_update_email": 0.3222281219204888, + "hypha/apply/activity/tests/test_messaging.py::TestEmailAdapter::test_reviewers_email": 0.2261626609833911, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendApplication::test_event_created": 0.2706864309730008, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendApplication::test_message_sent_to_adapter": 0.26362307695671916, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendApplication::test_message_sent_to_all_adapter": 0.18811512202955782, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendProject::test_event_created": 0.22752311686053872, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendProject::test_message_sent_to_adapter": 0.23536728299222887, + "hypha/apply/activity/tests/test_messaging.py::TestMessageBackendProject::test_message_sent_to_all_adapter": 0.2936767911305651, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_400_bad_request": 0.14764246996492147, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_cant_send_with_no_room": 0.1453689328627661, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_cant_send_with_no_token": 0.15953180694486946, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_correct_payload": 0.1615361919393763, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_fund_custom_slack_channel": 0.34579370287247, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_fund_multiple_custom_slack_channel": 0.1475662150187418, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_gets_blank_if_slack_not_set": 0.10643036512192339, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_gets_lead_if_slack_set": 0.1141614600783214, + "hypha/apply/activity/tests/test_messaging.py::TestSlackAdapter::test_message_with_good_response": 0.266762285027653, + "hypha/apply/activity/tests/test_models.py::TestActivityModel::test_can_save_related_invoice": 0.27753266994841397, + "hypha/apply/activity/tests/test_models.py::TestActivityModel::test_can_save_related_report": 0.2903301400365308, + "hypha/apply/activity/tests/test_models.py::TestActivityModel::test_can_save_source_application": 0.1448558879783377, + "hypha/apply/activity/tests/test_models.py::TestActivityModel::test_can_save_source_project": 0.487373837037012, + "hypha/apply/activity/tests/test_models.py::TestActivityOnlyIncludesCurrent::test_doesnt_include_non_current": 0.3136142200091854, + "hypha/apply/activity/tests/test_tasks.py::TestSendEmail::test_args_passed_to_django": 0.15347636095248163, + "hypha/apply/api/v1/screening/tests/test_views.py::ScreeningStatusViewSetTests::test_reviewer_cant_list_screening_statuses": 0.4026039669988677, + "hypha/apply/api/v1/screening/tests/test_views.py::ScreeningStatusViewSetTests::test_staff_can_list_screening_statuses": 0.6130934510147199, + "hypha/apply/api/v1/screening/tests/test_views.py::ScreeningStatusViewSetTests::test_staff_can_view_screening_statuses_detail": 0.2604068689979613, + "hypha/apply/api/v1/screening/tests/test_views.py::ScreeningStatusViewSetTests::test_user_cant_list_screening_statuses": 0.41232136404141784, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_add_screening_status": 0.6120836760383099, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_cant_add_screening_status_without_setting_default": 0.3926486379932612, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_cant_add_two_types_of_screening_status": 0.3507711288984865, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_cant_change_default_screening_status": 0.3622360579902306, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_cant_remove_not_set_screening_status": 0.45779248513281345, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_cant_remove_submission_default_screening_status": 0.39375102799385786, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_change_default_screening_status": 0.3812623010016978, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_remove_submission_screening_status": 0.4917816499946639, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_reviewer_cant_list_screening_statuses": 0.34579425293486565, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_set_default_screening_status": 0.29811072489246726, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_staff_can_list_submission_screening_statuses": 0.3219957079272717, + "hypha/apply/api/v1/screening/tests/test_views.py::SubmissionScreeningStatusViewSetTests::test_user_cant_list_screening_statuses": 0.3701162070501596, + "hypha/apply/api/v1/tests/test_serializers.py::TestDeliverableSerializer::test_id_is_required": 0.04010521189775318, + "hypha/apply/api/v1/tests/test_serializers.py::TestDeliverableSerializer::test_quantity_not_required": 0.15449123491998762, + "hypha/apply/api/v1/tests/test_serializers.py::TestDeliverableSerializer::test_validate_id": 0.163246760959737, + "hypha/apply/api/v1/tests/test_serializers.py::TestInvoiceRequiredChecksSerializer::test_valid_checks_link_required": 0.006919624982401729, + "hypha/apply/api/v1/tests/test_serializers.py::TestInvoiceRequiredChecksSerializer::test_valid_checks_required": 0.044901357032358646, + "hypha/apply/api/v1/tests/test_serializers.py::TestInvoiceRequiredChecksSerializer::test_validate_valid_checks_and_link": 0.05300416308455169, + "hypha/apply/api/v1/tests/test_serializers.py::TestReviewSummarySerializer::test_handles_negative_reviews": 0.22178033587988466, + "hypha/apply/api/v1/tests/test_serializers.py::TestReviewSummarySerializer::test_handles_no_reviews": 0.1638615340925753, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_can_change_visibility": 0.4007088710786775, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_cant_edit_if_not_author": 0.36480345006566495, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_does_nothing_if_same_message_and_visibility": 0.42356488294899464, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_edit_updates_correctly": 0.6256444269092754, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_incorrect_id_denied": 0.2355696108425036, + "hypha/apply/api/v1/tests/test_views.py::TestCommentEdit::test_out_of_order_does_nothing": 0.42905998684000224, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_applicant_cant_add_deliverables": 0.45189499796833843, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_applicant_cant_remove_deliverables": 0.4592257629847154, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_cant_add_or_remove_wihtout_login": 0.5644601489184424, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_deliverable_already_exists_in_invoice": 0.37170096207410097, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_deliverable_available_gte_quantity": 0.47626284894067794, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_deliverable_dont_exists_in_project_deliverables": 0.5132405549520627, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_deliverables_cant_removed_after_finance2_approval": 0.3479049109155312, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_finance1_can_add_deliverables": 0.3867975469911471, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_finance1_can_remove_deliverables": 0.3443655731389299, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_finance1_cant_remove_deliverables_after_finance1_approval": 0.327706566080451, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_finance2_can_add_deliverables": 0.3336425570305437, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_finance2_can_remove_deliverables": 0.40863894391804934, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_staff_can_add_deliverables": 0.35847098112571985, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_staff_can_remove_deliverables": 0.35170535603538156, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceDeliverableViewset::test_staff_cant_remove_deliverables_after_staff_approval": 0.3661664130631834, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_applicant_cant_get_set_required_valid_checks": 0.4415170591091737, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_cant_get_set_required_checks_without_login": 0.36270113196223974, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_finance1_can_get_required_valid_checks": 0.4331871251342818, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_finance1_can_set_required_valid_checks": 0.4565611589932814, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_finance2_cant_get_set_required_valid_checks": 0.7015947591280565, + "hypha/apply/api/v1/tests/test_views.py::TestInvoiceRequiredChecksViewSet::test_staff_cant_get_set_required_valid_checks": 0.37952504598069936, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_can_render_if_no_response": 0.0160433939890936, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_field_and_help_default": 0.013977213995531201, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_multi_select_disabled": 0.012766742962412536, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_multi_select_enabled": 0.01614818803500384, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_options_included_in_choices": 0.2015343881212175, + "hypha/apply/categories/tests/test_blocks.py::TestCategoryQuestionBlock::test_supplied_field_and_help": 0.011831551091745496, + "hypha/apply/dashboard/tests/test_views.py::TestAdminDashboard::test_does_show_admin_button_to_admins": 0.460151098202914, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_can_access_dashboard_with_active": 0.48810508695896715, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_can_have_draft_titles_on_dashboard": 0.8085242119850591, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_can_not_access_other_users_active": 0.49273749103304, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_gets_invite_if_invited_to_proposal": 0.6893504880135879, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_no_edit_if_in_review": 0.46169779798947275, + "hypha/apply/dashboard/tests/test_views.py::TestApplicantDashboard::test_no_invite_if_can_edit": 0.44544337899424136, + "hypha/apply/dashboard/tests/test_views.py::TestReviewerDashboard::test_no_submissions_waiting_for_review": 0.8416191979777068, + "hypha/apply/dashboard/tests/test_views.py::TestReviewerDashboard::test_submission_assigned_but_not_in_external_review_status": 0.623418016009964, + "hypha/apply/dashboard/tests/test_views.py::TestReviewerDashboard::test_waiting_for_review_with_count": 0.6229068610118702, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_active_invoices_with_invoices_in_correct_state": 0.9367659710114822, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_active_invoices_with_no_project": 0.4258698859484866, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_cannot_see_submission_in_determination_when_not_lead": 1.0216007138369605, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_doesnt_show_active_invoices_when_not_mine": 0.5789189980132505, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_doesnt_show_active_invoices_with_none": 0.6730840222444385, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_doest_show_active_invoices_when_paid_or_declined": 0.7041356669506058, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_staff_can_see_projects_awaiting_review_stats_or_table": 0.5452895199414343, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_waiting_for_review_after_agreement_is_empty": 0.5609762258827686, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboard::test_waiting_for_review_with_count": 0.54941467999015, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboardWithWagtailAdminAccess::test_does_show_admin_button_to_staff_with_wagtail_admin_access": 0.508112033130601, + "hypha/apply/dashboard/tests/test_views.py::TestStaffDashboardWithoutWagtailAdminAccess::test_doesnt_show_admin_button_to_staff_without_wagtail_admin_access": 0.4526717240223661, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_determination_block_required": 0.5251833196962252, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_field_label_required": 0.6638867929577827, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_form_creation": 0.4239172339439392, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_message_block_required": 0.47825158503837883, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_name_field_required": 0.6516735840123147, + "hypha/apply/determinations/tests/test_admin_views.py::TestCreateDeterminationFormView::test_send_notice_block_required": 0.4366908650845289, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_can_submit_batch_determination": 1.2736843990860507, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_can_submit_batch_determination_more_info_comment": 1.2661831279983744, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_cant_access_without_action": 0.9533544619334862, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_cant_access_without_submissions": 0.551061196019873, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_message_created_if_determination_exists": 1.0795117189409211, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_sets_next_on_redirect": 0.07480740512255579, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_success_if_no_next": 0.020745735033415258, + "hypha/apply/determinations/tests/test_views.py::BatchDeterminationTestCase::test_success_redirects_if_exists": 0.016076302039436996, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_can_access_form_if_lead": 0.6213315727654845, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_can_edit_draft_determination": 0.9626210620626807, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_can_edit_draft_determination_if_not_lead": 0.7668036000104621, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_can_edit_draft_determination_if_not_lead_with_projects": 1.0500370389781892, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_can_progress_stage_via_determination": 0.8526370259933174, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_cant_access_wrong_status": 0.7364637630525976, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_cant_edit_submitted_more_info": 0.39777217304799706, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_cant_resubmit_determination": 0.6683531820308417, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_disabling_project_auto_creation_stops_projects_being_created": 0.6734441830776632, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_disabling_projects_ignores_auto_creation_setting": 0.7360488990088925, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_first_stage_accepted_determination_does_not_create_project": 0.6981060160323977, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_first_stage_rejected_determination_does_not_create_project": 0.9764845409663394, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_second_stage_accepted_determination_creates_project": 0.9202357520116493, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_second_stage_rejected_determination_does_not_create_project": 0.6766827899264172, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_sends_message_if_requires_more_info": 0.9384411592036486, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_single_stage_accepted_determination_creates_project": 0.7679470800794661, + "hypha/apply/determinations/tests/test_views.py::DeterminationFormTestCase::test_single_stage_rejected_determination_does_not_create_project": 0.908245756989345, + "hypha/apply/determinations/tests/test_views.py::EditDeterminationFormTestCase::test_can_edit_determination": 0.7629379399586469, + "hypha/apply/determinations/tests/test_views.py::StaffDeterminationsTestCase::test_can_access_determination": 0.6321309190243483, + "hypha/apply/determinations/tests/test_views.py::StaffDeterminationsTestCase::test_lead_can_access_determination": 0.4641415950609371, + "hypha/apply/determinations/tests/test_views.py::UserDeterminationFormTestCase::test_cant_access_form": 0.4307847418822348, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_active": 0.10652599402237684, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_annotated": 0.052583195036277175, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_by_lead": 0.15019758406560868, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_can_get": 0.04870839894283563, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_closed": 0.04820833611302078, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_inactive": 0.08073083497583866, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_new": 0.045645472942851484, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_no_submissions_not_either": 0.05234241997823119, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_open": 0.049059838987886906, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_with_determined": 0.08084802015218884, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForLab::test_with_progress": 0.08398468396626413, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_active": 0.14097904600203037, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_annotated": 0.14405137405265123, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_by_lead": 0.17558610416017473, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_can_get": 0.08954875299241394, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_closed": 0.08524642500560731, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_inactive": 0.12201388506218791, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_new": 0.09881094086449593, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_no_submissions_not_either": 0.09351561299990863, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_open": 0.08286783588118851, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_with_determined": 0.11782722698990256, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestForRound::test_with_progress": 0.14284860296174884, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestRoundsAndLabsManager::test_cant_get_fund": 0.22358810913283378, + "hypha/apply/funds/tests/models/test_roundsandlabs.py::TestRoundsAndLabsManager::test_doesnt_confuse_lab_and_round": 0.26790409989189357, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_can_save_multiple_forms_stage_two": 0.09826271806377918, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_can_save_two_forms": 0.0588990020332858, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_does_validates_without_project_approval_form": 0.08517094107810408, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_doesnt_validates_with_multiple_external_review_form": 0.050910893944092095, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_doesnt_validates_with_multiple_project_approval_form": 0.09632290608715266, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_doesnt_validates_with_no_form": 0.020714152953587472, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_doesnt_validates_with_two_first_stage_forms_in_two_stage": 0.047138361958786845, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_doesnt_validates_with_two_forms_one_stage": 0.04533360106870532, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_validate_external_review_form": 0.04005948407575488, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_validate_project_approval_form": 0.03224207693710923, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_validates_with_one_form_one_stage": 0.03323426004499197, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_validates_with_one_form_one_stage_with_deleted": 0.04186874721199274, + "hypha/apply/funds/tests/test_admin_form.py::TestWorkflowFormAdminForm::test_validates_without_external_review_form": 0.031658006948418915, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_email_block_required": 0.5286355640273541, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_field_label_required": 0.5122495839605108, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_form_creation": 0.3170673019485548, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_full_name_block_required": 0.5105675020022318, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_name_field_required": 0.8131821659626439, + "hypha/apply/funds/tests/test_admin_views.py::TestCreateApplicationFormView::test_title_block_required": 0.8401487240334973, + "hypha/apply/funds/tests/test_admin_views.py::TestFundCreationView::test_can_create_fund": 0.5739299050765112, + "hypha/apply/funds/tests/test_admin_views.py::TestFundCreationView::test_can_create_fund_with_external_review_form": 0.6273964809952304, + "hypha/apply/funds/tests/test_admin_views.py::TestFundCreationView::test_can_create_multi_phase_fund": 0.6619465471012518, + "hypha/apply/funds/tests/test_admin_views.py::TestFundCreationView::test_can_create_multi_phase_fund_reuse_forms": 0.679300295189023, + "hypha/apply/funds/tests/test_admin_views.py::TestFundCreationView::test_can_create_multiple_forms_second_stage_in_fund": 0.9959433489711955, + "hypha/apply/funds/tests/test_admin_views.py::TestRoundIndexView::test_application_links": 0.5094340230571106, + "hypha/apply/funds/tests/test_admin_views.py::TestRoundIndexView::test_number_of_rounds": 0.35811446292791516, + "hypha/apply/funds/tests/test_admin_views.py::TestRoundIndexView::test_review_form_links": 0.5379039820982143, + "hypha/apply/funds/tests/test_forms.py::TestReviewerFormQueries::test_queries_existing_reviews": 0.20911988895386457, + "hypha/apply/funds/tests/test_forms.py::TestReviewerFormQueries::test_queries_init_and_render": 0.2320235719671473, + "hypha/apply/funds/tests/test_forms.py::TestReviewerFormQueries::test_queries_reviewers_swap": 0.21947234903927892, + "hypha/apply/funds/tests/test_forms.py::TestReviewerFormQueries::test_queries_roles_swap": 0.18748166400473565, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_can_get_draft_data": 0.1420914160553366, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_can_get_ordered_qs": 0.14399114705156535, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_can_get_required_block_names": 0.11887474416289479, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_can_get_reverse_ordered_qs": 0.1475853780284524, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_choices_added_for_search": 0.1097167229745537, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_correct_file_path_generated": 0.10767205699812621, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_create_revision_on_create": 0.10853807383682579, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_create_revision_on_data_change": 0.12215548404492438, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_dont_create_revision_on_data_same": 0.11924651102162898, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_draft_updated": 0.12410240387544036, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_file_gets_uploaded": 0.12637465505395085, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_in_final_stage": 0.5277657370315865, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_is_draft_property": 0.12469567300286144, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_number_not_in_search": 0.1087154820561409, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_richtext_in_char_is_removed_for_search": 0.1051681520184502, + "hypha/apply/funds/tests/test_models.py::TestApplicationSubmission::test_richtext_is_removed_for_search": 0.12006675591692328, + "hypha/apply/funds/tests/test_models.py::TestAssignedReviewersQuerySet::test_reviewed": 0.15860184689518064, + "hypha/apply/funds/tests/test_models.py::TestAssignedReviewersQuerySet::test_reviewed_with_review_order": 0.13804921403061599, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_assigned_but_not_reviewed": 0.18776763090863824, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_disagree_review_is_maybe": 0.18630601302720606, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_dont_double_count_review_and_opinion": 0.1829172350699082, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_opinionated_slash_confused_reviewer": 0.18661332491319627, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_review_outcome": 0.16052082204259932, + "hypha/apply/funds/tests/test_models.py::TestForTableQueryset::test_submissions_dont_conflict": 0.32602594792842865, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_associated_if_another_user_exists": 0.4518083350267261, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_associated_if_logged_in": 0.25291523698251694, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_associated_if_not_new": 0.34784621407743543, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_can_submit_if_blank_user_data_even_if_logged_in": 0.19069141114596277, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_can_submit_if_new": 0.26127723697572947, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_doesnt_mess_with_name": 0.23988144809845835, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_email_sent_to_user_on_submission_fund": 0.24870156310498714, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_email_sent_to_user_on_submission_lab": 0.24713811092078686, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_valid_email": 0.4612613540375605, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_workflow_and_draft": 0.4421324309660122, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_workflow_and_draft_lab": 0.24033179809339345, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_workflow_and_status_assigned": 0.25928442599251866, + "hypha/apply/funds/tests/test_models.py::TestFormSubmission::test_workflow_and_status_assigned_lab": 0.24038506601937115, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_can_access_workflow_class": 0.05290982301812619, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_can_not_be_open_with_draft_round": 0.10011202516034245, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_closed_round": 0.0793885817984119, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_multiple_open_rounds": 0.12171365309040993, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_no_open_rounds": 0.0340473591350019, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_no_round_exists": 0.03444797091651708, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_normal_round": 0.08097213413566351, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_open_ended_round": 0.09527328610420227, + "hypha/apply/funds/tests/test_models.py::TestFundModel::test_round_not_open": 0.09459783090278506, + "hypha/apply/funds/tests/test_models.py::TestReminderModel::test_can_save_reminder": 0.1853782287798822, + "hypha/apply/funds/tests/test_models.py::TestReminderModel::test_check_default_action": 0.12313504097983241, + "hypha/apply/funds/tests/test_models.py::TestReminderModel::test_reminder_action_message": 0.11352295090910047, + "hypha/apply/funds/tests/test_models.py::TestRequestForPartners::test_form_when_round": 0.4642953588627279, + "hypha/apply/funds/tests/test_models.py::TestRequestForPartners::test_message_when_no_round": 0.09299721289426088, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_can_create_without_end_date": 0.09416372911073267, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_can_not_create_with_other_open_end_date": 0.09706766484305263, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_can_not_overlap_clean": 0.09947319910861552, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_can_not_overlap_with_normal_round": 0.1081628599204123, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_end_before_start": 0.05219169904012233, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_end_overlaps": 0.10839177900925279, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_inside_overlaps": 0.0952127119526267, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_normal_start_end_doesnt_error": 0.07400335092097521, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_other_fund_not_impacting": 0.16855361894704401, + "hypha/apply/funds/tests/test_models.py::TestRoundModelDates::test_start_overlaps": 0.1020595709560439, + "hypha/apply/funds/tests/test_models.py::TestRoundModelWorkflowAndForms::test_can_change_round_form_not_fund": 0.15314241300802678, + "hypha/apply/funds/tests/test_models.py::TestRoundModelWorkflowAndForms::test_forms_are_copied_to_new_rounds": 0.08499814104288816, + "hypha/apply/funds/tests/test_models.py::TestRoundModelWorkflowAndForms::test_workflow_is_copied_to_new_rounds": 0.08613085409160703, + "hypha/apply/funds/tests/test_models.py::TestSubmissionRenderMethods::test_file_private_url_included": 0.18265878001693636, + "hypha/apply/funds/tests/test_models.py::TestSubmissionRenderMethods::test_named_blocks_dont_break_if_no_response": 0.10846968798432499, + "hypha/apply/funds/tests/test_models.py::TestSubmissionRenderMethods::test_named_blocks_not_included_in_answers": 0.12440360488835722, + "hypha/apply/funds/tests/test_models.py::TestSubmissionRenderMethods::test_normal_answers_included_in_answers": 0.14297773502767086, + "hypha/apply/funds/tests/test_models.py::TestSubmissionRenderMethods::test_paragraph_not_rendered_in_answers": 0.14042997802607715, + "hypha/apply/funds/tests/test_tags.py::TestTemplateTags::test_markdown_tags": 0.010531893000006676, + "hypha/apply/funds/tests/test_tags.py::TestTemplateTags::test_submission_tags": 0.1768154049059376, + "hypha/apply/funds/tests/test_views.py::TestAnonSubmissionFileView::test_anonymous_can_not_access": 0.6296572480350733, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_can_edit_own_submission": 0.7914725510636345, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_can_see_view_determination_primary_action": 1.196858605952002, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_can_submit_submission": 0.4694516028976068, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_can_view_own_submission": 0.3405881989747286, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_edit_other_submission": 0.40438652399461716, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_edit_submission_incorrect_state": 0.3816199090797454, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_screen_submission": 0.3987014361191541, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_add_determination_primary_action": 1.4143199819372967, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_assign_reviewers_primary_action": 0.4904440980171785, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_assign_reviewers_secondary_action": 0.5425260209012777, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_create_review_primary_action": 1.0861184102250263, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_screening_status_block": 0.39311358402483165, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_see_view_determination_primary_action": 1.2075178279774264, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_cant_view_others_submission": 0.383101976942271, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_get_congratulations_draft_proposal": 0.3268961040303111, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_get_edit_link_when_editable": 0.531977251986973, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_gets_draft_on_edit_submission": 0.7594075279776007, + "hypha/apply/funds/tests/test_views.py::TestApplicantSubmissionView::test_sees_latest_draft_if_it_exists": 0.8293350640451536, + "hypha/apply/funds/tests/test_views.py::TestReviewerLeaderboard::test_applicant_cannot_access_reviewer_leaderboard": 0.2050200110534206, + "hypha/apply/funds/tests/test_views.py::TestReviewerLeaderboard::test_community_reviewer_cannot_access_reviewer_leaderboard": 0.18554920994210988, + "hypha/apply/funds/tests/test_views.py::TestReviewerLeaderboard::test_partner_cannot_access_reviewer_leaderboard": 0.17636620299890637, + "hypha/apply/funds/tests/test_views.py::TestReviewerLeaderboard::test_reviewer_cannot_access_leader_board": 0.22104592400137335, + "hypha/apply/funds/tests/test_views.py::TestReviewerLeaderboard::test_staff_can_access_leaderboard": 0.3850005461135879, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_access_any_submission": 0.5816024348605424, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_only_access_accepted_submission": 0.9169401408871636, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_only_access_assigned_submission": 1.0053202860290185, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_only_access_external_review_or_higher_submission": 1.0392576811136678, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_only_access_reviewed_submission": 0.5753041340503842, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_see_create_review_primary_action": 0.861253145034425, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_can_see_view_determination_primary_action": 0.8769737929105759, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_access_dismissed_submission": 0.7787366661941633, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_see_add_determination_primary_action": 1.1717351250117645, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_see_assign_reviewers_primary_action": 0.5009370028274134, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_see_assign_reviewers_secondary_action": 0.7437482851091772, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_see_create_review_primary_action": 1.9064203458838165, + "hypha/apply/funds/tests/test_views.py::TestReviewerSubmissionView::test_cant_see_view_determination_primary_action": 0.9613654720596969, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_can_add_external_reviewer_and_review_remains": 0.9785546439234167, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_can_be_made_role_and_not_duplciated": 0.7316765328869224, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_can_remove_external_reviewer_and_review_remains": 1.1006248289486393, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_add_reviewers_for_proposal": 0.8121129620121792, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_add_staff_single": 0.9942372180521488, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_change_role_reviewer_and_review_remains": 0.83880508702714, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_change_staff_single": 1.0832683750195429, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_remove_reviewers_for_proposal": 1.1954136859858409, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_can_remove_some_reviewers_for_proposal": 0.877995576011017, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_lead_cant_add_reviewers_single": 0.9970586248673499, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_staff_cant_add_reviewers_proposal": 0.7640210330719128, + "hypha/apply/funds/tests/test_views.py::TestReviewersUpdateView::test_staff_cant_remove_reviewers_proposal": 0.9938370459713042, + "hypha/apply/funds/tests/test_views.py::TestRevisionCompare::test_renders_with_all_the_diffs": 0.7512246010592207, + "hypha/apply/funds/tests/test_views.py::TestRevisionList::test_get_in_correct_order": 0.6879912139847875, + "hypha/apply/funds/tests/test_views.py::TestRevisionList::test_list_doesnt_include_draft": 0.4683208760106936, + "hypha/apply/funds/tests/test_views.py::TestRevisionsView::test_create_revisions_on_submit": 0.7313759370008484, + "hypha/apply/funds/tests/test_views.py::TestRevisionsView::test_dont_update_live_revision_on_save": 0.6487180250696838, + "hypha/apply/funds/tests/test_views.py::TestRevisionsView::test_existing_draft_edit_and_submit": 0.8404211078304797, + "hypha/apply/funds/tests/test_views.py::TestStaffReminderDeleteView::test_confirm_message": 0.47198428108822554, + "hypha/apply/funds/tests/test_views.py::TestStaffReminderDeleteView::test_has_access": 0.38447169109713286, + "hypha/apply/funds/tests/test_views.py::TestStaffSealedView::test_cant_post_to_sealed": 0.4991134009324014, + "hypha/apply/funds/tests/test_views.py::TestStaffSealedView::test_non_sealed_redirected_away": 0.8054685919778422, + "hypha/apply/funds/tests/test_views.py::TestStaffSealedView::test_non_sealed_unaffected": 0.6239082252141088, + "hypha/apply/funds/tests/test_views.py::TestStaffSealedView::test_redirected_to_sealed": 0.3766659030225128, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionFileView::test_staff_can_access": 0.36255370103754103, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_applicant_can_see_application_draft_status": 0.2830586179625243, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_access_edit": 0.5369016870390624, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_access_edit_button": 0.7821401208639145, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_create_project": 0.5485777899157256, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_edit_submission": 0.6246865340508521, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_progress_phase": 1.006563106086105, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_screen_submission": 0.6333226229762658, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_see_add_determination_primary_action": 1.6394604078959674, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_see_assign_reviewers_primary_action": 2.670237011043355, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_see_assign_reviewers_secondary_action": 1.8630317609058693, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_see_create_review_primary_action": 2.264942275127396, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_see_view_determination_primary_action": 1.6167583540081978, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_view_a_lab_submission": 0.6666481079300866, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_view_a_submission": 0.7936550640733913, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_can_view_submission_screening_block": 0.9312252250965685, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_access_edit_button_when_applicant_editing": 0.6685942868934944, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_progress_stage_if_not_lead": 0.5120577239431441, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_see_add_determination_primary_action": 2.347468430059962, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_see_application_draft_status": 0.15850294393021613, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_see_assign_reviewers_primary_action": 1.6900163660757244, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_see_create_review_primary_action": 3.3677778190467507, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_see_view_determination_primary_action": 1.7459088461473584, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_cant_view_submission_screening_block": 0.5134514790261164, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_new_form_after_progress": 0.17116713302675635, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_not_included_fields_render": 0.6385527200764045, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_not_redirected_if_determination_submitted": 0.9550645488779992, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_not_redirected_if_wrong_determination_selected": 0.6900897740852088, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_previous_and_next_appears_on_page": 1.206456402898766, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_redirected_to_determination": 0.5156363249989226, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_screen_application_primary_action_is_displayed": 0.639258679933846, + "hypha/apply/funds/tests/test_views.py::TestStaffSubmissionView::test_screen_application_primary_action_is_not_displayed": 0.8485079121310264, + "hypha/apply/funds/tests/test_views.py::TestSubmissionDetailSimplifiedView::test_project_required": 0.2750601989682764, + "hypha/apply/funds/tests/test_views.py::TestSubmissionDetailSimplifiedView::test_staff_only": 0.13851241895463318, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSealedView::test_can_post_to_sealed": 0.7829546919092536, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSealedView::test_can_view_multiple_sealed": 1.5147871481021866, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSealedView::test_not_asked_again": 1.3850581898586825, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSealedView::test_peeking_is_logged": 0.7762143348809332, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSealedView::test_redirected_to_sealed": 0.4272566210711375, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSubmissionView::test_can_screen_applications_in_final_status": 1.3579812909010798, + "hypha/apply/funds/tests/test_views.py::TestSuperUserSubmissionView::test_can_screen_submission": 0.6175744731444865, + "hypha/apply/funds/tests/test_views.py::TestUpdateReviewersMixin::test_submission_transition_all_reviewer_roles_not_assigned": 1.1852126080775633, + "hypha/apply/funds/tests/test_views.py::TestUpdateReviewersMixin::test_submission_transition_to_internal_review": 0.9091847010422498, + "hypha/apply/funds/tests/test_views.py::TestUpdateReviewersMixin::test_submission_transition_to_proposal_internal_review": 1.1738454579608515, + "hypha/apply/funds/tests/test_views.py::TestUserReminderDeleteView::test_doesnt_has_access": 0.4281871219864115, + "hypha/apply/funds/tests/test_views.py::TestUserSubmissionFileView::test_owner_can_access": 0.39823745703324676, + "hypha/apply/funds/tests/test_views.py::TestUserSubmissionFileView::test_user_can_not_access": 0.3281794460490346, + "hypha/apply/funds/tests/views/test_batch_progress.py::ApplicantTestCase::test_cant_access_page_to_page": 0.3253829210298136, + "hypha/apply/funds/tests/views/test_batch_progress.py::ReivewersTestCase::test_cant_post_to_page": 0.3151595410890877, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_can_progress_application": 0.7361611721571535, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_can_progress_different_states": 1.0627045470755547, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_can_progress_multiple_applications": 1.0476619130931795, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_can_progress_one_in_mixed_state": 0.7532017551129684, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_cant_progress_in_incorrect_state": 0.592977988999337, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_determine_redirects": 0.7276412360370159, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_messenger_not_called_with_failed": 0.6277280949288979, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_messenger_with_submission_in_review": 0.6568020611302927, + "hypha/apply/funds/tests/views/test_batch_progress.py::StaffTestCase::test_mixed_determine_notifies": 0.6553811100311577, + "hypha/apply/funds/tests/views/test_batch_reviewers.py::StaffTestCase::test_can_assign_role_reviewers": 1.5949063459411263, + "hypha/apply/funds/tests/views/test_batch_reviewers.py::StaffTestCase::test_can_reassign_from_other_role_reviewers": 0.7375112149165943, + "hypha/apply/funds/tests/views/test_batch_reviewers.py::StaffTestCase::test_can_reassign_role_reviewers": 0.6209246688522398, + "hypha/apply/funds/tests/views/test_batch_reviewers.py::StaffTestCase::test_doesnt_remove_if_already_reviewed": 0.8599522950826213, + "hypha/apply/funds/tests/views/test_rounds.py::TestApplicantRoundPage::test_cant_access_page": 0.24865159019827843, + "hypha/apply/funds/tests/views/test_rounds.py::TestApplicantSubmissionByRound::test_cant_access_lab_page": 0.45252792502287775, + "hypha/apply/funds/tests/views/test_rounds.py::TestApplicantSubmissionByRound::test_cant_access_non_existing_page": 0.20492329203989357, + "hypha/apply/funds/tests/views/test_rounds.py::TestApplicantSubmissionByRound::test_cant_access_normal_page": 0.29366082907654345, + "hypha/apply/funds/tests/views/test_rounds.py::TestApplicantSubmissionByRound::test_cant_access_round_page": 0.2874962519854307, + "hypha/apply/funds/tests/views/test_rounds.py::TestReviewerAllRoundPage::test_cant_access_page": 0.2241239110007882, + "hypha/apply/funds/tests/views/test_rounds.py::TestStaffRoundPage::test_can_access_page": 0.39183734206017107, + "hypha/apply/funds/tests/views/test_rounds.py::TestStaffSubmissionByRound::test_can_access_lab_page": 0.5089221890084445, + "hypha/apply/funds/tests/views/test_rounds.py::TestStaffSubmissionByRound::test_can_access_round_page": 0.7264303049305454, + "hypha/apply/funds/tests/views/test_rounds.py::TestStaffSubmissionByRound::test_cant_access_non_existing_page": 0.22195484093390405, + "hypha/apply/funds/tests/views/test_rounds.py::TestStaffSubmissionByRound::test_cant_access_normal_page": 0.29386582993902266, + "hypha/apply/projects/tests/test_commands.py::TestNotifyReportDue::test_dont_notify_already_notified": 0.22560193086974323, + "hypha/apply/projects/tests/test_commands.py::TestNotifyReportDue::test_dont_notify_project_complete": 0.13328418508172035, + "hypha/apply/projects/tests/test_commands.py::TestNotifyReportDue::test_dont_notify_project_not_in_progress": 0.15103830606676638, + "hypha/apply/projects/tests/test_commands.py::TestNotifyReportDue::test_dont_notify_report_due_in_7_days_already_submitted": 0.14578018407337368, + "hypha/apply/projects/tests/test_commands.py::TestNotifyReportDue::test_notify_report_due_in_7_days": 0.1712552800308913, + "hypha/apply/projects/tests/test_files.py::TestFlatten::test_no_items": 0.008549418882466853, + "hypha/apply/projects/tests/test_files.py::TestFlatten::test_one_level_of_items": 0.0016137801576405764, + "hypha/apply/projects/tests/test_files.py::TestFlatten::test_three_levels_of_items": 0.004035776015371084, + "hypha/apply/projects/tests/test_files.py::TestFlatten::test_two_levels_of_items": 0.003385903895832598, + "hypha/apply/projects/tests/test_files.py::TestGetFiles::test_get_files": 0.14864466898143291, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_approved_by_finance1_status": 0.15270694997161627, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_approved_by_finance1_status_with_extended_flow": 0.136794007034041, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_approved_by_staff_status": 0.13340481091290712, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_changes_requested_by_finance1_status": 0.1372233690926805, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_changes_requested_by_finance2_status": 0.15037802804727107, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_changes_requested_by_staff_status": 0.15722019493114203, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_resubmitted_status": 0.1274491868680343, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance1_choices_with_submitted_status": 0.13058801577426493, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_approved_by_finance1_status": 0.132658117916435, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_approved_by_staff_status": 0.13084527594037354, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_changes_requested_by_finance1_status": 0.12978593003936112, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_changes_requested_by_finance2_status": 0.1284081881167367, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_changes_requested_by_staff_status": 0.1438440839992836, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_resubmitted_status": 0.13915311906021088, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_finance2_choices_with_submitted_status": 0.14713190007023513, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_approved_by_finance1_status": 0.137936083949171, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_approved_by_staff_status": 0.13240817887708545, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_changes_requested_by_finance1_status": 0.13545984507072717, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_changes_requested_by_finance2_status": 0.12540254392661154, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_changes_requested_by_staff_status": 0.13773289788514376, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_resubmitted_status": 0.12823026906698942, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_staff_choices_with_submitted_status": 0.12899377604480833, + "hypha/apply/projects/tests/test_forms.py::TestChangeInvoiceStatusFormForm::test_valid_checks_required_for_approved_by_finance1": 0.12711624498479068, + "hypha/apply/projects/tests/test_forms.py::TestChangePAFStatusForm::test_comment_is_not_required": 0.1643570460146293, + "hypha/apply/projects/tests/test_forms.py::TestChangePAFStatusForm::test_paf_status_is_required": 0.12380111694801599, + "hypha/apply/projects/tests/test_forms.py::TestChangePAFStatusForm::test_role_is_required": 0.11987711407709867, + "hypha/apply/projects/tests/test_forms.py::TestContractUploadForm::test_applicant_can_upload_signed": 0.008119518985040486, + "hypha/apply/projects/tests/test_forms.py::TestContractUploadForm::test_applicant_cant_upload_unsigned": 0.0027437900425866246, + "hypha/apply/projects/tests/test_forms.py::TestCreateInvoiceForm::test_adding_invoice": 0.2951058839680627, + "hypha/apply/projects/tests/test_forms.py::TestCreateInvoiceForm::test_supporting_documents_not_required": 0.12310647300910205, + "hypha/apply/projects/tests/test_forms.py::TestEditInvoiceForm::test_add_new_supporting_document": 0.14866173116024584, + "hypha/apply/projects/tests/test_forms.py::TestEditInvoiceForm::test_keep_existing_supporting_document": 0.12637635902501643, + "hypha/apply/projects/tests/test_forms.py::TestEditInvoiceForm::test_remove_existing_supporting_document": 0.12828229798469692, + "hypha/apply/projects/tests/test_forms.py::TestFinalApprovalForm::test_comment_is_not_required": 0.1977370879612863, + "hypha/apply/projects/tests/test_forms.py::TestFinalApprovalForm::test_final_approval_status_is_required": 0.12189749395474792, + "hypha/apply/projects/tests/test_forms.py::TestProjectApprovalForm::test_updating_fields_sets_changed_flag": 0.25972879282198846, + "hypha/apply/projects/tests/test_forms.py::TestSelectDocumentForm::test_copying_files": 0.18709063006099313, + "hypha/apply/projects/tests/test_forms.py::TestStaffContractUploadForm::test_staff_can_upload_signed": 0.00997743511106819, + "hypha/apply/projects/tests/test_forms.py::TestStaffContractUploadForm::test_staff_can_upload_unsigned": 0.0028492070268839598, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_applicant_can_edit_invoice": 0.42485846497584134, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_applicant_cant_complete_required_checks": 0.282231263932772, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_applicant_cant_edit_deliverables": 1.2684179489733651, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_applicant_cant_edit_invoice": 0.9780825930647552, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_applicant_cant_view_required_checks": 0.1372557459399104, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_can_user_delete_from_submitted": 0.12928246590308845, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_deliverables_total_amount": 0.2525601111119613, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_change_status": 0.4211599510163069, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_change_status_with_extended_flow": 0.2713805779349059, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_complete_required_checks": 0.16601421509403735, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_complete_required_checks_with_extended_flow": 0.27570605906657875, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_edit_deliverables": 0.12719907786231488, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_edit_deliverables_with_extended_flow": 0.2583281940314919, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_can_view_required_checks": 0.12532500992529094, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_cant_change_status": 1.0879938550060615, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_cant_change_status_with_extended_flow": 1.046244525932707, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance1_cant_edit_deliverables": 1.0614654229721054, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_can_change_status_with_extended_flow": 0.3857403448782861, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_can_edit_deliverables": 0.1329708140110597, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_can_view_required_checks": 0.14241369592491537, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_cant_change_status": 1.0351933290949091, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_cant_complete_required_checks": 0.2778368811123073, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_finance2_cant_edit_deliverables": 1.1568202039925382, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_invoice_status_user_choices": 0.02437476988416165, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_paid_value_overrides_paid_value": 0.25310927315149456, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_paid_value_used_when_no_paid_value": 0.12573332095053047, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_can_change_status": 0.5327651881380007, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_can_delete_from_submitted": 0.13441777194384485, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_can_edit_deliverables": 0.3964439349947497, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_can_edit_invoice": 0.4052417379571125, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_change_status": 0.856793730170466, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_complete_required_checks": 0.4599638330982998, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_delete_from_changes_requested": 0.13800621510017663, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_delete_from_declined": 0.13172009808477014, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_delete_from_paid": 0.13584700098726898, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_delete_from_resubmitted": 0.14992071699816734, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_edit_deliverables": 1.0969310709042475, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_edit_invoice": 1.3701698150252923, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_staff_cant_view_required_checks": 0.13448819878976792, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_user_cant_delete_from_changes_requested": 0.13694220909383148, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_user_cant_delete_from_declined": 0.13312591705471277, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_user_cant_delete_from_paid": 0.15465202508494258, + "hypha/apply/projects/tests/test_models.py::TestInvoiceModel::test_user_cant_delete_from_resubmitted": 0.13567989692091942, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_approved_by_finance_1": 0.27215106901712716, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_approved_by_staff": 0.14295619807671756, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_for_finance_1": 0.415096886921674, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_for_finance_1_with_extended_flow": 0.421118556172587, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_get_totals": 0.3038688158849254, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_get_totals_no_value": 0.003383014933206141, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_in_progress": 0.5873765950091183, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_in_progress_with_extended_workflow": 0.5717894799308851, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_not_rejected": 0.41026826796587557, + "hypha/apply/projects/tests/test_models.py::TestInvoiceQueryset::test_rejected": 0.28168241400271654, + "hypha/apply/projects/tests/test_models.py::TestProjectModel::test_create_from_submission": 0.12969996000174433, + "hypha/apply/projects/tests/test_models.py::TestProjectModel::test_get_missing_document_categories_with_enough_documents": 0.13477761507965624, + "hypha/apply/projects/tests/test_models.py::TestProjectModel::test_get_missing_document_categories_with_no_documents": 0.12221019400749356, + "hypha/apply/projects/tests/test_models.py::TestProjectModel::test_get_missing_document_categories_with_some_documents": 0.14327695593237877, + "hypha/apply/projects/tests/test_models.py::TestReport::test_late_if_two_weeks_behind": 0.17871011595707387, + "hypha/apply/projects/tests/test_models.py::TestReport::test_not_late_if_one_ahead": 0.16092403302900493, + "hypha/apply/projects/tests/test_models.py::TestReport::test_not_late_if_two_ahead_but_one_in_future": 0.133229362196289, + "hypha/apply/projects/tests/test_models.py::TestReport::test_queryset_done_doesnt_includes_draft": 0.13774807110894471, + "hypha/apply/projects/tests/test_models.py::TestReport::test_queryset_done_doesnt_includes_to_do": 0.13898560893721879, + "hypha/apply/projects/tests/test_models.py::TestReport::test_queryset_done_includes_skipped": 0.12932435504626483, + "hypha/apply/projects/tests/test_models.py::TestReport::test_queryset_done_includes_submitted": 0.13797308702487499, + "hypha/apply/projects/tests/test_models.py::TestReport::test_start_date": 0.30404960410669446, + "hypha/apply/projects/tests/test_models.py::TestReport::test_start_date_with_submitted": 0.282231456018053, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_current_due_report_gets_active_report": 0.1735195420915261, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_last_report_gets_report_in_past": 0.14760696107987314, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_last_report_gets_skipped": 0.1375174350105226, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_last_report_gets_submitted_report_in_past": 0.13603021414019167, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_months_always_relative": 0.1372252949513495, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_next_date_month_from_now": 0.13751547201536596, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_next_date_week_from_now": 0.13320641999598593, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_no_report_creates_report": 0.13837955007329583, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_no_report_creates_report_if_current_skipped": 0.2680634540738538, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_no_report_creates_report_not_in_past": 0.13827492797281593, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_no_report_schedule_in_future_creates_report": 0.13886283396277577, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due": 0.1562984661431983, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_has_drafts": 0.14275729295331985, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_no_future": 0.13715198810677975, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_no_skipped": 0.13677383807953447, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_no_submitted": 0.13860803982242942, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_report_creates_report": 0.14674514392390847, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_past_due_report_future_schedule_creates_report": 0.15261962916702032, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_submitted_report_unaffected": 0.16314505494665354, + "hypha/apply/projects/tests/test_models.py::TestReportConfig::test_today_schedule_gets_report_today": 0.1595492799533531, + "hypha/apply/projects/tests/test_settings.py::TestProjectFeatureFlag::test_urls_404_when_turned_off": 0.38984542211983353, + "hypha/apply/projects/tests/test_templatetags.py::TestContractTools::test_staff_can_upload_after_state_leaves_committed": 0.6908778550568968, + "hypha/apply/projects/tests/test_templatetags.py::TestContractTools::test_user_can_only_upload_during_contracting": 0.7198443550150841, + "hypha/apply/projects/tests/test_templatetags.py::TestContractTools::test_user_cannot_upload_first_contract": 0.13240899005904794, + "hypha/apply/projects/tests/test_templatetags.py::TestContractTools::test_user_cannot_upload_when_latest_is_approved": 0.14973871200345457, + "hypha/apply/projects/tests/test_templatetags.py::TestContractTools::test_user_upload_happy_path": 0.39809146407060325, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_applicant_and_staff_can_edit_in_resubmitted": 0.19858869188465178, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_applicant_and_staff_can_edit_in_submitted": 0.16858650103677064, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_applicant_and_staff_cant_edit_in_decline": 0.17937134997919202, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_applicant_and_staff_cant_edit_in_paid": 0.1587705098791048, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_applicant_can_edit_in_changes_requested": 0.13585251104086637, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_can_change_status_from_changes_requested": 0.1443862080341205, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_can_change_status_from_resubmitted": 0.13981095585040748, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_can_change_status_from_submitted": 0.14149109204299748, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_can_delete_from_submitted": 0.14256884902715683, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_change_status_from_declined": 0.1358012508135289, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_change_status_from_paid": 0.1439785559196025, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_delete_from_changes_requested": 0.14293108298443258, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_delete_from_declined": 0.15557902213186026, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_delete_from_paid": 0.17094585404265672, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_delete_from_resubmitted": 0.1529311869526282, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_staff_cant_edit_in_changes_requested": 0.15405606315471232, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_can_delete_from_changes_requested": 0.15483364299871027, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_can_delete_from_submitted": 0.15238457499071956, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_change_status_from_changes_requested": 0.1585868550464511, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_change_status_from_declined": 0.14286201319191605, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_change_status_from_paid": 0.1399191649397835, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_change_status_from_resubmitted": 0.1491789211286232, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_change_status_from_submitted": 0.16052493697497994, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_delete_from_declined": 0.1518357910681516, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_delete_from_paid": 0.1650249098893255, + "hypha/apply/projects/tests/test_templatetags.py::TestInvoiceTools::test_user_cant_delete_from_resubmitted": 0.154959135921672, + "hypha/apply/projects/tests/test_views.py::ApplicantStaffProjectPDFExport::test_cant_access": 0.4367084689438343, + "hypha/apply/projects/tests/test_views.py::TestAnonPacketView::test_anonymous_can_not_access": 0.49385395203717053, + "hypha/apply/projects/tests/test_views.py::TestApplicantChangeInoviceStatus::test_can": 0.7753010320011526, + "hypha/apply/projects/tests/test_views.py::TestApplicantChangeInoviceStatus::test_other_cant": 0.3787890161620453, + "hypha/apply/projects/tests/test_views.py::TestApplicantDetailInvoiceStatus::test_can": 0.45691101311240345, + "hypha/apply/projects/tests/test_views.py::TestApplicantDetailInvoiceStatus::test_other_cant": 0.5793144848430529, + "hypha/apply/projects/tests/test_views.py::TestApplicantEditInvoiceView::test_editing_invoice_remove_supporting_document": 0.5107032839441672, + "hypha/apply/projects/tests/test_views.py::TestApplicantEditInvoiceView::test_editing_payment_keeps_receipts": 0.4176407410996035, + "hypha/apply/projects/tests/test_views.py::TestApplicantInvoiceDocumentPrivateMedia::test_can_access_own": 0.391638181055896, + "hypha/apply/projects/tests/test_views.py::TestApplicantInvoiceDocumentPrivateMedia::test_cant_access_other": 0.35499557305593044, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_can_access_own_submitted_report": 0.47521938488353044, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_cant_access_other_draft_report": 0.34110681095626205, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_cant_access_other_future_report": 0.3432001309702173, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_cant_access_other_submitted_report": 0.6300514179747552, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_cant_access_own_draft_report": 0.3638702589087188, + "hypha/apply/projects/tests/test_views.py::TestApplicantReportDetail::test_cant_access_own_future_report": 0.3522614858811721, + "hypha/apply/projects/tests/test_views.py::TestApplicantSelectDocumentView::test_can_choose": 0.6217542298836634, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_cant_edit_submitted_report": 0.7426303169922903, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_cant_get_other_report": 0.34317794593516737, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_cant_submit_blank_report": 0.7585116050904617, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_cant_submit_other_report": 0.35588111786637455, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_get_own_report": 0.4046051448676735, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_save_report_draft": 0.5543417109875008, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_save_report_with_draft": 0.5906249791150913, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_submit_own_report": 0.7819763890001923, + "hypha/apply/projects/tests/test_views.py::TestApplicantSubmitReport::test_submit_private_report": 0.6390982150333002, + "hypha/apply/projects/tests/test_views.py::TestApplicantSupportingDocumentPrivateMedia::test_can_access_own": 0.38641607004683465, + "hypha/apply/projects/tests/test_views.py::TestApplicantSupportingDocumentPrivateMedia::test_cant_access_other": 0.35300018603447825, + "hypha/apply/projects/tests/test_views.py::TestApplicantUploadContractView::test_non_owner_upload_contract": 0.3848695959895849, + "hypha/apply/projects/tests/test_views.py::TestApplicantUploadContractView::test_owner_upload_contract": 0.950403835857287, + "hypha/apply/projects/tests/test_views.py::TestApproveContractView::test_approve_already_approved_contract": 1.0923513028537855, + "hypha/apply/projects/tests/test_views.py::TestApproveContractView::test_approve_unapproved_contract": 0.6505072670988739, + "hypha/apply/projects/tests/test_views.py::TestApproveContractView::test_approve_unsigned_contract": 0.5680086179636419, + "hypha/apply/projects/tests/test_views.py::TestApproveContractView::test_attempt_to_approve_non_latest": 0.7597305130911991, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_applicant_cant_update_paf_status": 0.45676757697947323, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_contracting_can_update_paf_status": 0.5943509549833834, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_finance_can_update_paf_status": 0.5195713090943173, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_reviewer_approve_paf": 0.650445767911151, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_reviewer_rejects_paf": 0.9067599350819364, + "hypha/apply/projects/tests/test_views.py::TestChangePAFStatusView::test_staff_can_update_paf_status": 0.6417498689843342, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_all_signed_and_approved_contracts_appear": 0.1542964989785105, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_all_signed_and_unapproved_returns_latest": 0.12510811898391694, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_all_unsigned_and_unapproved_returns_only_latest": 0.15810026379767805, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_mixture_of_both_latest_signed_and_approved": 0.14967550814617425, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_mixture_of_both_latest_signed_and_unapproved": 0.14759914099704474, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_mixture_of_both_latest_unsigned_and_unapproved": 0.15570502704940736, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_mixture_with_latest_signed_returns_no_unsigned": 0.1431113970465958, + "hypha/apply/projects/tests/test_views.py::TestContractsMixin::test_no_contracts_returns_nothing": 0.1436709329718724, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approval": 0.6720747749786824, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approver_cant_be_applicant": 0.5704010750632733, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approver_cant_be_approver": 0.5370798060903326, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approver_cant_be_contracting": 0.4268004880286753, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approver_cant_be_finance": 0.37216985202394426, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_approver_cant_be_staff": 0.815069894073531, + "hypha/apply/projects/tests/test_views.py::TestFinalApprovalView::test_final_rejection": 0.7576504000462592, + "hypha/apply/projects/tests/test_views.py::TestFinanceDetailInvoiceStatus::test_can": 0.7201884338865057, + "hypha/apply/projects/tests/test_views.py::TestFinanceDetailInvoiceStatus::test_wrong_project_cant": 0.5971980879548937, + "hypha/apply/projects/tests/test_views.py::TestFinanceProjectDetailView::test_has_access": 0.8880734000122175, + "hypha/apply/projects/tests/test_views.py::TestFinanceProjectDetailView::test_lab_project_renders": 0.4580642699729651, + "hypha/apply/projects/tests/test_views.py::TestProjectDetailSimplifiedView::test_staff_only": 0.17021951905917376, + "hypha/apply/projects/tests/test_views.py::TestProjectListView::test_applicants_cannot_access_project_list_page": 0.5011530149495229, + "hypha/apply/projects/tests/test_views.py::TestProjectListView::test_staff_can_access_project_list_page": 0.6216140500037, + "hypha/apply/projects/tests/test_views.py::TestProjectOverviewView::test_applicants_cannot_access": 0.566885125124827, + "hypha/apply/projects/tests/test_views.py::TestProjectOverviewView::test_staff_can_access": 0.8585498589091003, + "hypha/apply/projects/tests/test_views.py::TestRemoveDocumentView::test_remove_document": 0.7559760559815913, + "hypha/apply/projects/tests/test_views.py::TestRemoveDocumentView::test_remove_non_existent_document": 0.8208661838434637, + "hypha/apply/projects/tests/test_views.py::TestReviewerUserProjectDetailView::test_doesnt_have_access": 0.4147903328994289, + "hypha/apply/projects/tests/test_views.py::TestSendForApprovalView::test_send_for_approval_fails_when_project_is_locked": 0.16665971500333399, + "hypha/apply/projects/tests/test_views.py::TestSendForApprovalView::test_send_for_approval_fails_when_project_is_not_in_committed_state": 0.16404375794809312, + "hypha/apply/projects/tests/test_views.py::TestSendForApprovalView::test_send_for_approval_happy_path": 1.041095266933553, + "hypha/apply/projects/tests/test_views.py::TestSkipReport::test_can_skip_draft_report": 0.6566666851285845, + "hypha/apply/projects/tests/test_views.py::TestSkipReport::test_can_skip_report": 0.6698588021099567, + "hypha/apply/projects/tests/test_views.py::TestSkipReport::test_can_unskip_report": 0.6481148769380525, + "hypha/apply/projects/tests/test_views.py::TestSkipReport::test_cant_skip_current_report": 0.549269885988906, + "hypha/apply/projects/tests/test_views.py::TestSkipReport::test_cant_skip_submitted_report": 0.8447621739469469, + "hypha/apply/projects/tests/test_views.py::TestStaffChangeInvoiceStatus::test_can": 0.582930578966625, + "hypha/apply/projects/tests/test_views.py::TestStaffDetailInvoiceStatus::test_can": 0.4886735479813069, + "hypha/apply/projects/tests/test_views.py::TestStaffDetailInvoiceStatus::test_wrong_project_cant": 0.538389520952478, + "hypha/apply/projects/tests/test_views.py::TestStaffEditInvoiceView::test_editing_invoice_keeps_supprting_document": 0.5684561600210145, + "hypha/apply/projects/tests/test_views.py::TestStaffEditInvoiceView::test_editing_invoice_remove_supporting_document": 0.4391678288811818, + "hypha/apply/projects/tests/test_views.py::TestStaffInoviceDocumentPrivateMedia::test_can_access": 0.38858592393808067, + "hypha/apply/projects/tests/test_views.py::TestStaffInoviceDocumentPrivateMedia::test_cant_access_if_project_wrong": 0.6365538330283016, + "hypha/apply/projects/tests/test_views.py::TestStaffInvoiceSupportingDocumentPrivateMedia::test_can_access": 0.64426976791583, + "hypha/apply/projects/tests/test_views.py::TestStaffPacketView::test_staff_can_access": 0.40527030592784286, + "hypha/apply/projects/tests/test_views.py::TestStaffProjectDetailView::test_has_access": 0.6452779490500689, + "hypha/apply/projects/tests/test_views.py::TestStaffProjectDetailView::test_lab_project_renders": 0.5042292439611629, + "hypha/apply/projects/tests/test_views.py::TestStaffProjectPDFExport::test_can_access": 0.62907274288591, + "hypha/apply/projects/tests/test_views.py::TestStaffProjectPDFExport::test_reponse_object_is_pdf": 0.49607601994648576, + "hypha/apply/projects/tests/test_views.py::TestStaffReportDetail::test_can_access_submitted_report": 0.5040140169439837, + "hypha/apply/projects/tests/test_views.py::TestStaffReportDetail::test_cant_access_draft_report": 0.36966164701152593, + "hypha/apply/projects/tests/test_views.py::TestStaffReportDetail::test_cant_access_future_report": 0.33782663790043443, + "hypha/apply/projects/tests/test_views.py::TestStaffReportDetail::test_cant_access_skipped_report": 0.40211336710490286, + "hypha/apply/projects/tests/test_views.py::TestStaffSelectDocumentView::test_can_choose": 0.9012144049629569, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_cant_submit_blank_report": 0.5214581049513072, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_cant_submit_future_report": 0.6752803100971505, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_edit_submitted_report": 0.6336318260291591, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_get_page": 0.4766505449078977, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_resubmit_submitted_report": 0.5881605598842725, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_save_report_draft": 0.8340538350166753, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_save_report_with_draft": 0.6313900538953021, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_submit_private_report": 0.6450873310677707, + "hypha/apply/projects/tests/test_views.py::TestStaffSubmitReport::test_submit_report": 0.5972047768300399, + "hypha/apply/projects/tests/test_views.py::TestStaffUploadContractView::test_upload_contract": 0.9247381690656766, + "hypha/apply/projects/tests/test_views.py::TestStaffUploadContractView::test_upload_contract_with_signed_set_to_true": 0.6938643649918959, + "hypha/apply/projects/tests/test_views.py::TestSuperUserProjectDetailView::test_has_access": 0.6538621640065685, + "hypha/apply/projects/tests/test_views.py::TestUpdateLeadView::test_update_lead": 0.7442908859811723, + "hypha/apply/projects/tests/test_views.py::TestUpdateLeadView::test_update_lead_from_none": 0.8941778150619939, + "hypha/apply/projects/tests/test_views.py::TestUploadDocumentView::test_upload_document": 0.5964883329579607, + "hypha/apply/projects/tests/test_views.py::TestUserPacketView::test_owner_can_access": 0.3705993629992008, + "hypha/apply/projects/tests/test_views.py::TestUserPacketView::test_user_can_not_access": 0.35780361585784703, + "hypha/apply/projects/tests/test_views.py::TestUserProjectDetailView::test_doesnt_have_access": 0.4313866161974147, + "hypha/apply/projects/tests/test_views.py::TestUserProjectDetailView::test_owner_has_access": 0.7582587220240384, + "hypha/apply/review/tests/test_admin.py::TestReviewFormAdminForm::test_can_create_review_form": 0.013794161030091345, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_comments_block_required": 0.6932412760797888, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_field_label_required": 0.4367994930362329, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_form_creation": 0.2721860749879852, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_name_field_required": 0.3953014019643888, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_recommendation_block_required": 0.3679682199144736, + "hypha/apply/review/tests/test_admin_views.py::TestCreateReviewFormView::test_visibility_block_required": 0.39544568001292646, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_no_opinion_agree": 0.17556985514238477, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_no_opinion_disagree": 0.12439102283678949, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_not_all_opinion": 0.15464219101704657, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_yes_mixed_opinion": 0.12711318989749998, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_yes_opinion_agree": 0.12414777104277164, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_review_yes_opinion_disagree": 0.1248276160331443, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_reviews_maybe": 0.13107159384526312, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_reviews_mixed": 0.12501681700814515, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_reviews_no": 0.13901438703760505, + "hypha/apply/review/tests/test_models.py::TestReviewQueryset::test_reviews_yes": 0.12579553411342204, + "hypha/apply/review/tests/test_views.py::NonStaffReviewOpinionCase::test_nonstaff_cant_post_opinion_to_review": 0.40150087291840464, + "hypha/apply/review/tests/test_views.py::ReviewDetailTestCase::test_review_detail_opinion": 0.44832511304412037, + "hypha/apply/review/tests/test_views.py::ReviewDetailTestCase::test_review_detail_recommendation": 0.4039723639143631, + "hypha/apply/review/tests/test_views.py::ReviewDetailVisibilityTestCase::test_review_detail_visibility_private": 0.3961467160843313, + "hypha/apply/review/tests/test_views.py::ReviewDetailVisibilityTestCase::test_review_detail_visibility_reviewer": 0.44759353005792946, + "hypha/apply/review/tests/test_views.py::ReviewListTestCase::test_review_list_opinion": 0.4830619948916137, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_com_external_review_to_ready_for_discussion": 0.6224907650612295, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_ext_external_review_to_ready_for_discussion": 0.729867862071842, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_external_review_to_ready_for_discussion": 0.6201286800205708, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_initial_state_transition_to_internal_review": 0.975731904967688, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_internal_review_to_ready_for_discussion": 0.7160156620666385, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_proposal_discussion_to_proposal_internal_review": 0.9046106109162793, + "hypha/apply/review/tests/test_views.py::ReviewWorkFlowActionTestCase::test_submission_did_not_transition": 0.7941597428871319, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_can_access_form": 0.7675128648988903, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_can_edit_draft_review": 0.826549029094167, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_can_submit_draft_review": 0.626361076021567, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_cant_access_wrong_status": 0.30564873199909925, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_cant_resubmit_review": 0.2735483479918912, + "hypha/apply/review/tests/test_views.py::StaffReviewFormTestCase::test_revision_captured_on_review": 0.8555956629570574, + "hypha/apply/review/tests/test_views.py::StaffReviewListingTestCase::test_can_access_review_listing": 0.6415622578933835, + "hypha/apply/review/tests/test_views.py::StaffReviewListingTestCase::test_draft_reviews_dont_appear": 0.4256974591407925, + "hypha/apply/review/tests/test_views.py::StaffReviewOpinionCase::test_can_add_opinion_to_others_review": 0.7887113710166886, + "hypha/apply/review/tests/test_views.py::StaffReviewOpinionCase::test_can_see_opinion_buttons_on_others_review": 0.4885522979311645, + "hypha/apply/review/tests/test_views.py::StaffReviewOpinionCase::test_cant_see_opinion_buttons_on_self_review": 0.2938437759876251, + "hypha/apply/review/tests/test_views.py::StaffReviewOpinionCase::test_disagree_opinion_redirects_to_review_form": 0.4051592879695818, + "hypha/apply/review/tests/test_views.py::StaffReviewsTestCase::test_can_access_other_review": 0.4435669439844787, + "hypha/apply/review/tests/test_views.py::StaffReviewsTestCase::test_can_access_review": 0.41314649500418454, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_average_score_calculated": 0.8279528530547395, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_na_included_in_review_average": 1.0487051230156794, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_na_included_multiple_reviews_average": 1.0533446489134803, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_na_included_reviews_average": 0.8791075319750234, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_no_score_is_NA": 0.6211275568930432, + "hypha/apply/review/tests/test_views.py::TestReviewScore::test_score_calculated": 0.7878062629606575, + "hypha/apply/review/tests/test_views.py::UserReviewFormTestCase::test_cant_access_form": 0.3547096940455958, + "hypha/apply/stream_forms/tests.py::TestBlocks::test_blocks_decode_none": 0.006382948951795697, + "hypha/apply/users/tests/test_forms.py::TestEmailChangePasswordForm::test_can_update_slack": 0.013427424943074584, + "hypha/apply/users/tests/test_forms.py::TestEmailChangePasswordForm::test_doesnt_error_on_null_slack_field": 0.006060645915567875, + "hypha/apply/users/tests/test_forms.py::TestProfileForm::test_can_change_email": 0.020128826843574643, + "hypha/apply/users/tests/test_forms.py::TestProfileForm::test_cant_set_slack_name": 0.02465397387277335, + "hypha/apply/users/tests/test_forms.py::TestProfileForm::test_email_unique": 0.014978913008235395, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_auto_prepend_at": 0.02131349209230393, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_can_clear_slack_name": 0.009658907889388502, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_can_set_slack_name": 0.007913029985502362, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_can_set_slack_name_with_trailing_space": 0.010277200024574995, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_cant_change_email": 0.008123969077132642, + "hypha/apply/users/tests/test_forms.py::TestStaffProfileForm::test_cant_set_slack_name_with_space": 0.00823947787284851, + "hypha/apply/users/tests/test_middleware.py::TestTwoFactorAuthenticationMiddleware::test_unverified_user_can_access_allowed_urls": 0.6874574910616502, + "hypha/apply/users/tests/test_middleware.py::TestTwoFactorAuthenticationMiddleware::test_unverified_user_redirect": 0.2895652879960835, + "hypha/apply/users/tests/test_middleware.py::TestTwoFactorAuthenticationMiddleware::test_verified_user_redirect": 0.2915854750899598, + "hypha/apply/users/tests/test_oauth_access.py::TestOAuthAccess::test_oauth_not_set_up": 0.25477989099454135, + "hypha/apply/users/tests/test_oauth_access.py::TestOAuthAccess::test_oauth_page_requires_login": 0.2896213550120592, + "hypha/apply/users/tests/test_oauth_access.py::TestOAuthAccess::test_oauth_user_email_not_whitelisted": 0.25888916209805757, + "hypha/apply/users/tests/test_oauth_access.py::TestOAuthAccess::test_oauth_whitelisted_user_can_access_oauth_settings_page": 0.24436271598096937, + "hypha/apply/users/tests/test_oauth_access.py::TestOAuthAccess::test_oauth_whitelisted_user_can_see_link_to_oauth_settings_page": 0.28751384699717164, + "hypha/apply/users/tests/test_utils.py::TestActivationEmail::test_activation_email_includes_link": 0.04941813286859542, + "hypha/apply/users/tests/test_utils.py::TestGetUserByEmail::test_multiple_accounts_same_email": 0.019446760998107493, + "hypha/apply/users/tests/test_utils.py::TestGetUserByEmail::test_no_account": 0.009210666990838945, + "hypha/apply/users/tests/test_utils.py::TestGetUserByEmail::test_single_same_email": 0.00852233695331961, + "hypha/apply/users/tests/test_utils.py::TestUserAlreadyRegistered::test_case_sensitive_email": 0.014624916017055511, + "hypha/apply/users/tests/test_utils.py::TestUserAlreadyRegistered::test_no_account": 0.003325431956909597, + "hypha/apply/users/tests/test_views.py::TestBecome::test_staff_cannot_become_superuser": 0.2333230598596856, + "hypha/apply/users/tests/test_views.py::TestBecome::test_staff_cannot_become_user": 1.0367736670887098, + "hypha/apply/users/tests/test_views.py::TestBecome::test_superuser_can_become_staff": 0.44675848993938416, + "hypha/apply/users/tests/test_views.py::TestBecome::test_superuser_cannot_become_superuser": 0.18766793608665466, + "hypha/apply/users/tests/test_views.py::TestBecome::test_user_cannot_become_other_user": 0.22689133998937905, + "hypha/apply/users/tests/test_views.py::TestBecome::test_user_cannot_become_staff": 0.2273467449704185, + "hypha/apply/users/tests/test_views.py::TestBecome::test_user_cannot_become_superuser": 0.1900449290405959, + "hypha/apply/users/tests/test_views.py::TestPasswordReset::test_recieves_email": 0.28297980804927647, + "hypha/apply/users/tests/test_views.py::TestProfileView::test_cant_acces_if_not_logged_in": 0.5370921969879419, + "hypha/apply/users/tests/test_views.py::TestProfileView::test_cant_set_slack_name": 0.23915742384269834, + "hypha/apply/users/tests/test_views.py::TestProfileView::test_doesnt_includes_change_password_for_oauth": 0.31786373595241457, + "hypha/apply/users/tests/test_views.py::TestProfileView::test_includes_change_password": 0.28687648894265294, + "hypha/apply/users/tests/test_views.py::TestStaffProfileView::test_can_set_slack_name": 0.2871778780827299, + "hypha/apply/utils/tests/test_templatetags.py::WebpackTagsTestCase::test_render_bundle_calls_webpack_loader_when_enabled": 0.002394415088929236, + "hypha/apply/utils/tests/test_templatetags.py::WebpackTagsTestCase::test_render_bundle_does_not_call_webpack_loader_when_disabled": 0.002298294915817678, + "hypha/apply/utils/tests/test_views.py::TestDelegatedViewMixin::test__access_if_no_object": 0.010947066941298544, + "hypha/apply/utils/tests/test_views.py::TestDelegatedViewMixin::test_parent_access_if_no_object": 0.006278517888858914, + "hypha/core/tests/test_utils.py::test_markdown_to_html[**bold**-<p><strong>bold</strong></p>]": 0.004736210103146732, + "hypha/core/tests/test_utils.py::test_markdown_to_html[Header1 | Header2\\n------ | ------\\nCell1 | Cell2-<table><thead><tr><th>Header1</th><th>Header2</th></tr></thead><tbody><tr><td>Cell1</td><td>Cell2</td></tr></tbody></table>]": 1.1422418060246855, + "hypha/core/tests/test_utils.py::test_markdown_to_html[~~strike~~-<p><del>strike</del></p>]": 1.0860672008711845, + "hypha/public/mailchimp/tests/test_views.py::TestNewsletterView::test_can_subscribe": 1.072492844890803, + "hypha/public/mailchimp/tests/test_views.py::TestNewsletterView::test_error_in_form": 1.1025164540624246, + "hypha/public/mailchimp/tests/test_views.py::TestNewsletterView::test_redirected_home_if_get": 0.9009461300447583, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_access_categories_and_options": 0.013167775003239512, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_decompress_data": 0.005117500084452331, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_decompress_multiple_data": 0.01238705194555223, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_get_data_from_form": 0.005282049882225692, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_get_multiple_categories": 0.005961633054539561, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_can_get_multiple_data_from_form": 0.00866766890976578, + "hypha/public/projects/tests.py::TestCategoriesWidget::test_init_has_no_queries": 0.004813013016246259 +} \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index c77f6b165fa73a8370efe6adfd1f07628b97d11d..83312fb244deb3a7c736237d45c6a04b57269023 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,16 +1,17 @@ -r requirements.txt +coverage==6.4.4 +django-coverage-plugin==2.0.3 django-debug-toolbar==3.6.0 dslr==0.3.1 factory_boy==3.2.1 flake8==5.0.4 isort==5.10.1 model-bakery==1.7.0 +pytest-cov==3.0.0 +pytest-django==4.5.2 +pytest-split==0.8.0 +pytest-xdist[psutil]==2.5.0 responses==0.21.0 wagtail-factories==2.1.0 Werkzeug==2.2.2 -pytest-django==4.5.2 -pytest-xdist[psutil]==2.5.0 -coverage==6.4.4 -pytest-cov==3.0.0 -django-coverage-plugin==2.0.3