summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
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
commit4e274512cce1ea86f6efb250312833c8b1672fa4 (patch)
tree9a685b60c30550e2e383e574caf4fd448c13d3ea /ishtar_common/tests.py
parentf5634457ef7882cbc9fcb30d0e12a61d4f13498a (diff)
downloadIshtar-4e274512cce1ea86f6efb250312833c8b1672fa4.tar.bz2
Ishtar-4e274512cce1ea86f6efb250312833c8b1672fa4.zip
Test: user profile form
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py71
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 = [