Django

Code

Ticket #6644 (new)

Opened 10 months ago

Last modified 4 months ago

FormPreview doesn't pass tests

Reported by: alfred.einstein@gmail.com Assigned to: simeon
Milestone: Component: django.contrib.formtools
Version: SVN Keywords:
Cc: Triage Stage: Accepted
Has patch: 1 Needs documentation: 1
Needs tests: 0 Patch needs improvement: 0

Description

adding 'django.contrib.formtools' to the installed apps and run:

./manage.py test

got:

..EEE.
======================================================================
ERROR: test_form_get (django.contrib.formtools.tests.PreviewTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/tests.py", line 48, in test_form_get
    response = self.client.get('/test1/')
  File "/home/visi/Devel/django/djtrunk/django/test/client.py", line 217, in get
    return self.request(**r)
  File "/home/visi/Devel/django/djtrunk/django/core/handlers/base.py", line 82, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 31, in __call__
    return method(request)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 54, in preview_get
    context_instance=RequestContext(request))
  File "/home/visi/djtrunk/django/shortcuts/__init__.py", line 18, in render_to_response
  File "/home/visi/djtrunk/django/template/loader.py", line 106, in render_to_string
  File "/home/visi/Devel/django/djtrunk/django/test/utils.py", line 21, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/__init__.py", line 748, in render
    bits.append(self.render_node(node, context))
  File "/home/visi/Devel/django/djtrunk/django/template/debug.py", line 71, in render_node
    result = node.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 71, in render
    compiled_parent = self.get_parent(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 66, in get_parent
    raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent
TemplateSyntaxError: Template u'base.html' cannot be extended, because it doesn't exist

======================================================================
ERROR: test_form_preview (django.contrib.formtools.tests.PreviewTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/tests.py", line 64, in test_form_preview
    response = self.client.post('/test1/', test_data)
  File "/home/visi/Devel/django/djtrunk/django/test/client.py", line 236, in post
    return self.request(**r)
  File "/home/visi/Devel/django/djtrunk/django/core/handlers/base.py", line 82, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 31, in __call__
    return method(request)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 63, in preview_post
    return render_to_response(self.preview_template, context, context_instance=RequestContext(request))
  File "/home/visi/djtrunk/django/shortcuts/__init__.py", line 18, in render_to_response
  File "/home/visi/djtrunk/django/template/loader.py", line 106, in render_to_string
  File "/home/visi/Devel/django/djtrunk/django/test/utils.py", line 21, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/__init__.py", line 748, in render
    bits.append(self.render_node(node, context))
  File "/home/visi/Devel/django/djtrunk/django/template/debug.py", line 71, in render_node
    result = node.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 71, in render
    compiled_parent = self.get_parent(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 66, in get_parent
    raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent
TemplateSyntaxError: Template u'base.html' cannot be extended, because it doesn't exist

======================================================================
ERROR: test_form_submit (django.contrib.formtools.tests.PreviewTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/tests.py", line 82, in test_form_submit
    response = self.client.post('/test1/', test_data)
  File "/home/visi/Devel/django/djtrunk/django/test/client.py", line 236, in post
    return self.request(**r)
  File "/home/visi/Devel/django/djtrunk/django/core/handlers/base.py", line 82, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 31, in __call__
    return method(request)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 72, in post_post
    return self.failed_hash(request) # Security hash failed.
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 116, in failed_hash
    return self.preview_post(request)
  File "/home/visi/Devel/django/djtrunk/django/contrib/formtools/preview.py", line 63, in preview_post
    return render_to_response(self.preview_template, context, context_instance=RequestContext(request))
  File "/home/visi/djtrunk/django/shortcuts/__init__.py", line 18, in render_to_response
  File "/home/visi/djtrunk/django/template/loader.py", line 106, in render_to_string
  File "/home/visi/Devel/django/djtrunk/django/test/utils.py", line 21, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/__init__.py", line 748, in render
    bits.append(self.render_node(node, context))
  File "/home/visi/Devel/django/djtrunk/django/template/debug.py", line 71, in render_node
    result = node.render(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 71, in render
    compiled_parent = self.get_parent(context)
  File "/home/visi/Devel/django/djtrunk/django/template/loader_tags.py", line 66, in get_parent
    raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent
TemplateSyntaxError: Template u'base.html' cannot be extended, because it doesn't exist

----------------------------------------------------------------------
Ran 6 tests in 0.623s

FAILED (errors=3)

Attachments

formtools.diff (1.5 kB) - added by simeon on 07/18/08 17:30:20.
Add tests/base.html to templates dir and hacks TEMPLATE_DIRS in testrunner to load
ticket-6644-r8233.diff (1.3 kB) - added by mcroydon on 08/08/08 11:57:47.
Updated patch to apply against r8233.

Change History

03/08/08 07:17:31 changed by PJCrosier

  • status changed from new to closed.
  • needs_better_patch changed.
  • resolution set to invalid.
  • needs_tests changed.
  • needs_docs changed.

Make sure TEMPLATE_DIRS is setup correctly, I can recreate the output above by purposely breaking my TEMPLATE_DIRS setting.

03/17/08 21:55:44 changed by James Zhu <james@yaean.com>

  • status changed from closed to reopened.
  • needs_docs set to 1.
  • resolution deleted.
  • needs_tests set to 1.

It seems that formtools tests assume there's a "base.html" in the TEMPLATE_DIRS, which contains a template block named "content". So the tests will fail if your project don't meet such requirements.

06/14/08 01:38:40 changed by Simon Greenhill

  • stage changed from Unreviewed to Accepted.

Can someone write up a patch?

07/18/08 17:30:20 changed by simeon

  • attachment formtools.diff added.

Add tests/base.html to templates dir and hacks TEMPLATE_DIRS in testrunner to load

07/18/08 17:32:35 changed by simeon

  • owner changed from nobody to simeon.
  • status changed from reopened to new.
  • has_patch set to 1.
  • needs_tests deleted.

Added patch (as per suggestion by Malcolm during sprint) to hack TEMPLATE_DIRS setting in testrunner only and supply a base.html template for the tests. Still not sure about requiring a base.html with content block, but this patch affects patch only, not the app itself.

07/19/08 16:27:36 changed by simeon

but this patch affects test only, not the app itself...

08/08/08 10:44:59 changed by mcroydon

  • owner changed from simeon to mcroydon.
  • status changed from new to assigned.

08/08/08 11:57:47 changed by mcroydon

  • attachment ticket-6644-r8233.diff added.

Updated patch to apply against r8233.

08/08/08 12:52:48 changed by mcroydon

  • owner changed from mcroydon to nobody.
  • status changed from assigned to new.

08/14/08 22:59:13 changed by simeon

  • owner changed from nobody to simeon.

Add/Change #6644 (FormPreview doesn't pass tests)




Change Properties
Action