pylib 1.0.0 released: the testing-with-python innovations continue
Took a few betas but finally i uploaded a 1.0.0 py lib release, featuring the mature and powerful py.test tool and "execnet-style" elastic distributed programming. With the new release, there are many new advanced automated testing features – here is a quick summary:
- funcargs – pythonic zero-boilerplate fixtures for Python test functions :
- totally separates test code, test configuration and test setup
- ideal for integration and functional tests
- allows for flexible and natural test parametrization schemes
- new plugin architecture, allowing easy-to-write project-specific and cross-project single-file plugins. The most notable new external plugin is oejskit which naturally enables running and reporting of javascript-unittests in real-life browsers.
- many new features done in easy-to-improve default plugins, highlights:
- xfail: mark tests as "expected to fail" and report separately.
- pastebin: automatically send tracebacks to pocoo paste service
- capture: flexibly capture stdout/stderr of subprocesses, per-test …
- monkeypatch: safely monkeypatch modules/classes from within tests
- unittest: run and integrate traditional unittest.py tests
- figleaf: generate html coverage reports with the figleaf module
- resultlog: generate buildbot-friendly reporting output
- …
- distributed testing and elastic distributed execution:
- new unified "TX" URL scheme for specifying remote processes
- new distribution modes "–dist=each" and "–dist=load"
- new sync/async ways to handle 1:N communication
- improved documentation
The py lib continues to offer most of the functionality used by the testing tool in independent namespaces.
Some non-test related code, notably greenlets/co-routines and api-generation now live as their own projects which simplifies the installation procedure because no C-Extensions are required anymore.
The whole package should work well with Linux, Win32 and OSX, on Python 2.3, 2.4, 2.5 and 2.6. (Expect Python3 compatibility soon!)
For more info, see the py.test and py lib documentation:
have fun, holger
Written by holger krekel
August 4, 2009 at 10:05 am
Posted in metaprogramming, testing
Tagged with metaprogramming, testing
5 Responses
Subscribe to comments with RSS.
Congratulations to the release! Looks really cool. At one point I should really try to get the Prolog plugin use some of the new cool hooks.
Carl Friedrich Bolz
August 4, 2009 at 10:50 am
carl friedrich: thanks and i think that when you port your Prolog plugin i am going to open a page dedicated to testing non-python items 🙂
holger krekel
August 4, 2009 at 1:32 pm
Hi Holger,
Nice work, I’ve been looking forward to this for a while. 🙂
Is it trivial to do ‘project-level setup’ (as opposed to module level) with 1.0? Can this be done in conftest?
Dusty Phillips
August 4, 2009 at 7:29 pm
Hi Dusty, i recommend to use “funcargs” with which you can indeed do setup in conftest.py’s, at module or class level or in cross-project plugins. That also helps you to manage scope-specific teardown.
cheers, holger
holger krekel
August 4, 2009 at 7:44 pm
I love funcargs, but last time I played with them, the request.cached_setup feature (exactly what I’m looking for now) was either not available or not documented. BTW You’ve written a LOT of documentation in the past several weeks: much appreciated!
Dusty Phillips
August 4, 2009 at 7:49 pm