|
@@ 736-831 (lines=96) @@
|
| 733 |
|
'animal_issues': 0, 'sample_issues': 0}, |
| 734 |
|
pk=1) |
| 735 |
|
|
| 736 |
|
@patch("validation.tasks.MetaDataValidation.check_usi_structure") |
| 737 |
|
@patch("validation.tasks.MetaDataValidation.validate") |
| 738 |
|
def test_validate_submission_errors( |
| 739 |
|
self, my_validate, my_check): |
| 740 |
|
"""A submission with errors is a NEED_REVISION submission""" |
| 741 |
|
|
| 742 |
|
# setting check_usi_structure result. now is a ValidateResultRecord |
| 743 |
|
result = PickableMock() |
| 744 |
|
result.get_overall_status.return_value = "Pass" |
| 745 |
|
result.get_messages.return_value = [] |
| 746 |
|
my_check.return_value = result |
| 747 |
|
|
| 748 |
|
# setting a return value for check_with_ruleset |
| 749 |
|
result1 = ValidationResultRecord("animal_1") |
| 750 |
|
result1.add_validation_result_column( |
| 751 |
|
ValidationResultColumn( |
| 752 |
|
"warning", |
| 753 |
|
"warn message", |
| 754 |
|
"animal_1", |
| 755 |
|
"warn column") |
| 756 |
|
) |
| 757 |
|
|
| 758 |
|
result2 = ValidationResultRecord("animal_2") |
| 759 |
|
result2.add_validation_result_column( |
| 760 |
|
ValidationResultColumn( |
| 761 |
|
"pass", |
| 762 |
|
"a message", |
| 763 |
|
"animal_2", |
| 764 |
|
"") |
| 765 |
|
) |
| 766 |
|
|
| 767 |
|
result3 = ValidationResultRecord("animal_3") |
| 768 |
|
result3.add_validation_result_column( |
| 769 |
|
ValidationResultColumn( |
| 770 |
|
"pass", |
| 771 |
|
"a message", |
| 772 |
|
"animal_3", |
| 773 |
|
"") |
| 774 |
|
) |
| 775 |
|
|
| 776 |
|
result4 = ValidationResultRecord("sample_1") |
| 777 |
|
result4.add_validation_result_column( |
| 778 |
|
ValidationResultColumn( |
| 779 |
|
"error", |
| 780 |
|
"error message", |
| 781 |
|
"sample_1", |
| 782 |
|
"error column") |
| 783 |
|
) |
| 784 |
|
|
| 785 |
|
# add results to result set |
| 786 |
|
responses = [result1, result2, result3, result4] |
| 787 |
|
my_validate.side_effect = responses |
| 788 |
|
|
| 789 |
|
# call task |
| 790 |
|
res = self.my_task.run(submission_id=self.submission_id) |
| 791 |
|
|
| 792 |
|
# assert a success with validation taks |
| 793 |
|
self.assertEqual(res, "success") |
| 794 |
|
|
| 795 |
|
# check submission status and message |
| 796 |
|
self.submission.refresh_from_db() |
| 797 |
|
|
| 798 |
|
# check submission.state changed |
| 799 |
|
self.assertEqual(self.submission.status, NEED_REVISION) |
| 800 |
|
self.assertIn( |
| 801 |
|
"Error in metadata", |
| 802 |
|
self.submission.message) |
| 803 |
|
|
| 804 |
|
# check Animal (they are all ok) |
| 805 |
|
self.check_model_status(self.animal_qs, responses, READY) |
| 806 |
|
|
| 807 |
|
# sample has need revision |
| 808 |
|
self.check_model_status( |
| 809 |
|
self.sample_qs, |
| 810 |
|
responses[self.animal_qs.count():], |
| 811 |
|
NEED_REVISION) |
| 812 |
|
|
| 813 |
|
# test for my methods called |
| 814 |
|
self.assertTrue(my_check.called) |
| 815 |
|
self.assertTrue(my_validate.called) |
| 816 |
|
|
| 817 |
|
# asserting my mock objects |
| 818 |
|
self.assertTrue(self.read_in_ruleset.called) |
| 819 |
|
self.assertTrue(self.check_ruleset.called) |
| 820 |
|
self.assertFalse(self.validate_retry.called) |
| 821 |
|
|
| 822 |
|
self.check_message( |
| 823 |
|
message='Need Revision', |
| 824 |
|
notification_message=( |
| 825 |
|
'Validation got errors: Error in ' |
| 826 |
|
'metadata. Need revisions before submit'), |
| 827 |
|
validation_message={ |
| 828 |
|
'animals': self.n_animals, 'samples': self.n_samples, |
| 829 |
|
'animal_unkn': 0, 'sample_unkn': 0, |
| 830 |
|
'animal_issues': 0, 'sample_issues': 1}, |
| 831 |
|
pk=1) |
| 832 |
|
|
| 833 |
|
|
| 834 |
|
class ValidateSubmissionStatusTest(ValidateSubmissionMixin, TestCase): |
|
@@ 641-734 (lines=94) @@
|
| 638 |
|
'sample_issues': self.n_samples}, |
| 639 |
|
pk=1) |
| 640 |
|
|
| 641 |
|
@patch("validation.tasks.MetaDataValidation.check_usi_structure") |
| 642 |
|
@patch("validation.tasks.MetaDataValidation.validate") |
| 643 |
|
def test_validate_submission_warnings( |
| 644 |
|
self, my_validate, my_check): |
| 645 |
|
"""A submission with warnings is a READY submission""" |
| 646 |
|
|
| 647 |
|
# setting check_usi_structure result. now is a ValidateResultRecord |
| 648 |
|
result = PickableMock() |
| 649 |
|
result.get_overall_status.return_value = "Pass" |
| 650 |
|
result.get_messages.return_value = [] |
| 651 |
|
my_check.return_value = result |
| 652 |
|
|
| 653 |
|
# setting a return value for check_with_ruleset |
| 654 |
|
result1 = ValidationResultRecord("animal_1") |
| 655 |
|
result1.add_validation_result_column( |
| 656 |
|
ValidationResultColumn( |
| 657 |
|
"warning", |
| 658 |
|
"warn message", |
| 659 |
|
"animal_1", |
| 660 |
|
"warn column") |
| 661 |
|
) |
| 662 |
|
|
| 663 |
|
result2 = ValidationResultRecord("animal_2") |
| 664 |
|
result2.add_validation_result_column( |
| 665 |
|
ValidationResultColumn( |
| 666 |
|
"pass", |
| 667 |
|
"a message", |
| 668 |
|
"animal_2", |
| 669 |
|
"") |
| 670 |
|
) |
| 671 |
|
|
| 672 |
|
result3 = ValidationResultRecord("animal_3") |
| 673 |
|
result3.add_validation_result_column( |
| 674 |
|
ValidationResultColumn( |
| 675 |
|
"pass", |
| 676 |
|
"a message", |
| 677 |
|
"animal_3", |
| 678 |
|
"") |
| 679 |
|
) |
| 680 |
|
|
| 681 |
|
result4 = ValidationResultRecord("sample_1") |
| 682 |
|
result4.add_validation_result_column( |
| 683 |
|
ValidationResultColumn( |
| 684 |
|
"pass", |
| 685 |
|
"a message", |
| 686 |
|
"sample_1", |
| 687 |
|
"") |
| 688 |
|
) |
| 689 |
|
|
| 690 |
|
# add results to result set |
| 691 |
|
responses = [result1, result2, result3, result4] |
| 692 |
|
my_validate.side_effect = responses |
| 693 |
|
|
| 694 |
|
# call task |
| 695 |
|
res = self.my_task.run(submission_id=self.submission_id) |
| 696 |
|
|
| 697 |
|
# assert a success with validation taks |
| 698 |
|
self.assertEqual(res, "success") |
| 699 |
|
|
| 700 |
|
# check submission status and message |
| 701 |
|
self.submission.refresh_from_db() |
| 702 |
|
|
| 703 |
|
# check submission.state changed |
| 704 |
|
self.assertEqual(self.submission.status, READY) |
| 705 |
|
self.assertIn( |
| 706 |
|
"Submission validated with some warnings", |
| 707 |
|
self.submission.message) |
| 708 |
|
|
| 709 |
|
# check Animal (they are all ok) |
| 710 |
|
self.check_model_status(self.animal_qs, responses, READY) |
| 711 |
|
|
| 712 |
|
# sample has need revision |
| 713 |
|
self.check_model_status( |
| 714 |
|
self.sample_qs, |
| 715 |
|
responses[self.animal_qs.count():], |
| 716 |
|
READY) |
| 717 |
|
|
| 718 |
|
# test for my methods called |
| 719 |
|
self.assertTrue(my_check.called) |
| 720 |
|
self.assertTrue(my_validate.called) |
| 721 |
|
|
| 722 |
|
# asserting my mock objects |
| 723 |
|
self.assertTrue(self.read_in_ruleset.called) |
| 724 |
|
self.assertTrue(self.check_ruleset.called) |
| 725 |
|
self.assertFalse(self.validate_retry.called) |
| 726 |
|
|
| 727 |
|
self.check_message( |
| 728 |
|
message='Ready', |
| 729 |
|
notification_message='Submission validated with some warnings', |
| 730 |
|
validation_message={ |
| 731 |
|
'animals': self.n_animals, 'samples': self.n_samples, |
| 732 |
|
'animal_unkn': 0, 'sample_unkn': 0, |
| 733 |
|
'animal_issues': 0, 'sample_issues': 0}, |
| 734 |
|
pk=1) |
| 735 |
|
|
| 736 |
|
@patch("validation.tasks.MetaDataValidation.check_usi_structure") |
| 737 |
|
@patch("validation.tasks.MetaDataValidation.validate") |