@@ -719,6 +719,49 @@ def test_groups_by_dataset_for_model(self, client, public_model):
719719 (dataset2 , [ds2fit1 ]),
720720 ]
721721
722+ def test_ensure_private_results_are_not_shown_for_model_version (self , client , public_model ):
723+ model_version = public_model .repocache .latest_version
724+ recipes .fittingresult_version .make (
725+ fittingresult__model = public_model ,
726+ fittingresult__model_version = model_version ,
727+ fittingresult__protocol_version__visibility = 'private' ,
728+ fittingresult__fittingspec_version__visibility = 'public' ,
729+ fittingresult__dataset__visibility = 'public'
730+ ).fittingresult
731+
732+ recipes .fittingresult_version .make (
733+ fittingresult__model = public_model ,
734+ fittingresult__model_version = model_version ,
735+ fittingresult__protocol_version__visibility = 'public' ,
736+ fittingresult__fittingspec_version__visibility = 'private' ,
737+ fittingresult__dataset__visibility = 'public'
738+ ).fittingresult
739+
740+ recipes .fittingresult_version .make (
741+ fittingresult__model = public_model ,
742+ fittingresult__model_version = model_version ,
743+ fittingresult__protocol_version__visibility = 'public' ,
744+ fittingresult__fittingspec_version__visibility = 'public' ,
745+ fittingresult__dataset__visibility = 'private'
746+ ).fittingresult
747+
748+ fit = recipes .fittingresult_version .make (
749+ fittingresult__model = public_model ,
750+ fittingresult__model_version = model_version ,
751+ fittingresult__protocol_version__visibility = 'public' ,
752+ fittingresult__fittingspec_version__visibility = 'public' ,
753+ fittingresult__dataset__visibility = 'public'
754+ ).fittingresult
755+
756+ response = client .get (
757+ '/entities/models/%d/versions/%s/fittings' % (public_model .id , model_version .sha )
758+ )
759+
760+ assert response .status_code == 200
761+ assert response .context ['comparisons' ] == [
762+ (fit .dataset , [fit ]),
763+ ]
764+
722765 def test_shows_fittings_related_to_protocol_version (self , client , fittingresult_version ):
723766 fit = fittingresult_version .fittingresult
724767
@@ -832,6 +875,50 @@ def test_multiple_model_versions_for_protocol_version(self, client, helpers, pub
832875 ]),
833876 ]
834877
878+ def test_ensure_private_results_are_not_shown_for_protocol_version (self , client , public_protocol ):
879+ protocol_version = public_protocol .repocache .latest_version
880+
881+ recipes .fittingresult_version .make (
882+ fittingresult__protocol = public_protocol ,
883+ fittingresult__protocol_version = protocol_version ,
884+ fittingresult__model_version__visibility = 'private' ,
885+ fittingresult__fittingspec_version__visibility = 'public' ,
886+ fittingresult__dataset__visibility = 'public'
887+ ).fittingresult
888+
889+ recipes .fittingresult_version .make (
890+ fittingresult__protocol = public_protocol ,
891+ fittingresult__protocol_version = protocol_version ,
892+ fittingresult__model_version__visibility = 'public' ,
893+ fittingresult__fittingspec_version__visibility = 'private' ,
894+ fittingresult__dataset__visibility = 'public'
895+ ).fittingresult
896+
897+ recipes .fittingresult_version .make (
898+ fittingresult__protocol = public_protocol ,
899+ fittingresult__protocol_version = protocol_version ,
900+ fittingresult__model_version__visibility = 'public' ,
901+ fittingresult__fittingspec_version__visibility = 'public' ,
902+ fittingresult__dataset__visibility = 'private'
903+ ).fittingresult
904+
905+ fit = recipes .fittingresult_version .make (
906+ fittingresult__protocol = public_protocol ,
907+ fittingresult__protocol_version = protocol_version ,
908+ fittingresult__model_version__visibility = 'public' ,
909+ fittingresult__fittingspec_version__visibility = 'public' ,
910+ fittingresult__dataset__visibility = 'public'
911+ ).fittingresult
912+
913+ response = client .get (
914+ '/entities/protocols/%d/versions/%s/fittings' % (public_protocol .id , protocol_version .sha )
915+ )
916+
917+ assert response .status_code == 200
918+ assert response .context ['comparisons' ] == [
919+ (fit .dataset , [(fit .model , [fit ])]),
920+ ]
921+
835922 def test_shows_fittings_related_to_fittingspec_version (self , client , fittingresult_version ):
836923 fit = fittingresult_version .fittingresult
837924
@@ -945,6 +1032,50 @@ def test_multiple_model_versions_for_fittingspec_version(self, client, helpers,
9451032 ]),
9461033 ]
9471034
1035+ def test_ensure_private_results_are_not_shown_for_fittingspec_version (self , client , public_fittingspec ):
1036+ fittingspec_version = public_fittingspec .repocache .latest_version
1037+
1038+ recipes .fittingresult_version .make (
1039+ fittingresult__fittingspec = public_fittingspec ,
1040+ fittingresult__fittingspec_version = fittingspec_version ,
1041+ fittingresult__model_version__visibility = 'private' ,
1042+ fittingresult__protocol_version__visibility = 'public' ,
1043+ fittingresult__dataset__visibility = 'public'
1044+ ).fittingresult
1045+
1046+ recipes .fittingresult_version .make (
1047+ fittingresult__fittingspec = public_fittingspec ,
1048+ fittingresult__fittingspec_version = fittingspec_version ,
1049+ fittingresult__model_version__visibility = 'public' ,
1050+ fittingresult__protocol_version__visibility = 'private' ,
1051+ fittingresult__dataset__visibility = 'public'
1052+ ).fittingresult
1053+
1054+ recipes .fittingresult_version .make (
1055+ fittingresult__fittingspec = public_fittingspec ,
1056+ fittingresult__fittingspec_version = fittingspec_version ,
1057+ fittingresult__model_version__visibility = 'public' ,
1058+ fittingresult__protocol_version__visibility = 'public' ,
1059+ fittingresult__dataset__visibility = 'private'
1060+ ).fittingresult
1061+
1062+ fit = recipes .fittingresult_version .make (
1063+ fittingresult__fittingspec = public_fittingspec ,
1064+ fittingresult__fittingspec_version = fittingspec_version ,
1065+ fittingresult__model_version__visibility = 'public' ,
1066+ fittingresult__protocol_version__visibility = 'public' ,
1067+ fittingresult__dataset__visibility = 'public'
1068+ ).fittingresult
1069+
1070+ response = client .get (
1071+ '/fitting/specs/%d/versions/%s/fittings' % (public_fittingspec .id , fittingspec_version .sha )
1072+ )
1073+
1074+ assert response .status_code == 200
1075+ assert response .context ['comparisons' ] == [
1076+ (fit .dataset , [(fit .model , [fit ])]),
1077+ ]
1078+
9481079
9491080@pytest .mark .django_db
9501081class TestEntityComparisonView :
0 commit comments