Skip to content

Commit

Permalink
Added paremeter user to MockHttpRequest. Added tests for http module.
Browse files Browse the repository at this point in the history
  • Loading branch information
alej0varas committed Jan 30, 2013
1 parent 7ab8e2c commit 86408b3
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
*.egg-info/ *.egg-info/
/dist /dist
/build /build
*~
5 changes: 4 additions & 1 deletion mock_django/http.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def _set_raw_post_data(self, data):
raw_post_data = property(_get_raw_post_data, _set_raw_post_data) raw_post_data = property(_get_raw_post_data, _set_raw_post_data)




def MockHttpRequest(path='/', method='GET', GET=None, POST=None, META=None): def MockHttpRequest(path='/', method='GET', GET=None, POST=None, META=None, user=AnonymousUser):
if GET is None: if GET is None:
GET = {} GET = {}
if POST is None: if POST is None:
Expand All @@ -54,11 +54,14 @@ def MockHttpRequest(path='/', method='GET', GET=None, POST=None, META=None):
'HTTP_REFERER': '', 'HTTP_REFERER': '',
'SERVER_NAME': 'testserver', 'SERVER_NAME': 'testserver',
} }
if user is not None:
user = user()


request = WsgiHttpRequest() request = WsgiHttpRequest()
request.path = request.path_info = path request.path = request.path_info = path
request.method = method request.method = method
request.META = META request.META = META
request.GET = GET request.GET = GET
request.POST = POST request.POST = POST
request.user = user
return request return request
Empty file.
78 changes: 78 additions & 0 deletions tests/mock_django/http/tests.py
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,78 @@
from unittest2 import TestCase
from urllib import urlencode

from django.contrib.auth.models import AnonymousUser
from django.utils.datastructures import MergeDict

from mock import Mock

from mock_django.http import MockHttpRequest
from mock_django.http import WsgiHttpRequest


class WsgiHttpRequestTest(TestCase):
def test_instance(self):
wsgi_r = WsgiHttpRequest()

self.assertTrue(isinstance(wsgi_r.user, AnonymousUser))
self.assertEqual({}, wsgi_r.session)
self.assertEqual({}, wsgi_r.META)
self.assertEqual({}, wsgi_r.GET)
self.assertEqual({}, wsgi_r.POST)

def test__get_request(self):
wsgi_r = WsgiHttpRequest()
expected_items = MergeDict({}, {}).items()

wsgi_r.GET = {}
wsgi_r.POST = {}

self.assertListEqual(sorted(expected_items),
sorted(wsgi_r._get_request().items()))

def test_REQUEST_property(self):
self.assertTrue(isinstance(WsgiHttpRequest.REQUEST, property))

def test__get_raw_post_data(self):
wsgi_r = WsgiHttpRequest()

wsgi_r._get_raw_post_data()

self.assertEqual(urlencode({}), wsgi_r._raw_post_data)

def test__set_raw_post_data(self):
wsgi_r = WsgiHttpRequest()

wsgi_r._set_raw_post_data('')

self.assertEqual({}, wsgi_r.POST)
self.assertEqual(urlencode({}), wsgi_r._raw_post_data)

def test_raw_post_data_property(self):
self.assertTrue(isinstance(WsgiHttpRequest.raw_post_data, property))


class MockHttpRequestTest(TestCase):
def test_call(self):
result = MockHttpRequest()
meta = {
'REMOTE_ADDR': '127.0.0.1',
'SERVER_PORT': '8000',
'HTTP_REFERER': '',
'SERVER_NAME': 'testserver',
}

self.assertTrue(isinstance(result, WsgiHttpRequest))
self.assertEqual('/', result.path)
self.assertEqual('GET', result.method)
self.assertEqual(meta, result.META)
self.assertEqual({}, result.GET)
self.assertEqual({}, result.POST)
self.assertTrue(isinstance(result.user, AnonymousUser))

def test_call(self):
mock_user = Mock()

result = MockHttpRequest(user=mock_user)

self.assertTrue(isinstance(result.user, Mock))

0 comments on commit 86408b3

Please sign in to comment.