-
Using __bases__, a Capability might appear multiple times in iter_caps(). For example, a Module inheriting CapBank and CapDocument would have CapCollection twice. This is a problem for AbstractModule which relies on iter_caps for subclassing. Instead, rely on a class' mro(), which avoid duplicates and has the added benefit of having capabilities ordered properly for subclassing.
d3b07508