def test_creating_feedback_sends_data_to_jira(self, mock_JIRA): for delivered in [False, True]: mock_JIRA.reset_mock() feedback = FeedbackFactory( service=self.test_service, delivered=delivered, difficulty_contacting='didntknow', extra_comments='I have a little dog', ) jira_record = feedback.jira_records.get() self.assertEqual(jira_record.feedback, feedback) self.assertEqual('', jira_record.jira_issue_key) self.setup_issue_key(mock_JIRA) jira_project = 'XYZ' with override_settings(JIRA_FEEDBACK_PROJECT_KEY=jira_project): jira_record.do_jira_work() mock_JIRA.return_value.create_issue.assert_called_with( issuetype={'name': 'Task'}, summary='Feedback about %s' % feedback.service.name_en, project={'key': jira_project}, description=mock.ANY, duedate=mock.ANY, ) description = mock_JIRA.return_value.create_issue.call_args[1]['description'] self.assertIn(feedback.name, description) self.assertIn(feedback.nationality.name_en, description) self.assertIn(feedback.phone_number, description) self.assertIn(feedback.service.name_en, description) if delivered: self.assertIn('Quality', description) self.assertIn(feedback.get_wait_time_display(), description) else: self.assertNotIn('Quality', description) self.assertIn(feedback.get_non_delivery_explained_display(), description) self.assertIn('Did not know how to contact them', description) self.assertIn('I have a little dog', description)