@@ -275,6 +275,16 @@ def test_sends_a_student_download_that_has_no_contact(self, salesforce):
275275 self .assertEqual (1 , len (sent ))
276276 self .assertIsNone (sent [0 ]['Contact__c' ])
277277
278+ @patch ('salesforce.management.commands.update_resource_downloads.Salesforce' )
279+ def test_sends_the_role_of_the_person_who_downloaded (self , salesforce ):
280+ sf = salesforce .return_value .__enter__ .return_value
281+ self .make_download ('310bb96b-0df8-4d10-a759-c7d366c1f527' , role = 'instructor' )
282+
283+ call_command ('update_resource_downloads' )
284+
285+ sent = sf .bulk .Resource__c .insert .call_args [0 ][0 ]
286+ self .assertEqual ('instructor' , sent [0 ]['Role__c' ])
287+
278288 @patch ('salesforce.management.commands.update_resource_downloads.Salesforce' )
279289 def test_needs_no_salesforce_query_to_build_the_batch (self , salesforce ):
280290 sf = salesforce .return_value .__enter__ .return_value
@@ -698,3 +708,28 @@ def test_a_download_without_a_contact_keeps_the_one_already_known(self):
698708 self .post_download (book = book .pk , resource_name = "Test Bank" )
699709
700710 self .assertEqual ("0032f00003zYVdSAAZ" , ResourceDownload .objects .get ().contact_id )
711+
712+ def test_role_is_stored_as_sent (self ):
713+ book = self .make_book ()
714+
715+ response = self .post_download (book = book .pk , resource_name = "Test Bank" , role = "instructor" )
716+
717+ self .assertEqual ("instructor" , response .data ['role' ])
718+ self .assertEqual ("instructor" , ResourceDownload .objects .get ().role )
719+
720+ def test_a_verified_student_keeps_one_row_and_reports_the_role_they_hold_now (self ):
721+ book = self .make_book ()
722+
723+ self .post_download (book = book .pk , resource_name = "Test Bank" , role = "student" )
724+ self .post_download (book = book .pk , resource_name = "Test Bank" , role = "instructor" )
725+
726+ self .assertEqual (1 , ResourceDownload .objects .count ())
727+ self .assertEqual ("instructor" , ResourceDownload .objects .get ().role )
728+
729+ def test_a_download_without_a_role_keeps_the_one_already_known (self ):
730+ book = self .make_book ()
731+
732+ self .post_download (book = book .pk , resource_name = "Test Bank" , role = "instructor" )
733+ self .post_download (book = book .pk , resource_name = "Test Bank" , role = "" )
734+
735+ self .assertEqual ("instructor" , ResourceDownload .objects .get ().role )
0 commit comments