def test_post__add__no_perms(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': None, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user(permissions=['daguerre.change_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) with self.assertNumQueries(1): response = view.post(request) self.assertEqual(response.status_code, 403) self.assertEqual(Area.objects.count(), 1) self.assertEqual(force_text(response.content), '')
def test_post__add__no_perms(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': None, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user(permissions=['daguerre.change_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) with self.assertNumQueries(1): response = view.post(request) self.assertEqual(response.status_code, 403) self.assertEqual(Area.objects.count(), 1) self.assertEqual(force_text(response.content), '')
def test_post__add(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': None, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user(permissions=['daguerre.change_area', 'daguerre.add_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) self.assertTrue(request.user.has_perm('daguerre.add_area')) with self.assertNumQueries(3): response = view.post(request) self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], "application/json") self.assertEqual(Area.objects.count(), 2) data = json.loads(force_text(response.content)) new_area = Area.objects.exclude(pk=area.pk).get() self.assertEqual(data, new_area.serialize()) del data['storage_path'] del data['id'] self.assertEqual(data, params)
def test_post__no_change_perms(self): view = AjaxUpdateAreaView() request = self.factory.post('/', HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = AnonymousUser() self.assertFalse(request.user.has_perm('daguerre.change_area')) with self.assertNumQueries(0): response = view.post(request) self.assertEqual(response.status_code, 403) self.assertEqual(response.content, '')
def test_post__no_change_perms(self): view = AjaxUpdateAreaView() request = self.factory.post('/', HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = AnonymousUser() self.assertFalse(request.user.has_perm('daguerre.change_area')) with self.assertNumQueries(0): response = view.post(request) self.assertEqual(response.status_code, 403) self.assertEqual(force_text(response.content), '')
def test_post__update(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) old_serialize = area.serialize() view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': area.pk, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user(permissions=['daguerre.change_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) # SB: Used to assert 4 - don't remember why. # Three queries expected: get the area, update the area, # and clear the adjustment cache. with self.assertNumQueries(3): response = view.post(request) self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], "application/json") self.assertEqual(Area.objects.count(), 1) data = json.loads(force_text(response.content)) new_area = Area.objects.get(pk=area.pk, storage_path=area.storage_path) self.assertEqual(data, new_area.serialize()) self.assertNotEqual(data, old_serialize) del data['storage_path'] del data['id'] self.assertEqual(data, params)
def test_post__update(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) old_serialize = area.serialize() view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': area.pk, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user(permissions=['daguerre.change_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) # SB: Used to assert 4 - don't remember why. # Three queries expected: get the area, update the area, # and clear the adjustment cache. with self.assertNumQueries(3): response = view.post(request) self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], "application/json") self.assertEqual(Area.objects.count(), 1) data = json.loads(force_text(response.content)) new_area = Area.objects.get(pk=area.pk, storage_path=area.storage_path) self.assertEqual(data, new_area.serialize()) self.assertNotEqual(data, old_serialize) del data['storage_path'] del data['id'] self.assertEqual(data, params)
def test_post__add(self): area = self.create_area(x2=50, y2=50) self.assertEqual(Area.objects.count(), 1) view = AjaxUpdateAreaView() view.kwargs = { 'storage_path': area.storage_path, 'pk': None, } params = { 'x1': 50, 'y1': 50, 'x2': 100, 'y2': 100, 'priority': 1, 'name': 'fun' } request = self.factory.post('/', params, HTTP_X_REQUESTED_WITH='XMLHttpRequest') request.user = self.create_user( permissions=['daguerre.change_area', 'daguerre.add_area']) self.assertTrue(request.user.has_perm('daguerre.change_area')) self.assertTrue(request.user.has_perm('daguerre.add_area')) with self.assertNumQueries(3): response = view.post(request) self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], "application/json") self.assertEqual(Area.objects.count(), 2) data = json.loads(force_text(response.content)) new_area = Area.objects.exclude(pk=area.pk).get() self.assertEqual(data, new_area.serialize()) del data['storage_path'] del data['id'] self.assertEqual(data, params)