def update(self, **kw):
        signal = kw.pop('_signal', True)
        old_attr = dict(self.__dict__)
        result = super(OnChangeMixin, self).update(_signal=signal, **kw)
        if signal and self.__class__ in _on_change_callbacks:
            self._send_changes(old_attr, kw)
        return result
Plugins should be invoked by their "check" method
dataset/ETHPy150Open mozilla/addons-server/src/olympia/amo/models.py/OnChangeMixin.update--crossover with--dataset/ETHPy150Open timothycrosley/frosted/frosted/test/test_plugins.py/test_plugins