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 | 4e274512cce1ea86f6efb250312833c8b1672fa4 (patch) | |
tree | 9a685b60c30550e2e383e574caf4fd448c13d3ea /ishtar_common/tests.py | |
parent | f5634457ef7882cbc9fcb30d0e12a61d4f13498a (diff) | |
download | Ishtar-4e274512cce1ea86f6efb250312833c8b1672fa4.tar.bz2 Ishtar-4e274512cce1ea86f6efb250312833c8b1672fa4.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 = [ |