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')
Example #3
0
 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]
     )