I confess, I am a post-modern programmer. But Python makes it so easy...
Grig pointed out this short article at oreillynet.com: Web App Security Testing Using twill.
(who knew that writing documentation was such a good idea? ;)
As part of another project, I finally committed to a rewrite of cucumber (as I'd hoped to back in January). Announcing... cucumber2!
cucumber was a getattr-based object-relational mapping system for Python/PostgreSQL that used PostgreSQL's table inheritance to map objects into SQL tables without impedance mismatch.
cucumber2 is a more robust rewrite of cucumber. cucumber2 is based on new-style classes, metaclasses and properties, which means that things like inheritance (including multiple inheritance) work easily and directly.
cucumber has long been my pet project: an immensely useful little tool that I never got around to properly releasing. cucumber2 is much prettier in many ways, and I look forward to using it in several projects now that the package is cleaner.
A few random musings:
- First and foremost, metaclasses are wicked cool.
- Guido's 2.2 changes are very, very nice and put lots of power in the hands of the developer.
- Metaclasses are a very convenient way to do code generation. (I learned this trick from Daniel Arbuckle at a socal-piggies presentation.)
- nose Just Works.
- Strive for simplicity. It's in there somewhere, and when you find it, it's worth it.