diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-05-28 17:55:40 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:49:36 +0200 | 
| commit | 7efb66709a5d1d4f2bae89e0a98f7390d17b8eb4 (patch) | |
| tree | 9a685b60c30550e2e383e574caf4fd448c13d3ea /ishtar_common/tests.py | |
| parent | 1dc2eb2ebc5a837d745358620f1dfd35544632ac (diff) | |
| download | Ishtar-7efb66709a5d1d4f2bae89e0a98f7390d17b8eb4.tar.bz2 Ishtar-7efb66709a5d1d4f2bae89e0a98f7390d17b8eb4.zip | |
Test: user profile form
Diffstat (limited to 'ishtar_common/tests.py')
| -rw-r--r-- | ishtar_common/tests.py | 71 | 
1 files changed, 71 insertions, 0 deletions
| diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index fe88cea51..b28dde5ec 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -432,6 +432,77 @@ class AccessControlTest(TestCase):          self.assertNotIn(admin, ishtar_user.person.person_types.all()) +class UserProfileTest(TestCase): +    fixtures = OPERATION_FIXTURES + +    def setUp(self): +        self.password = 'mypassword' +        self.username = "myuser" +        self.user = User.objects.create_superuser( +            self.username, 'myemail@test.com', self.password) +        self.user.set_password(self.password) +        self.user.save() +        self.client = Client() +        self.client.login(username=self.username, password=self.password) + +    def test_profile_edit(self): +        base_url = '/profile/' +        base_profile = self.user.ishtaruser.current_profile +        response = self.client.get(base_url) +        self.assertEqual(response.status_code, 200) +        response = self.client.post( +            base_url, {'name': "New name", "current_profile": base_profile.pk}) +        self.assertEqual(response.status_code, 302) +        base_profile = models.UserProfile.objects.get(pk=base_profile.pk) +        self.assertEqual( +            base_profile.name, +            u"New name" +        ) + +        self.client.post( +            base_url, {'delete_profile': True, 'name': "New name", +                       "current_profile": base_profile.pk}) +        self.assertEqual(response.status_code, 302) +        # cannot delete a profile it is the last of his kind +        self.assertEqual( +            self.user.ishtaruser.person.profiles.count(), +            1 +        ) + +        self.client.post( +            base_url, {'name': "New name", 'duplicate_profile': True, +                       "current_profile": base_profile.pk}) +        self.assertEqual(response.status_code, 302) +        # duplicate +        self.assertEqual( +            self.user.ishtaruser.person.profiles.count(), +            2 +        ) +        # new current profile is the duplicated +        new_profile = self.user.ishtaruser.current_profile +        base_profile = models.UserProfile.objects.get(pk=base_profile.pk) +        self.assertNotEqual(base_profile.pk, +                            new_profile.pk) +        self.assertNotEqual(base_profile.name, +                            new_profile.name) + +        response = self.client.post( +            base_url, {'name': "New name", "current_profile": new_profile.pk}) +        self.assertIn( +            "errorlist nonfield", response.content, +            msg="An error should be isplayed as this name is already taken" +        ) + +        # the deletion can now occurs +        self.client.post( +            base_url, {'delete_profile': True, +                       "current_profile": base_profile.pk}) +        self.assertEqual( +            self.user.ishtaruser.person.profiles.count(), +            1 +        ) + +  class AdminGenTypeTest(TestCase):      fixtures = OPERATION_FIXTURES      gen_models = [ | 
