|
@@ 237-265 (lines=29) @@
|
| 234 |
|
|
| 235 |
|
# mock subprocess.run an raise Exception. Read it and update submission |
| 236 |
|
# message using helpers.upload_cryoweb |
| 237 |
|
@patch('cryoweb.helpers.send_message_to_websocket') |
| 238 |
|
@patch('asyncio.get_event_loop') |
| 239 |
|
def test_upload_cryoweb_errors(self, asyncio_mock, |
| 240 |
|
send_message_to_websocket_mock): |
| 241 |
|
"""Testing errors in uploading cryoweb data""" |
| 242 |
|
tmp = asyncio_mock.return_value |
| 243 |
|
tmp.run_until_complete = Mock() |
| 244 |
|
|
| 245 |
|
with patch('subprocess.run') as runMock: |
| 246 |
|
runMock.side_effect = Exception("Test upload failed") |
| 247 |
|
self.assertFalse(upload_cryoweb(self.submission.id)) |
| 248 |
|
|
| 249 |
|
# reload submission |
| 250 |
|
self.submission = Submission.objects.get(pk=1) |
| 251 |
|
|
| 252 |
|
self.assertEqual( |
| 253 |
|
self.submission.status, |
| 254 |
|
ERROR) |
| 255 |
|
|
| 256 |
|
self.assertIn( |
| 257 |
|
"Test upload failed", |
| 258 |
|
self.submission.message) |
| 259 |
|
self.assertEqual(asyncio_mock.call_count, 1) |
| 260 |
|
self.assertEqual(tmp.run_until_complete.call_count, 1) |
| 261 |
|
self.assertEqual(send_message_to_websocket_mock.call_count, 1) |
| 262 |
|
send_message_to_websocket_mock.assert_called_with( |
| 263 |
|
{'message': 'Error', |
| 264 |
|
'notification_message': 'Error in importing data: Test ' |
| 265 |
|
'upload failed'}, 1) |
| 266 |
|
|
| 267 |
|
|
| 268 |
|
class CryowebImport(CryoWebMixin, BaseTestCase, TestCase): |
|
@@ 319-347 (lines=29) @@
|
| 316 |
|
'animal_unkn': 3, 'sample_unkn': 1, |
| 317 |
|
'animal_issues': 0, 'sample_issues': 0}}, 1) |
| 318 |
|
|
| 319 |
|
@patch('cryoweb.helpers.send_message_to_websocket') |
| 320 |
|
@patch('asyncio.get_event_loop') |
| 321 |
|
@patch("cryoweb.helpers.check_UID", side_effect=Exception("Test message")) |
| 322 |
|
def test_cryoweb_import_errors(self, my_check, asyncio_mock, |
| 323 |
|
send_message_to_websocket_mock): |
| 324 |
|
"""Testing importing with data into UID with errors""" |
| 325 |
|
tmp = asyncio_mock.return_value |
| 326 |
|
tmp.run_until_complete = Mock() |
| 327 |
|
|
| 328 |
|
self.assertFalse(cryoweb_import(self.submission)) |
| 329 |
|
self.assertTrue(my_check.called) |
| 330 |
|
|
| 331 |
|
# reload submission |
| 332 |
|
self.submission = Submission.objects.get(pk=1) |
| 333 |
|
|
| 334 |
|
self.assertEqual( |
| 335 |
|
self.submission.status, |
| 336 |
|
ERROR) |
| 337 |
|
|
| 338 |
|
self.assertIn( |
| 339 |
|
"Test message", |
| 340 |
|
self.submission.message) |
| 341 |
|
self.assertEqual(asyncio_mock.call_count, 1) |
| 342 |
|
self.assertEqual(tmp.run_until_complete.call_count, 1) |
| 343 |
|
self.assertEqual(send_message_to_websocket_mock.call_count, 1) |
| 344 |
|
send_message_to_websocket_mock.assert_called_with( |
| 345 |
|
{'message': 'Error', |
| 346 |
|
'notification_message': 'Error in importing data: Test message'}, |
| 347 |
|
1) |
| 348 |
|
|
| 349 |
|
|
| 350 |
|
class CryowebReload(CryoWebMixin, BaseTestCase, TestCase): |