12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from django.shortcuts import reverse
- from rest_framework.test import APITestCase
- from model_bakery import baker
- 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)
|