def test_require_ajax(self): """ Test require ajax request or raise 404 """ non_ajax_request = self.factory.get('/') with self.assertRaises(Http404): HitCountJSONView.as_view()(non_ajax_request)
def test_count_hit(self): """ Test a valid request. """ response = HitCountJSONView.as_view()(self.request_post) self.assertEqual( response.content, b'{"hit_counted": true, "hit_message": "Hit counted: session key"}' )
def test_require_post_only(self): """ Test require POST request or raise 404 """ non_ajax_request = self.factory.get('/', HTTP_X_REQUESTED_WITH='XMLHttpRequest') non_ajax_request.session = self.store response = HitCountJSONView.as_view()(non_ajax_request) json_response = json.loads(response.content.decode()) json_expects = json.loads('{"error_message": "Hits counted via POST only.", "success": false}') self.assertEqual(json_response, json_expects)
def test_count_hit_invalid_hitcount_pk(self): """ Test a valid request with an invalid hitcount pk. """ wrong_pk_request = self.factory.post( '/', {'hitcountPK': 15}, REMOTE_ADDR="127.0.0.1", HTTP_USER_AGENT='my_clever_agent', HTTP_X_REQUESTED_WITH='XMLHttpRequest') wrong_pk_request.session = self.store response = HitCountJSONView.as_view()(wrong_pk_request) self.assertEqual(response.content, b'HitCount object_pk not working')
def test_require_post_only(self): """ Test require POST request or raise 404 """ non_ajax_request = self.factory.get( '/', HTTP_X_REQUESTED_WITH='XMLHttpRequest') non_ajax_request.session = self.store response = HitCountJSONView.as_view()(non_ajax_request) json_response = json.loads(response.content.decode()) json_expects = json.loads( '{"error_message": "Hits counted via POST only.", "success": false}' ) self.assertEqual(json_response, json_expects)
def test_count_hit(self): """ Test a valid request. """ response = HitCountJSONView.as_view()(self.request_post) self.assertEqual(response.content, b'{"hit_counted": true, "hit_message": "Hit counted: session key"}')
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf.urls import url from hitcount.views import HitCountJSONView urlpatterns = [ url(r'^hit/ajax/$', HitCountJSONView.as_view(), name='hit_ajax'), ]