Commit cc5477df authored by Jacob Kaplan-Moss's avatar Jacob Kaplan-Moss
Browse files

Fixed #7529: added a FILES section to the debug view. As a bonus, we've now got

the start of a suite of tests for the debug views. Thanks, Alex Gaynor.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10271 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 33e87318
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -611,6 +611,28 @@ Exception Value: {{ exception_value|escape }}
  {% else %}
    <p>No POST data</p>
  {% endif %}
  <h3 id="files-info">FILES</h3>
  {% if request.FILES %}
    <table class="req">
        <thead>
            <tr>
                <th>Variable</th>
                <th>Value</th>
            </tr>
        </thead>
        <tbody>
            {% for var in request.FILES.items %}
                <tr>
                    <td>{{ var.0 }}</td>
                    <td class="code"><div>{{ var.1|pprint }}</div></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
  {% else %}
    <p>No FILES data</p>
  {% endif %}
  

  <h3 id="cookie-info">COOKIES</h3>
  {% if request.COOKIES %}
+1 −0
Original line number Diff line number Diff line
@@ -3,3 +3,4 @@ from i18n import *
from static import *
from generic.date_based import *
from generic.create_update import *
from debug import *
+21 −0
Original line number Diff line number Diff line
from django.conf import settings
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase

class DebugViewTests(TestCase):
    def setUp(self):
        settings.DEBUG = True

    def tearDown(self):
        settings.DEBUG = False

    def test_files(self):
        response = self.client.get('/views/raises/')
        self.assertEquals(response.status_code, 500)

        data = {
            'file_data.txt': SimpleUploadedFile('file_data.txt', 'haha'),
        }
        response = self.client.post('/views/raises/', data)
        self.failUnless('file_data.txt' in response.content)
        self.failIf('haha' in response.content)
+5 −0
Original line number Diff line number Diff line
@@ -82,3 +82,8 @@ urlpatterns += patterns('django.views.generic.create_update',
    (r'^create_update/no_url/update/article/(?P<slug>[-\w]+)/$',
        'update_object', dict(slug_field='slug', model=UrlArticle)),
)

# a view that raises an exception for the debug view
urlpatterns += patterns('',
    (r'^raises/$', views.raises)
)
+9 −0
Original line number Diff line number Diff line
import sys

from django.http import HttpResponse
from django import forms
from django.views.debug import technical_500_response
from django.views.generic.create_update import create_object

from models import Article
@@ -27,3 +30,9 @@ def custom_create(request):
    return create_object(request,
        post_save_redirect='/views/create_update/view/article/%(slug)s/',
        form_class=SlugChangingArticleForm)

def raises(request):
    try:
        raise Exception
    except Exception:
        return technical_500_response(request, *sys.exc_info())