On Nov 25, 10:56 pm, Malcolm Tredinnick <[EMAIL PROTECTED]>
wrote:
> On Tue, 2008-11-25 at 20:47 +0900, Russell Keith-Magee wrote:
> > On Tue, Nov 25, 2008 at 8:40 PM, Julien Phalip <[EMAIL PROTECTED]> wrote:
>
> > > Hi,
>
> > > I've got a view which uses a different template depending on an input
> > > parameter. For example:
>
> > > def my_view(request, theme):
> > >    ...
> > >    return render_to_response('my_app/%s/page.html' %s theme, {...})
>
> > > I would like to write some tests for this view, but I couldn't find
> > > any clean way to do so. So far, the only way I've found was to create
> > > a fake folder in the app's templates:
>
> > > my_app/
> > >    templates/
> > >        my_app/
> > >            test_blah/
> > >                page.html
> > >    models.py
> > >    tests.py
> > >    views.py
>
> > > And then I can test the view by sending it the parameter 'test_blah'.
> > > It works fine, but it means I have to ship my app with that dirty
> > > "test_blah" folder.
>
> > > Is there any other way to proceed?
>
> > Check out django.contrib.auth.tests.views.py. The ChangePasswordTest
> > does some fancy footwork during the setUp and tearDown to install some
> > templates for testing purposes. You still need to ship the templates
> > as part of your project tarball, but they don't need to be in a
> > production-visible location - you can hide them away as part of the
> > testing infrastructure.
>
> Another approach is to write a custom template loader that is used in
> your test settings file. There's nothing to say a template loader has to
> actually load a file. It has to return a template, given the name. You
> can do that however you like.
>
> Regards,
> Malcolm

Thanks also for this tip, Malcolm. Both approaches are quite elegant.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to