mirror of
https://github.com/django/django.git
synced 2025-07-05 02:09:13 +00:00
[gsoc2009-testing] Adding mock requests creation in django.test.mocks. Still needs tests and docs
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/test-improvements@11138 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b3a2f7f688
commit
614bc25954
38
django/test/mocks.py
Normal file
38
django/test/mocks.py
Normal file
@ -0,0 +1,38 @@
|
||||
from django.test import Client
|
||||
from django.core.handlers.wsgi import WSGIRequest
|
||||
|
||||
class RequestFactory(Client):
|
||||
"""
|
||||
Class that lets you create mock Request objects for use in testing.
|
||||
|
||||
Usage:
|
||||
|
||||
rf = RequestFactory()
|
||||
get_request = rf.get('/hello/')
|
||||
post_request = rf.post('/submit/', {'foo': 'bar'})
|
||||
|
||||
This class re-uses the django.test.client.Client interface, docs here:
|
||||
http://www.djangoproject.com/documentation/testing/#the-test-client
|
||||
|
||||
Once you have a request object you can pass it to any view function,
|
||||
just as if that view had been hooked up using a URLconf.
|
||||
|
||||
"""
|
||||
def request(self, **request):
|
||||
"""
|
||||
Similar to parent class, but returns the request object as soon as it
|
||||
has created it.
|
||||
"""
|
||||
environ = {
|
||||
'HTTP_COOKIE': self.cookies,
|
||||
'PATH_INFO': '/',
|
||||
'QUERY_STRING': '',
|
||||
'REQUEST_METHOD': 'GET',
|
||||
'SCRIPT_NAME': '',
|
||||
'SERVER_NAME': 'testserver',
|
||||
'SERVER_PORT': 80,
|
||||
'SERVER_PROTOCOL': 'HTTP/1.1',
|
||||
}
|
||||
environ.update(self.defaults)
|
||||
environ.update(request)
|
||||
return WSGIRequest(environ)
|
@ -243,12 +243,12 @@ class TransactionTestCase(unittest.TestCase):
|
||||
try:
|
||||
app_mods = cache.app_models[app_label]
|
||||
for tm in self.test_models:
|
||||
print "importing %s " % tm
|
||||
#print "importing %s " % tm
|
||||
im = importlib.import_module(tm)
|
||||
#cache.app_store[im] = len(cache.app_store)
|
||||
print "finding model classes"
|
||||
#print "finding model classes"
|
||||
mod_classes = [f for f in im.__dict__.values() if hasattr(f,'__bases__') and issubclass(f,models.Model)]
|
||||
print "Found models %s " % mod_classes
|
||||
#print "Found models %s " % mod_classes
|
||||
for mc in mod_classes:
|
||||
print "Adding %s to AppCache" % mc
|
||||
app_mods[mc.__name__.lower()] = mc
|
||||
@ -329,12 +329,12 @@ class TransactionTestCase(unittest.TestCase):
|
||||
app_mods = cache.app_models[app_label]
|
||||
print app_mods
|
||||
for tm in self.test_models:
|
||||
print "importing %s " % tm
|
||||
#print "importing %s " % tm
|
||||
im = importlib.import_module(tm)
|
||||
#cache.app_store[im] = len(cache.app_store)
|
||||
print "finding model classes"
|
||||
#print "finding model classes"
|
||||
mod_classes = [f for f in im.__dict__.values() if hasattr(f,'__bases__') and issubclass(f,models.Model)]
|
||||
print "Found models %s " % mod_classes
|
||||
#print "Found models %s " % mod_classes
|
||||
for mc in mod_classes:
|
||||
print "Deleting %s from AppCache" % mc
|
||||
del app_mods[mc.__name__.lower()]
|
||||
|
Loading…
x
Reference in New Issue
Block a user