Changeset 6039
- Timestamp:
- 09/03/07 06:21:40 (1 year ago)
- Files:
-
- django/trunk/django/test/client.py (modified) (1 diff)
- django/trunk/django/test/testcases.py (modified) (1 diff)
- django/trunk/docs/testing.txt (modified) (3 diffs)
- django/trunk/tests/modeltests/test_client/models.py (modified) (1 diff)
- django/trunk/tests/regressiontests/test_client_regress/models.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/test_client_regress/urls.py (modified) (1 diff)
- django/trunk/tests/regressiontests/test_client_regress/views.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/test/client.py
r6023 r6039 183 183 raise self.exc_info[1], None, self.exc_info[2] 184 184 185 # Save the client and request that stimulated the response 186 response.client = self 187 response.request = request 188 185 189 # Add any rendered template detail to the response 186 190 # If there was only one template rendered (the most likely case), django/trunk/django/test/testcases.py
r6031 r6039 81 81 "Response redirected to '%s', expected '%s'" % (url, expected_url)) 82 82 83 redirect_response = self.client.get(path, QueryDict(query)) 83 # Get the redirection page, using the same client that was used 84 # to obtain the original response. 85 redirect_response = response.client.get(path, QueryDict(query)) 84 86 self.assertEqual(redirect_response.status_code, target_status_code, 85 87 "Couldn't retrieve redirection page '%s': response code was %d (expected %d)" % django/trunk/docs/testing.txt
r6031 r6039 578 578 Attribute Description 579 579 =============== ========================================================== 580 `` status_code`` The HTTP status of the response, as an integer. See581 RFC2616_ for a full list of HTTP status codes.580 ``client`` The test client that was used to make the request that 581 resulted in the response. 582 582 583 583 ``content`` The body of the response, as a string. This is the final 584 584 page content as rendered by the view, or any error 585 585 message (such as the URL for a 302 redirect). 586 587 ``context`` The template ``Context`` instance that was used to render 588 the template that produced the response content. 589 590 If the rendered page used multiple templates, then 591 ``context`` will be a list of ``Context`` 592 objects, in the order in which they were rendered. 593 594 ``request`` The request data that stimulated the response. 595 596 ``status_code`` The HTTP status of the response, as an integer. See 597 RFC2616_ for a full list of HTTP status codes. 586 598 587 599 ``template`` The ``Template`` instance that was used to render the … … 595 607 be a list of ``Template`` instances, in the order in 596 608 which they were rendered. 597 598 ``context`` The template ``Context`` instance that was used to render599 the template that produced the response content.600 601 As with ``template``, if the rendered page used multiple602 templates, then ``context`` will be a list of ``Context``603 objects, in the order in which they were rendered.604 609 =============== ========================================================== 605 610 … … 829 834 ``assertRedirects(response, expected_url, status_code=302, target_status_code=200)`` 830 835 Asserts that the response return a ``status_code`` redirect status, 831 it redirected to ``expected_url`` (including any GET data), and the subsequent 836 it redirected to ``expected_url`` (including any GET data), and the subsequent 832 837 page was received with ``target_status_code``. 833 838 django/trunk/tests/modeltests/test_client/models.py
r6031 r6039 235 235 236 236 # Log in 237 self.client.login(username='testclient', password='password') 237 login = self.client.login(username='testclient', password='password') 238 self.assertTrue(login, 'Could not log in') 238 239 239 240 # Request a page that requires a login django/trunk/tests/regressiontests/test_client_regress/models.py
r6031 r6039 213 213 self.assertEqual(str(e), "The field 'email' on form 'form' in context 0 does not contain the error 'Some error.' (actual errors: [u'Enter a valid e-mail address.'])") 214 214 215 class AssertFileUploadTests(TestCase):215 class FileUploadTests(TestCase): 216 216 def test_simple_upload(self): 217 217 fd = open(os.path.join(os.path.dirname(__file__), "views.py")) … … 222 222 response = self.client.post('/test_client_regress/file_upload/', post_data) 223 223 self.assertEqual(response.status_code, 200) 224 225 class LoginTests(TestCase): 226 fixtures = ['testdata'] 227 228 def test_login_different_client(self): 229 "Check that using a different test client doesn't violate authentication" 230 231 # Create a second client, and log in. 232 c = Client() 233 login = c.login(username='testclient', password='password') 234 self.assertTrue(login, 'Could not log in') 235 236 # Get a redirection page with the second client. 237 response = c.get("/test_client_regress/login_protected_redirect_view/") 238 239 # At this points, the self.client isn't logged in. 240 # Check that assertRedirects uses the original client, not the 241 # default client. 242 self.assertRedirects(response, "/test_client_regress/get_view/") django/trunk/tests/regressiontests/test_client_regress/urls.py
r5876 r6039 5 5 (r'^no_template_view/$', views.no_template_view), 6 6 (r'^file_upload/$', views.file_upload_view), 7 (r'^get_view/$', views.get_view), 8 (r'^login_protected_redirect_view/$', views.login_protected_redirect_view) 7 9 ) django/trunk/tests/regressiontests/test_client_regress/views.py
r5876 r6039 1 from django.contrib.auth.decorators import login_required 1 2 from django.core.mail import EmailMessage, SMTPConnection 2 from django.http import HttpResponse, HttpResponse ServerError3 from django.http import HttpResponse, HttpResponseRedirect, HttpResponseServerError 3 4 from django.shortcuts import render_to_response 4 5 … … 19 20 return HttpResponseServerError() 20 21 22 def get_view(request): 23 "A simple login protected view" 24 return HttpResponse("Hello world") 25 get_view = login_required(get_view) 26 27 def login_protected_redirect_view(request): 28 "A view that redirects all requests to the GET view" 29 return HttpResponseRedirect('/test_client_regress/get_view/') 30 login_protected_redirect_view = login_required(login_protected_redirect_view)
