From dd9b3bc476e4ebeb94c9ce21fde21a58a441349a Mon Sep 17 00:00:00 2001
From: Dan Braghis <dan.braghis@torchbox.com>
Date: Tue, 19 Jun 2018 15:02:43 +0100
Subject: [PATCH] Test only lead can see extended determination data

---
 opentech/apply/determinations/forms.py            | 8 ++++++--
 opentech/apply/determinations/tests/test_views.py | 9 +++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/opentech/apply/determinations/forms.py b/opentech/apply/determinations/forms.py
index 2ee93b73e..01db2f371 100644
--- a/opentech/apply/determinations/forms.py
+++ b/opentech/apply/determinations/forms.py
@@ -67,8 +67,12 @@ class BaseDeterminationForm(forms.ModelForm):
         cleaned_data = super().clean()
 
         if self.draft_button_name not in self.data:
-            action_name = self.request.GET.get('action') or \
-                self.get_action_name_from_determination(int(cleaned_data['outcome']))
+            try:
+                outcome = int(cleaned_data['outcome'])
+            except KeyError:
+                outcome = -1
+
+            action_name = self.request.GET.get('action') or self.get_action_name_from_determination(outcome)
             if action_name:
                 transition = self.submission.get_transition(action_name)
                 if not can_proceed(transition):
diff --git a/opentech/apply/determinations/tests/test_views.py b/opentech/apply/determinations/tests/test_views.py
index 7840bb015..727858ccb 100644
--- a/opentech/apply/determinations/tests/test_views.py
+++ b/opentech/apply/determinations/tests/test_views.py
@@ -45,7 +45,16 @@ class StaffDeterminationsTestCase(BaseTestCase):
         self.assertContains(response, determination.submission.title)
         self.assertContains(response, self.user.full_name)
         self.assertContains(response, reverse('funds:submissions:detail', kwargs={'pk': submission.id}))
+        self.assertFalse(response.context['can_view_extended_data'])
 
+    def test_lead_can_access_determination(self):
+        submission = ApplicationSubmissionFactory(status='in_discussion', lead=self.user)
+        determination = DeterminationFactory(submission=submission, author=self.user, not_draft=True)
+        response = self.get_page(determination)
+        self.assertContains(response, determination.submission.title)
+        self.assertContains(response, self.user.full_name)
+        self.assertContains(response, reverse('funds:submissions:detail', kwargs={'pk': submission.id}))
+        self.assertTrue(response.context['can_view_extended_data'])
 
 class DeterminationFormTestCase(BaseTestCase):
     user_factory = StaffFactory
-- 
GitLab