Product's initialize() is not called in unit tests
A product's initialize() in __init__.py is not called in unit testing, leading to all sorts of missing type errors
You forgot to call ZopeTestCase.installProduct('YourProduct') in your test code for all products used in unit testing.