class UserTest(APITestCase): def SetUp(self): self.client = Client() self.client = User.objects.create( email='*****@*****.**', username='******', user_type=1, balance=1000, password='******', ) self.client.save() def test_create_user(self): url = reverse('create_user') data = { 'email': '*****@*****.**', 'username': '******', 'user_type': 1, 'balance': 1000, 'password': '******', } response = self.client.post(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(User.objects.get().username, 'testuser') def test_login(self): url = reverse('login') data = { 'username': '******', 'password': '******', } response = self.client.post(url, data) self.assertEqual(response.status_code, status.HTTP_302_FOUND) def test_user_list(self): self.client.login(username='******', password='******') response = self.client.get(reverse('user_list')) self.assertEqual(response.status_code, status.HTTP_200_OK)
class CredViewTests(TestCase): def setUp(self): self.group = Group(name="testgroup") self.group.save() self.othergroup = Group(name="othergroup") self.othergroup.save() self.tag = Tag(name="tag") self.tag.save() self.unorm = User(username="******", email="*****@*****.**") self.unorm.set_password("password") self.unorm.save() self.unorm.groups.add(self.group) self.unorm.save() self.ustaff = User(username="******", email="*****@*****.**", is_staff=True) self.ustaff.set_password("password") self.ustaff.save() self.ustaff.groups.add(self.othergroup) self.ustaff.save() self.nobody = User(username="******", email="*****@*****.**") self.nobody.set_password("password") self.nobody.save() self.norm = Client() self.norm.login(username="******", password="******") self.staff = Client() self.staff.login(username="******", password="******") self.nobody = Client() self.nobody.login(username="******", password="******") self.cred = Cred(title="secret", password="******", group=self.group) self.cred.save() self.tagcred = Cred(title="tagged", password="******", group=self.group) self.tagcred.save() self.tagcred.tags.add(self.tag) self.tagcred.save() CredChangeQ.objects.add_to_changeq(self.cred) def test_list_normal(self): resp = self.norm.get(reverse("cred.views.list")) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred in credlist) def test_list_staff(self): resp = self.staff.get(reverse("cred.views.list")) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) def test_list_by_tag_normal(self): resp = self.norm.get(reverse("cred.views.list_by_tag", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred in credlist) def test_list_by_tag_staff(self): resp = self.staff.get(reverse("cred.views.list_by_tag", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred not in credlist) def test_list_by_group_normal(self): resp = self.norm.get(reverse("cred.views.list_by_group", args=(self.group.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred in credlist) self.assertTrue(self.tagcred in credlist) def test_list_by_group_staff(self): resp = self.staff.get(reverse("cred.views.list_by_group", args=(self.othergroup.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred not in credlist) def test_list_by_group_nobody(self): resp = self.nobody.get(reverse("cred.views.list_by_group", args=(self.othergroup.id,))) self.assertEqual(resp.status_code, 404) def test_tags_normal(self): resp = self.norm.get(reverse("cred.views.tags")) self.assertEqual(resp.status_code, 200) taglist = resp.context["tags"] self.assertTrue(self.tag in taglist) self.assertEqual(len(taglist), 1) def test_list_by_search_normal(self): resp = self.norm.get(reverse("cred.views.list_by_search", args=("tag",))) self.assertEqual(resp.status_code, 200) taglist = resp.context["tag"] credlist = resp.context["credlist"].object_list self.assertTrue(self.tag in taglist) self.assertEqual(len(taglist), 1) self.assertTrue(self.tagcred in credlist) self.assertTrue(self.cred not in credlist) def test_detail_normal(self): resp = self.norm.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.cred.id) self.assertEqual(resp.context["credlogs"], None) resp = self.norm.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.tagcred.id) self.assertEqual(resp.context["credlogs"], None) def test_detail_staff(self): resp = self.staff.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.cred.id) self.assertNotEqual(resp.context["credlogs"], None) resp = self.staff.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.tagcred.id) self.assertNotEqual(resp.context["credlogs"], None) def test_detail_nobody(self): resp = self.nobody.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) resp = self.nobody.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 404) def test_add_normal(self): resp = self.norm.get(reverse("cred.views.add")) self.assertEqual(resp.status_code, 200) form = resp.context["form"] self.assertTrue(not form.is_valid()) resp = self.norm.post( reverse("cred.views.add"), {"title": "New Credential", "password": "******", "group": self.group.id, "icon": form["icon"].value()}, follow=True, ) self.assertEqual(resp.status_code, 200) newcred = Cred.objects.get(title="New Credential") self.assertEqual(newcred.password, "A password") def test_edit_normal(self): resp = self.norm.get(reverse("cred.views.edit", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["title"] = "New Title" resp = self.norm.post(reverse("cred.views.edit", args=(self.cred.id,)), post, follow=True) self.assertEqual(resp.status_code, 200) newcred = Cred.objects.get(id=self.cred.id) self.assertEqual(newcred.title, "New Title") def test_edit_nobody(self): resp = self.nobody.get(reverse("cred.views.edit", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) def test_delete_norm(self): resp = self.norm.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) resp = self.norm.post(reverse("cred.views.delete", args=(self.cred.id,))) delcred = Cred.objects.get(id=self.cred.id) self.assertTrue(delcred.is_deleted) def test_delete_staff(self): resp = self.staff.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) resp = self.staff.post(reverse("cred.views.delete", args=(self.cred.id,)), follow=True) self.assertEqual(resp.status_code, 200) delcred = Cred.objects.get(id=self.cred.id) self.assertTrue(delcred.is_deleted) def test_delete_nobody(self): resp = self.nobody.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) resp = self.nobody.post(reverse("cred.views.delete", args=(self.cred.id,)), follow=True) self.assertEqual(resp.status_code, 404) delcred = Cred.objects.get(id=self.cred.id) self.assertFalse(delcred.is_deleted) def test_tagadd_normal(self): resp = self.norm.get(reverse("cred.views.tagadd")) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["name"] = "New Tag" resp = self.norm.post(reverse("cred.views.tagadd"), post, follow=True) self.assertEqual(resp.status_code, 200) newcred = Tag.objects.get(name="New Tag") def test_tagedit_normal(self): resp = self.norm.get(reverse("cred.views.tagedit", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["name"] = "A Tag" resp = self.norm.post(reverse("cred.views.tagedit", args=(self.tag.id,)), post, follow=True) self.assertEqual(resp.status_code, 200) newtag = Tag.objects.get(name="A Tag") self.assertEqual(newtag.id, self.tag.id) def test_tagdelete_normal(self): resp = self.norm.get(reverse("cred.views.tagdelete", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) resp = self.staff.post(reverse("cred.views.tagdelete", args=(self.tag.id,)), follow=True) self.assertEqual(resp.status_code, 200) with self.assertRaises(Tag.DoesNotExist): deltag = Tag.objects.get(id=self.tag.id) def test_viewqueue_normal(self): resp = self.norm.get(reverse("cred.views.viewqueue")) self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.context["queue"]), 1) self.assertEqual(resp.context["queue"][0].cred.id, self.cred.id) def test_viewqueue_nobody(self): resp = self.nobody.get(reverse("cred.views.viewqueue")) self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.context["queue"]), 0) def test_addtoqueuestaff(self): resp = self.staff.get(reverse("cred.views.addtoqueue", args=(self.tagcred.id,)), follow=True) self.assertEqual(resp.status_code, 200) self.assertTrue(self.tagcred.on_changeq())