test_token_policies.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. from rest_framework import status
  2. from desecapi.tests.base import DomainOwnerTestCase
  3. class TokenPoliciesTestCase(DomainOwnerTestCase):
  4. def setUp(self):
  5. super().setUp()
  6. self.client.credentials() # remove default credential (corresponding to domain owner)
  7. self.token_manage = self.create_token(self.owner, perm_manage_tokens=True)
  8. self.other_token = self.create_token(self.user)
  9. def test_policies(self):
  10. url = DomainOwnerTestCase.reverse(
  11. "v1:token-policies-root", token_id=self.token.id
  12. )
  13. kwargs = {}
  14. response = self.client.get(url, **kwargs)
  15. self.assertStatus(response, status.HTTP_401_UNAUTHORIZED)
  16. kwargs.update(HTTP_AUTHORIZATION=f"Token {self.token_manage.plain}")
  17. response = self.client.get(url, **kwargs)
  18. self.assertStatus(response, status.HTTP_200_OK)
  19. kwargs.update(HTTP_AUTHORIZATION=f"Token {self.token.plain}")
  20. response = self.client.get(url, **kwargs)
  21. self.assertStatus(response, status.HTTP_200_OK)
  22. url = DomainOwnerTestCase.reverse(
  23. "v1:token-policies-root", token_id=self.token_manage.id
  24. )
  25. response = self.client.get(url, **kwargs)
  26. self.assertStatus(response, status.HTTP_403_FORBIDDEN)