So I'm here at PyCon and we keep getting more and more cool testing
ideas, I want them in Django, so I have teh following proposal, lemme
know what you think. I would love feedback of all flavors, both on the
application itself and what its proposing.

It's below in restructuredText:

Upgrade the Awesomness Quotient of the Django Test Utils and
Regression Suite
=============================================================================

Abstract
********

To fix and test, so cover the Admin site/
with Windmill use, avoiding the great fright.
At moment be, we cover not, popular/
is the admin but tested is not.
Great addition tests would be/
the key in promoting greater Django harmony.


The Problem
***********


Django has a fantastic set of regression tests which cover much of the
codebase, but the famous Admin interface isn't covered by any sort of
automated tests. In addition, the tools for testing a site under the
Django framework are weak, even if the API's available are quite
powerful.

Proposal
--------

Overall Django has some great testing tools, but the addition of a few
key integrations and tools could make it a much more comprehensive and
easy to use testsuite. Namely, nose runners and extensions, Windmill
integration, and some expansions to Eric's django-test-utils package.
Namely, I want to accomplish the following:

   1. Work with Windmill and Nose to make sure running django tests
with Nose and running Windmill tests through django is easy and
painless. This will mostly involve work on the external projects, and
probably won't touch Django proper. But in coordinating with these
projects, I also hope to provide any missing or needed extension
points in Django to make this integration possible.
   2. Expand the Django test runner to provide Code Coverage
statistics. There are already some efforts towards this goal underway,
and I don't plan on reinventing the wheel. My hope is to integrate
their work, and potentially expand it based on Django's community
requests. Most likely the base of this work will be figleaf, but I
plan on researching other options. Lastly, I want to evaluate the
coverage of Django's current regression suite and provide a wiki page/
writeup detailing any major deficiencies so that they can be
addressed.
   3. Utilize the new Windmill test support to provide coverage of the
Admin interface. This is an extremely large task overall, but given
how easy Windmill has made the creation of tests, I hope that I will
be able to provide coverage of a majority of the admin's
functionality. This will not include support for the
django.contrib.gis namespace, but I will try and test all other
namespaces that have Admin integration or functionality (namely auth,
admin and comments).
   4. The last major component of this project will be the extension
and expansion of the django-test-utils package to add the following
components:
         1. Update the TestGen Middleware to serialize all testing
data (probably just via cPickle initially) to disk.
         2. Implement a pluggable 'Processor' framework to generate
the runnable tests from the serialized request data.(Aka twill/django
unittest/unittest)
         3. A basic web interface to start/stop the TestingMiddleware
and display its status/results.
         4. Utilizing the new Plugin framework allow for test-time
analysis such as unused Context variables and dead links.
                 5. Integrate something like Werkzeug_ on test fails from web
interface runner.

Timeline
--------

Weekly I should be able to put in between 20-30 hours a week, but that
will be focused on the weekends. During the week I will have classes,
but will be available during many of them for discussion, but will
avoid coding. (I have 2 lab classes that require me to be in a room
for 4 hours, but most of the time is watching something settle or spin
or do nothing at all). A breakdown of my projected timing:
Week 1: Gain familiarity with Windmills capabilities and limitations,
start integration of existing work on Nose and Windmill support.
Week 2-3: Get code coverage working for both Django Regression Suite
and under a manage command.
Week 4: Write first Windmill test for admin. Determine the
'environment' or set of Models we will use to test the Admin, confirm
with community that I am testing *every* major feature available in
the Admin.
Week 5-10: Test mania. Windmill test writing fury. Breakdown goes:
- Model list page and single object add (simple forms)
- Changelist (filters/drilldown/search etc.)(no actions yet)
- single object delete + complex forms (datetime, image, slug etc.)
- inline objects
- actions and history
- misc features and remaining niches
Week 10-12: Discuss missing tests or other cases to check. Possibly
provide branch of tests for new admin work (if that project is
accepted for GSOC). Add cool fun features and integration to django-
test-utils.


About you
---------

I'm a long-time open source junkie in my last few quarters at Neumont
University. I've been writing Python the past 2 years or so, and have
been a Django user for the past year.

.. _Werkzeug: 
http://code.google.com/p/django-command-extensions/wiki/RunServerPlus

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to