Structure
Each snippet is in a method called test_something, in a module called test_somethingXX.py, where XX is the version.
Files ending with 25 will demonstrate the python 2.x version of doing things, files ending with 30 will demonstrate the Python 3.0 version of doing it, and files ending with 26 should run on both Python 2.6 and 3.0.
You can run all the tests with runtest.py. You can run a subset of tests by adding a filter as a parameter. Hence "python2.5 runtest.py 25" will attempt to run all the 2.5 code with Python 2.5, which should run without failure, and "python3.0 runtest.py 25" attempts to run the 2.5 code with 3.0, which should run without successess.
makereport.py will run all tests with all three versions of Python, and print out a table of the results. It will mark unexpected results with exclamation marks. The following results are "unexpected":
test_xx25.py tests that fails under 2.5 or 2.6, or succeeds under 3.0. test_xx26.py tests that fails under 2.6 or 3.0. test_xx30.py tests that works under 2.5 or fails under 3.0.
Currently two 2.5 tests fail under 2.6, and is therefore normally marked with exclamation marks. It's tests using StringExceptions, which are gone in 2.6. If this really is unexpected is a matter of discussion, StringExceptions are deprecated in 2.5, so that they are gone shouldn't be a big surprise.