from rest_framework.test import APITestCase, APIClient from api import models from api.tests import factories class LogoutApiTestCase(APITestCase): def test_get_sites_403(self): response = self.client.get('/api/sites/') self.assertEqual(403, response.status_code) class LoginApiTestCase(APITestCase): def setUp(self): self.user = factories.UserFactory() self.client = APIClient() self.client.force_authenticate(user=self.user) def test_get_empty_sites(self): request = self.client.get('/api/sites/') self.assertEqual(0, len(request.data['results'])) def test_retrieve_its_own_sites(self): site = factories.SiteFactory(user=self.user) request = self.client.get('/api/sites/') self.assertEqual(1, len(request.data['results'])) self.assertEqual(site.name, request.data['results'][0]['name']) def test_cant_retrieve_other_sites(self): not_my_site = factories.SiteFactory(user=factories.UserFactory()) request = self.client.get('/api/sites/%s/' % not_my_site.id) self.assertEqual(404, request.status_code) def test_delete_its_own_sites(self): site = factories.SiteFactory(user=self.user) self.assertEqual(1, models.Site.objects.all().count()) request = self.client.delete('/api/sites/%s/' % site.id) self.assertEqual(204, request.status_code) self.assertEqual(0, models.Site.objects.all().count()) def test_cant_delete_other_site(self): not_my_site = factories.SiteFactory(user=factories.UserFactory()) self.assertEqual(1, models.Site.objects.all().count()) request = self.client.delete('/api/sites/%s/' % not_my_site.id) self.assertEqual(404, request.status_code) self.assertEqual(1, models.Site.objects.all().count())