I'm about to upgrade a sizable client deployment to Plone 4 and wanted to see if I could switch to the Chameleon template engine at the same time. I'm recording things I found here:
Testing both with and without Chameleon
For some add-ons of mine, I found it useful to be able to run the tests both with and without Chameleon. It turns out to be remarkably simple with buildout.
Integrating cmf.pt and z3c.form
There are some gotchas when using both cmf.pt and z3c.form together. You have to be sure to include z3c.ptcompat, which you can do with z3c.form's poorly named "extra" extras_require. I did this in my project's setup.py by adding the following:
install_requires=[ ... 'z3c.form[extra]<2.3dev', ...
Unfortunately, z3c.ptcompat uses an environment variable to switch on the use of Chameleon so you have to add the environment variable to the buildout instances and test runners:
[instance] ... environment-vars = PREFER_Z3C_PT True ... [test] ... environment = testenv ... [testenv] PREFER_Z3C_PT = True