1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- from django.shortcuts import reverse
- from model_bakery import baker
- from rest_framework.test import APITestCase
- from glitchtip import test_utils # pylint: disable=unused-import
- class OrgTeamTestCase(APITestCase):
- """Tests nested under /organizations/"""
- def setUp(self):
- self.user = baker.make("users.user")
- self.organization = baker.make("organizations_ext.Organization")
- self.organization.add_user(self.user)
- self.client.force_login(self.user)
- self.url = reverse("organization-teams-list", args=[self.organization.slug])
- def test_list(self):
- team = baker.make("teams.Team", organization=self.organization)
- other_organization = baker.make("organizations_ext.Organization")
- other_organization.add_user(self.user)
- other_team = baker.make("teams.Team", organization=other_organization)
- res = self.client.get(self.url)
- self.assertContains(res, team.slug)
- self.assertNotContains(res, other_team.slug)
- def test_create(self):
- data = {"slug": "team"}
- res = self.client.post(self.url, data)
- self.assertContains(res, data["slug"], status_code=201)
- def test_unauthorized_create(self):
- """Only admins can create teams for that org"""
- data = {"slug": "team"}
- organization = baker.make("organizations_ext.Organization")
- url = reverse("organization-teams-list", args=[organization.slug])
- res = self.client.post(url, data)
- # Not even in this org
- self.assertEqual(res.status_code, 400)
- admin_user = baker.make("users.user")
- organization.add_user(admin_user) # First user is always admin
- organization.add_user(self.user)
- res = self.client.post(url, data)
- # Not an admin
- self.assertEqual(res.status_code, 400)
- def test_invalid_create(self):
- url = reverse("organization-teams-list", args=["haha"])
- data = {"slug": "team"}
- res = self.client.post(url, data)
- self.assertEqual(res.status_code, 400)
- class TeamTestCase(APITestCase):
- def setUp(self):
- self.user = baker.make("users.user")
- self.organization = baker.make("organizations_ext.Organization")
- self.org_user = self.organization.add_user(self.user)
- self.client.force_login(self.user)
- self.url = reverse("team-list")
- def test_list(self):
- team = baker.make("teams.Team", organization=self.organization)
- other_team = baker.make("teams.Team")
- res = self.client.get(self.url)
- self.assertContains(res, team.slug)
- self.assertNotContains(res, other_team.slug)
- def test_retrieve(self):
- team = baker.make("teams.Team", organization=self.organization)
- team.members.add(self.org_user)
- url = reverse(
- "team-detail",
- kwargs={
- "pk": f"{self.organization.slug}/{team.slug}",
- },
- )
- res = self.client.get(url)
- self.assertContains(res, team.slug)
- self.assertTrue(res.data["isMember"])
- def test_invalid_retrieve(self):
- team = baker.make("teams.Team")
- url = reverse(
- "team-detail",
- kwargs={
- "pk": f"{self.organization.slug}/{team.slug}",
- },
- )
- res = self.client.get(url)
- self.assertEqual(res.status_code, 404)
|