|
@@ 403-449 (lines=47) @@
|
| 400 |
|
'are not loaded in UID database: Rainbow ' |
| 401 |
|
'trout'}, 1) |
| 402 |
|
|
| 403 |
|
@patch('crbanim.helpers.send_message_to_websocket') |
| 404 |
|
@patch('asyncio.get_event_loop') |
| 405 |
|
@patch("crbanim.helpers.CRBAnimReader.check_sex", |
| 406 |
|
return_value=[False, 'unknown']) |
| 407 |
|
def test_upload_crbanim_errors_with_sex(self, my_check, asyncio_mock, |
| 408 |
|
send_message_to_websocket_mock): |
| 409 |
|
"""Testing importing with data into UID with errors""" |
| 410 |
|
tmp = asyncio_mock.return_value |
| 411 |
|
tmp.run_until_complete = Mock() |
| 412 |
|
|
| 413 |
|
self.assertFalse(upload_crbanim(self.submission)) |
| 414 |
|
|
| 415 |
|
# reload submission |
| 416 |
|
self.submission.refresh_from_db() |
| 417 |
|
|
| 418 |
|
# test my mock method called |
| 419 |
|
self.assertTrue(my_check.called) |
| 420 |
|
|
| 421 |
|
# reload submission |
| 422 |
|
self.submission = Submission.objects.get(pk=1) |
| 423 |
|
|
| 424 |
|
self.assertEqual( |
| 425 |
|
self.submission.status, |
| 426 |
|
ERROR) |
| 427 |
|
|
| 428 |
|
# check for two distinct messages |
| 429 |
|
self.assertIn( |
| 430 |
|
"Not all Sex terms are loaded into database", |
| 431 |
|
self.submission.message) |
| 432 |
|
|
| 433 |
|
self.assertNotIn( |
| 434 |
|
"CRBAnim import completed for submission", |
| 435 |
|
self.submission.message) |
| 436 |
|
|
| 437 |
|
# assert data into database |
| 438 |
|
self.assertFalse(db_has_data()) |
| 439 |
|
self.assertFalse(Animal.objects.exists()) |
| 440 |
|
self.assertFalse(Sample.objects.exists()) |
| 441 |
|
|
| 442 |
|
self.assertEqual(asyncio_mock.call_count, 1) |
| 443 |
|
self.assertEqual(tmp.run_until_complete.call_count, 1) |
| 444 |
|
self.assertEqual(send_message_to_websocket_mock.call_count, 1) |
| 445 |
|
send_message_to_websocket_mock.assert_called_with( |
| 446 |
|
{'message': 'Error', |
| 447 |
|
'notification_message': 'Error in importing data: Not all Sex ' |
| 448 |
|
'terms are loaded into database: check ' |
| 449 |
|
'for unknown in your dataset'}, 1) |
| 450 |
|
|
| 451 |
|
|
| 452 |
|
class ReloadCRBAnimTestCase(BaseTestCase, TestCase): |
|
@@ 360-401 (lines=42) @@
|
| 357 |
|
'animal_unkn': 1, 'sample_unkn': 2, |
| 358 |
|
'animal_issues': 0, 'sample_issues': 0}}, 1) |
| 359 |
|
|
| 360 |
|
@patch('crbanim.helpers.send_message_to_websocket') |
| 361 |
|
@patch('asyncio.get_event_loop') |
| 362 |
|
@patch("crbanim.helpers.CRBAnimReader.check_species", |
| 363 |
|
return_value=[False, 'Rainbow trout']) |
| 364 |
|
def test_upload_crbanim_errors(self, my_check, asyncio_mock, |
| 365 |
|
send_message_to_websocket_mock): |
| 366 |
|
"""Testing importing with data into UID with errors""" |
| 367 |
|
tmp = asyncio_mock.return_value |
| 368 |
|
tmp.run_until_complete = Mock() |
| 369 |
|
|
| 370 |
|
self.assertFalse(upload_crbanim(self.submission)) |
| 371 |
|
|
| 372 |
|
# reload submission |
| 373 |
|
self.submission.refresh_from_db() |
| 374 |
|
|
| 375 |
|
# test my mock method called |
| 376 |
|
self.assertTrue(my_check.called) |
| 377 |
|
|
| 378 |
|
# reload submission |
| 379 |
|
self.submission = Submission.objects.get(pk=1) |
| 380 |
|
|
| 381 |
|
self.assertEqual( |
| 382 |
|
self.submission.status, |
| 383 |
|
ERROR) |
| 384 |
|
|
| 385 |
|
self.assertIn( |
| 386 |
|
"Some species are not loaded in UID database", |
| 387 |
|
self.submission.message) |
| 388 |
|
|
| 389 |
|
# assert data into database |
| 390 |
|
self.assertFalse(db_has_data()) |
| 391 |
|
self.assertFalse(Animal.objects.exists()) |
| 392 |
|
self.assertFalse(Sample.objects.exists()) |
| 393 |
|
|
| 394 |
|
self.assertEqual(asyncio_mock.call_count, 1) |
| 395 |
|
self.assertEqual(tmp.run_until_complete.call_count, 1) |
| 396 |
|
self.assertEqual(send_message_to_websocket_mock.call_count, 1) |
| 397 |
|
send_message_to_websocket_mock.assert_called_with( |
| 398 |
|
{'message': 'Error', |
| 399 |
|
'notification_message': 'Error in importing data: Some species ' |
| 400 |
|
'are not loaded in UID database: Rainbow ' |
| 401 |
|
'trout'}, 1) |
| 402 |
|
|
| 403 |
|
@patch('crbanim.helpers.send_message_to_websocket') |
| 404 |
|
@patch('asyncio.get_event_loop') |