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_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)
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)