def test_filters_by_project_type(self):
        project1 = ProjectFactory.create()
        project2 = ProjectFactory.create()
        exp1 = ExperimentFactory.create(projects=[project1])
        ExperimentFactory.create(projects=[project2])

        data = {"projects": project1.id}
        filter = ExperimentFilterset(data=data,
                                     queryset=Experiment.objects.all())

        self.assertTrue(filter.is_valid())
        self.assertCountEqual(filter.qs, [exp1])
        self.assertEqual(filter.get_project_display_value(), project1)
    def test_filters_by_multiple_types(self):
        pref = ExperimentFactory.create(type=Experiment.TYPE_PREF)
        addon = ExperimentFactory.create(type=Experiment.TYPE_ADDON)
        ExperimentFactory.create(type=Experiment.TYPE_GENERIC)

        filter = ExperimentFilterset(
            data=QueryDict(
                urlencode(
                    {"type": [Experiment.TYPE_PREF, Experiment.TYPE_ADDON]},
                    True)),
            queryset=Experiment.objects.all(),
        )
        self.assertTrue(filter.is_valid())
        self.assertEqual(set(filter.qs), set([pref, addon]))
        self.assertEqual(filter.get_type_display_value(), "Pref-Flip, Add-On")
Exemple #3
0
    def test_filters_by_no_project_type(self):
        project1 = ProjectFactory.create()
        exp1 = ExperimentFactory.create(projects=[])
        ExperimentFactory.create(projects=[project1])
        ExperimentFactory.create(projects=[project1])

        data = QueryDict("projects=null")

        filter = ExperimentFilterset(data=data,
                                     queryset=Experiment.objects.all())

        self.assertTrue(filter.is_valid())
        self.assertCountEqual(filter.qs, [exp1])
        display_value = filter.get_project_display_value()
        self.assertEqual("No Projects", display_value)
Exemple #4
0
    def test_filters_by_multiple_project_type(self):
        project1 = ProjectFactory.create()
        project2 = ProjectFactory.create()
        project3 = ProjectFactory.create()
        exp1 = ExperimentFactory.create(projects=[project1, project2])
        exp2 = ExperimentFactory.create(projects=[project2])
        ExperimentFactory.create(projects=[project3])

        data = QueryDict(f"projects={project1.id}&projects={project2.id}")

        filter = ExperimentFilterset(data=data,
                                     queryset=Experiment.objects.all())

        self.assertTrue(filter.is_valid())
        self.assertCountEqual(filter.qs, [exp1, exp2])
        display_value = filter.get_project_display_value()
        self.assertIn(project1.name, display_value)
        self.assertIn(project2.name, display_value)
Exemple #5
0
 def test_filter_by_analysis_owner_invalid_for_non_analysis_owner(self):
     user = UserFactory.create()
     filter = ExperimentFilterset(data={"analysis_owner": user.id})
     self.assertFalse(filter.is_valid())