| @@ 129-165 (lines=37) @@ | ||
| 126 | ||
| 127 | ||
| 128 | class TaskFailureMixin(WebSocketMixin, BaseMixin): |
|
| 129 | def test_on_failure(self): |
|
| 130 | """Testing on failure methods""" |
|
| 131 | ||
| 132 | exc = Exception("Test") |
|
| 133 | task_id = "test_task_id" |
|
| 134 | args = [self.submission_id] |
|
| 135 | kwargs = {'uid_submission_id': self.submission_id} |
|
| 136 | einfo = ExceptionInfo |
|
| 137 | ||
| 138 | # call on_failure method |
|
| 139 | self.my_task.on_failure(exc, task_id, args, kwargs, einfo) |
|
| 140 | ||
| 141 | # check submission status and message |
|
| 142 | submission = Submission.objects.get(pk=self.submission_id) |
|
| 143 | ||
| 144 | # check submission.state changed |
|
| 145 | self.assertEqual(submission.status, ERROR) |
|
| 146 | self.assertEqual( |
|
| 147 | submission.message, |
|
| 148 | "Error in biosample submission: Test") |
|
| 149 | ||
| 150 | # test email sent |
|
| 151 | self.assertEqual(len(mail.outbox), 2) |
|
| 152 | ||
| 153 | # read email |
|
| 154 | email = mail.outbox[-1] |
|
| 155 | ||
| 156 | self.assertEqual( |
|
| 157 | "Error in biosample submission for submission %s" % ( |
|
| 158 | self.submission_id), |
|
| 159 | email.subject) |
|
| 160 | ||
| 161 | message = 'Error' |
|
| 162 | notification_message = 'Error in biosample submission: Test' |
|
| 163 | ||
| 164 | # calling a WebSocketMixin method |
|
| 165 | self.check_message(message, notification_message) |
|
| 166 | ||
| 167 | ||
| 168 | class RedisMixin(): |
|
| @@ 38-74 (lines=37) @@ | ||
| 35 | # calling base methods |
|
| 36 | super().tearDown() |
|
| 37 | ||
| 38 | def test_on_failure(self): |
|
| 39 | """Testing on failure methods""" |
|
| 40 | ||
| 41 | exc = Exception("Test") |
|
| 42 | task_id = "test_task_id" |
|
| 43 | args = [self.submission_id] |
|
| 44 | kwargs = {} |
|
| 45 | einfo = ExceptionInfo |
|
| 46 | ||
| 47 | # call on_failure method |
|
| 48 | self.my_task.on_failure(exc, task_id, args, kwargs, einfo) |
|
| 49 | ||
| 50 | # check submission status and message |
|
| 51 | submission = Submission.objects.get(pk=self.submission_id) |
|
| 52 | ||
| 53 | # check submission.state changed |
|
| 54 | self.assertEqual(submission.status, ERROR) |
|
| 55 | self.assertEqual( |
|
| 56 | submission.message, |
|
| 57 | "Error in %s: Test" % (self.action)) |
|
| 58 | ||
| 59 | # test email sent. One mail for admin, une for users |
|
| 60 | self.assertEqual(len(mail.outbox), 2) |
|
| 61 | ||
| 62 | # read email |
|
| 63 | email = mail.outbox[-1] |
|
| 64 | ||
| 65 | self.assertEqual( |
|
| 66 | "Error in %s for submission %s" % ( |
|
| 67 | self.action, self.submission_id), |
|
| 68 | email.subject) |
|
| 69 | ||
| 70 | message = 'Error' |
|
| 71 | notification_message = 'Error in %s: Test' % ( |
|
| 72 | self.action) |
|
| 73 | ||
| 74 | self.check_message(message, notification_message) |
|
| 75 | ||
| 76 | def test_import_from_file(self): |
|
| 77 | """Testing file import""" |
|
| @@ 220-253 (lines=34) @@ | ||
| 217 | # calling base methods |
|
| 218 | super().tearDown() |
|
| 219 | ||
| 220 | def test_on_failure(self): |
|
| 221 | """Testing on failure methods""" |
|
| 222 | ||
| 223 | exc = Exception("Test") |
|
| 224 | task_id = "test_task_id" |
|
| 225 | args = [self.submission_id] |
|
| 226 | kwargs = {} |
|
| 227 | einfo = ExceptionInfo |
|
| 228 | ||
| 229 | # call on_failure method |
|
| 230 | self.my_task.on_failure(exc, task_id, args, kwargs, einfo) |
|
| 231 | ||
| 232 | # check submission status and message |
|
| 233 | submission = Submission.objects.get(pk=self.submission_id) |
|
| 234 | ||
| 235 | # check submission.state changed |
|
| 236 | self.assertEqual(submission.status, ERROR) |
|
| 237 | self.assertEqual( |
|
| 238 | submission.message, |
|
| 239 | "Error in validation: Test") |
|
| 240 | ||
| 241 | # test email sent |
|
| 242 | self.assertGreater(len(mail.outbox), 1) |
|
| 243 | ||
| 244 | # read email |
|
| 245 | email = mail.outbox[-1] |
|
| 246 | ||
| 247 | self.assertEqual( |
|
| 248 | "Error in validation for submission 1", |
|
| 249 | email.subject) |
|
| 250 | ||
| 251 | self.check_message( |
|
| 252 | 'Error', |
|
| 253 | 'Error in validation: Test') |
|
| 254 | ||
| 255 | @patch("validation.tasks.ValidateSubmission.validate_model") |
|
| 256 | def test_validate_retry(self, my_validate): |
|