by Dylan Reinhardt
Django is a powerful open source web framework that leverages the expressive power of the Python programming language. Each piece is well-documented and there are tutorials showing how to create small pieces of functionality. But that's the small picture... how do you leverage Django's power and flexibility to solve real-world business challenges?
I'm a developer tasked with exactly this responsibility. I develop and manage systems for a small (but growing) consulting firm that needs to deploy powerful web-based solutions quickly and cheaply. Django is frequently my tool of choice.
105 minutes isn't nearly enough to fully explore Django, but it might be just the right amount of time to show how an experienced Django developer would plan and execute a solution to a real-world problem. I have a couple different projects in mind, but I expect that the elements of a good project would include:
For purposes of the session, I'd be assuming a "stock" Django installation with the standard templating, ORM, etc.
This would assume familiarity with Python and Django basics, but no experience beyond the basic tutorials.
h2[=approaches]. Web Testing Approaches
Separating Concerns, Isolating Components
Unittesting vs Functional Testing
Full Monty (blurring the lines between unittesting and funcitonal testing)
h2[=toolsAndTech]. Tools and Technologies
Browser tools (Watir, Selenium, Windmill)
h2[=writingTest]. Writing Windmill Tests
The Windmill IDE
Using the recorder
Adding actions and assertions
Using the Inspector
h2[=debuggingTests]. Debugging Windmill Tests
Debugging Failed Actions
Firebug and Firebug Lite
Using the Lookup object
h2[=runningTests]. Running Tests Continuously
Command Line Features
Getting Windmill running in hosted environments like EC2
h2[=extra]. And now for something completely different
Dynamic testing (Windmill's eval APIs)
Testing Firefox Extensions (MozMill)
17th–19th June 2009