def test_change_alias(self): subproject_2 = fixture.get(Project, users=[self.user]) self.project.add_subproject(subproject_2, 'another-subproject') relation = subproject_2.superprojects.first() # Change alias to an existing alias form = ProjectRelationshipForm( { 'child': subproject_2.id, 'alias': 'subproject' }, instance=relation, project=self.project, user=self.user, ) self.assertFalse(form.is_valid()) error_msg = 'A subproject with this alias already exists' self.assertDictEqual(form.errors, {'alias': [error_msg]}) # Change alias to a new alias form = ProjectRelationshipForm( { 'child': subproject_2.id, 'alias': 'other-subproject' }, instance=relation, project=self.project, user=self.user, ) self.assertTrue(form.is_valid()) form.save() relation.refresh_from_db() self.assertEqual(relation.alias, 'other-subproject')
def test_change_alias_to_same_alias(self): form = ProjectRelationshipForm( { 'child': self.subproject.id, 'alias': 'subproject' }, instance=self.relation, project=self.project, user=self.user, ) self.assertTrue(form.is_valid()) form.save() self.relation.refresh_from_db() self.assertEqual(self.relation.alias, 'subproject')
def test_adding_subproject_passes_when_user_is_admin(self): user = fixture.get(User) project = fixture.get(Project, slug='mainproject') project.users.add(user) subproject = fixture.get(Project, slug='subproject') subproject.users.add(user) self.assertQuerysetEqual( Project.objects.for_admin_user(user), [project, subproject], transform=lambda n: n, ) form = ProjectRelationshipForm({'child': subproject.pk}, project=project, user=user) form.full_clean() self.assertTrue(form.is_valid()) form.save() self.assertEqual([r.child for r in project.subprojects.all()], [subproject])
def test_adding_subproject_passes_when_user_is_admin(self): user = fixture.get(User) project = fixture.get(Project, slug='mainproject') project.users.add(user) subproject = fixture.get(Project, slug='subproject') subproject.users.add(user) self.assertQuerysetEqual( Project.objects.for_admin_user(user), [project, subproject], transform=lambda n: n, ) form = ProjectRelationshipForm( {'child': subproject.pk}, project=project, user=user ) form.full_clean() self.assertTrue(form.is_valid()) form.save() self.assertEqual( [r.child for r in project.subprojects.all()], [subproject] )