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