So You Want To Change Your Schema¶
This is a very brief overview of how to write upgrade tests for Axiom. I hope someone else will clean it up and add more information. This assumes familiarity with Axiom, Divmod project layout, trial unit tests, Combinator, and probably a dozen other things.
In order to understand the following you will need to look at these two modules:
axiom.test.historic.stub_catalog1to2
and
axiom.test.historic.test_catalog1to2
Do Stuff¶
write a file,
stub_foo1to2.py
(this should look vaguely like the aforementionedstub_catalog1to2.py
) in your project’stests/historic
directory, named appropriately for your object and versions. This is written using the old API, the one present in trunk before your branch is merged.the number in the call to saveStub is the revision of
$COMBINATOR_PROJECTS/Divmod/trunk
when you are writing the upgrader.% cd $COMBINATOR_PROJECTS/Divmod/branches/foo-19191919/Foo/foo/test/historic/ % chbranch Divmod trunk % python stub_foo1to2.py # this will create a file called 'foo1to2.axiom.tbz2'. % svn add foo1to2.axiom.tbz2
write
test_foo1to2.py
(this should look vaguely like the aforementionedtest_catalog1to2.py
), and it works like a regular trial test, except for loading your stub database automatically.