From dbb7cf62a3a2e9f7ffc75cdb08411d809a9ee8ed Mon Sep 17 00:00:00 2001
From: sandeepsajan0 <sandeepsajan0@gmail.com>
Date: Fri, 11 Mar 2022 17:52:08 +0530
Subject: [PATCH] Fix user part in Lab Base and Fix tests for pre populated
 data

---
 hypha/apply/funds/models/applications.py |  8 ++++++++
 hypha/apply/funds/tests/test_models.py   | 11 ++++++++---
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/hypha/apply/funds/models/applications.py b/hypha/apply/funds/models/applications.py
index c63fdf8b0..41195ab05 100644
--- a/hypha/apply/funds/models/applications.py
+++ b/hypha/apply/funds/models/applications.py
@@ -433,6 +433,14 @@ class LabBase(EmailForm, WorkflowStreamForm, SubmittableStreamForm):  # type: ig
     def open_round(self):
         return self.live
 
+    def get_form(self, *args, **kwargs):
+        user = kwargs.get('user')
+        form_class = self.get_form_class(user=user)
+        form_params = self.get_form_parameters()
+        form_params.update(kwargs)
+
+        return form_class(*args, **form_params)
+
     def serve(self, request, *args, **kwargs):
         if request.method == 'POST':
             form = self.get_form(request.POST, request.FILES, page=self, user=request.user)
diff --git a/hypha/apply/funds/tests/test_models.py b/hypha/apply/funds/tests/test_models.py
index e5cf1a352..65435aa44 100644
--- a/hypha/apply/funds/tests/test_models.py
+++ b/hypha/apply/funds/tests/test_models.py
@@ -316,19 +316,24 @@ class TestFormSubmission(TestCase):
         self.assertEqual(ApplicationSubmission.objects.first().user, user)
 
     # This will need to be updated when we hide user information contextually
-    def test_errors_if_blank_user_data_even_if_logged_in(self):
+    def test_can_submit_if_blank_user_data_even_if_logged_in(self):
         user, _ = self.User.objects.get_or_create(email=self.email, defaults={'full_name': self.name})
 
         # Lead + applicant
         self.assertEqual(self.User.objects.count(), 2)
 
         response = self.submit_form(email='', name='', user=user, ignore_errors=True)
-        self.assertContains(response, 'This field is required')
+        self.assertEqual(response.status_code, 200)
 
         # Lead + applicant
         self.assertEqual(self.User.objects.count(), 2)
 
-        self.assertEqual(ApplicationSubmission.objects.count(), 0)
+        self.assertEqual(ApplicationSubmission.objects.count(), 1)
+
+        submission = ApplicationSubmission.objects.first()
+        self.assertEqual(submission.user, user)
+        self.assertEqual(submission.user.full_name, self.name)
+        self.assertEqual(submission.user.email, self.email)
 
     def test_valid_email(self):
         email = 'not_a_valid_email@'
-- 
GitLab