mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Added a default test Client to TestCase, and added some assertions for some common testing patterns.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5150 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import re, doctest, unittest
|
||||
from urlparse import urlparse
|
||||
from django.db import transaction
|
||||
from django.core import management
|
||||
from django.db.models import get_apps
|
||||
|
||||
from django.test.client import Client
|
||||
|
||||
normalize_long_ints = lambda s: re.sub(r'(?<![\w])(\d+)L(?![\w])', '\\1', s)
|
||||
|
||||
class OutputChecker(doctest.OutputChecker):
|
||||
@@ -46,5 +48,33 @@ class TestCase(unittest.TestCase):
|
||||
super().
|
||||
|
||||
"""
|
||||
self.client = Client()
|
||||
self.install_fixtures()
|
||||
super(TestCase, self).run(result)
|
||||
|
||||
def assertRedirects(self, response, expected_path):
|
||||
"""Assert that a response redirected to a specific URL, and that the
|
||||
redirect URL can be loaded.
|
||||
|
||||
"""
|
||||
self.assertEqual(response.status_code, 302,
|
||||
"Response didn't redirect: Reponse code was %d" % response.status_code)
|
||||
scheme, netloc, path, params, query, fragment = urlparse(response['Location'])
|
||||
self.assertEqual(path, expected_path,
|
||||
"Response redirected to '%s', expected '%s'" % (path, expected_path))
|
||||
redirect_response = self.client.get(path)
|
||||
self.assertEqual(redirect_response.status_code, 200,
|
||||
"Couldn't retrieve redirection page '%s'" % path)
|
||||
|
||||
def assertContains(self, response, text, count=1):
|
||||
"""Assert that a response indicates that a page was retreived successfully,
|
||||
(i.e., the HTTP status code was 200), and that ``text`` occurs ``count``
|
||||
times in the content of the response.
|
||||
|
||||
"""
|
||||
self.assertEqual(response.status_code, 200,
|
||||
"Couldn't retrieve page'")
|
||||
real_count = response.content.count(text)
|
||||
self.assertEqual(real_count, count,
|
||||
"Could only find %d of %d instances of '%s' in response" % (real_count, count, text))
|
||||
|
||||
Reference in New Issue
Block a user