def __new__(cls, name, bases, attrs): super_new = super(PanelMeta, cls).__new__ parents = [b for b in bases if isinstance(b, PanelMeta)] if not parents: # If this isn't a subclass of Panel, don't do anything special. return super_new(cls, name, bases, attrs) new_class = super_new(cls, name, bases, {}) meta = attrs.pop('Meta', None) new_class.add_to_class('_meta', PanelOptions(meta)) for attr_name, attr_value in attrs.items(): new_class.add_to_class(attr_name, attr_value) site.register(new_class) return new_class
def setUp(self): site._auto_discover() self._registry_backup = site.__class__._panels site.__class__._panels = {} site.register(TestPanel) site.register(TestPanelWithMeta) site.register(TestPanelWithDimensions)