예제 #1
0
 def test_ou1_u1_user_add(self):
     self.client.login(username="******", password="******")
     response = self.client.get("/manage/users/add/")
     self.assertEqual(response.status_code, 200)
     form = get_response_form(response)
     self.assertTrue(form.fields["ou"].required)
     self.assertEqual(set(a for a, b in form.fields["ou"].choices), set(["", self.ou1.pk, self.ou2.pk]))
     self.assertEqual(form.fields["ou"].initial, None)
     self.assertEqual(form.fields["ou"].widget.attrs, {})
     response = self.client.post(
         "/manage/users/add/",
         {
             "username": "******",
             "password1": "coin",
             "password2": "coin",
             "send_mail": "on",
             "ou": str(self.ou1.pk),
         },
     )
     self.assertEqual(response.status_code, 302)
     self.assertEqual(len(mail.outbox), 1)
     response = self.client.post(
         "/manage/users/add/",
         {
             "username": "******",
             "password1": "coin",
             "password2": "coin",
             "send_mail": "on",
             "ou": str(self.ou2.pk),
         },
     )
     self.assertEqual(response.status_code, 302)
     self.assertEqual(len(mail.outbox), 2)
예제 #2
0
 def test_superuser_user_add(self):
     self.client.login(username="******", password="******")
     response = self.client.get("/manage/users/add/")
     form = get_response_form(response)
     self.assertFalse(form.fields["ou"].required)
     self.assertEqual(
         set(a for a, b in form.fields["ou"].choices), set([""] + list(OU.objects.values_list("id", flat=True)))
     )
     self.assertEqual(form.fields["ou"].initial, None)
     self.assertEqual(form.fields["ou"].widget.attrs, {})
예제 #3
0
 def test_ou2_u1_user_add(self):
     self.client.login(username="******", password="******")
     response = self.client.get("/manage/users/add/")
     self.assertEqual(response.status_code, 200)
     form = get_response_form(response)
     self.assertTrue(form.fields["ou"].required)
     self.assertEqual(
         set(a for a, b in form.fields["ou"].choices),
         set(["", self.ou2.pk]),
         "admin of ou2 should only see its ou in ou list",
     )
     self.assertEqual(form.fields["ou"].initial, self.ou2.pk, "ou2 should be auto-selected for admin of ou2")
     self.assertEqual(
         form.fields["ou"].widget.attrs, {"readonly": "readonly"}, "admin of ou2 should not be able to change the ou"
     )
     response = self.client.post(
         "/manage/users/add/",
         {
             "username": "******",
             "email": "*****@*****.**",
             "password1": "coin",
             "password2": "coin",
             "send_mail": "on",
             "ou": str(self.ou1.pk),
         },
     )
     self.assertEqual(response.status_code, 200)
     doc = html.fromstring(response.content)
     self.assertEqual(
         len(doc.cssselect("p.error select#id_ou")), 1, "adding role in ou1 should fail for admin of ou2"
     )
     self.assertEqual(len(mail.outbox), 0)
     response = self.client.post(
         "/manage/users/add/",
         {
             "username": "******",
             "email": "*****@*****.**",
             "password1": "coin",
             "password2": "coin",
             "send_mail": "on",
             "ou": str(self.ou2.pk),
         },
     )
     self.assertEqual(response.status_code, 302)
     self.assertEqual(len(mail.outbox), 1)
     new_user_url = response["Location"]
     # check edition of newly created user
     response = self.client.get(new_user_url)
     form = get_response_form(response)
     self.assertEqual(form.instance.username, "ou2_u3")
     self.assertEqual(form.instance.email, "*****@*****.**")
     self.assertEqual(form.instance.ou, self.ou2)
     self.assertTrue(form.instance.check_password("coin"))
     self.assertTrue(form.fields["ou"].required)
     self.assertEqual(
         set(a for a, b in form.fields["ou"].choices),
         set(["", self.ou2.pk]),
         "admin of ou2 should only see its ou in ou list",
     )
     self.assertEqual(form.fields["ou"].initial, self.ou2.pk, "ou2 should be auto-selected for admin of ou2")
     self.assertEqual(
         form.fields["ou"].widget.attrs, {"readonly": "readonly"}, "admin of ou2 should not be able to change the ou"
     )