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 -~----------~----~----~----~------~----~------~--~---