|
9 | 9 | from hypha.apply.determinations.options import ACCEPTED, NEEDS_MORE_INFO, REJECTED |
10 | 10 | from hypha.apply.determinations.views import BatchDeterminationCreateView |
11 | 11 | from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory |
| 12 | +from hypha.apply.projects.models.project import CONTRACTING, DRAFT |
12 | 13 | from hypha.apply.users.tests.factories import StaffFactory, UserFactory |
13 | 14 | from hypha.apply.utils.testing import BaseViewTestCase |
14 | 15 |
|
@@ -337,6 +338,50 @@ def test_single_stage_rejected_determination_does_not_create_project(self): |
337 | 338 | self.assertIsNone(submission_next) |
338 | 339 | self.assertFalse(hasattr(submission_original, "project")) |
339 | 340 |
|
| 341 | + @override_settings(PROJECTS_DEFAULT_STATUS="contracting") |
| 342 | + def test_auto_creation_uses_status_settings(self): |
| 343 | + submission = ApplicationSubmissionFactory( |
| 344 | + status="post_review_discussion", |
| 345 | + workflow_stages=1, |
| 346 | + lead=self.user, |
| 347 | + ) |
| 348 | + |
| 349 | + self.post_page( |
| 350 | + submission, |
| 351 | + { |
| 352 | + "data": "value", |
| 353 | + "outcome": ACCEPTED, |
| 354 | + "message": "You are invited to submit a proposal", |
| 355 | + }, |
| 356 | + "form", |
| 357 | + ) |
| 358 | + |
| 359 | + submission_original = self.refresh(submission) |
| 360 | + self.assertTrue(hasattr(submission_original, "project")) |
| 361 | + self.assertEqual(submission.project.status, CONTRACTING) |
| 362 | + |
| 363 | + @override_settings(PROJECTS_DEFAULT_STATUS="garbage") |
| 364 | + def test_auto_creation_uses_draft_when_invalid_status_settings(self): |
| 365 | + submission = ApplicationSubmissionFactory( |
| 366 | + status="post_review_discussion", |
| 367 | + workflow_stages=1, |
| 368 | + lead=self.user, |
| 369 | + ) |
| 370 | + |
| 371 | + self.post_page( |
| 372 | + submission, |
| 373 | + { |
| 374 | + "data": "value", |
| 375 | + "outcome": ACCEPTED, |
| 376 | + "message": "You are invited to submit a proposal", |
| 377 | + }, |
| 378 | + "form", |
| 379 | + ) |
| 380 | + |
| 381 | + submission_original = self.refresh(submission) |
| 382 | + self.assertTrue(hasattr(submission_original, "project")) |
| 383 | + self.assertEqual(submission.project.status, DRAFT) |
| 384 | + |
340 | 385 | @override_settings(PROJECTS_AUTO_CREATE=False) |
341 | 386 | def test_disabling_project_auto_creation_stops_projects_being_created(self): |
342 | 387 | submission = ApplicationSubmissionFactory( |
|
0 commit comments