def test_nativeext_submanager(self): class Mine(instrumentation.ClassManager): pass class A(object): __sa_instrumentation_manager__ = Mine register_class(A) eq_(type(instrumentation.manager_of_class(A)), Mine)
def test_nativeext_interfaceexact(self): class A(object): __sa_instrumentation_manager__ = instrumentation.InstrumentationManager register_class(A) ne_(type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_customfinder_pass(self): class A(object): pass def find(cls): return None instrumentation.instrumentation_finders.insert(0, find) register_class(A) eq_(type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_standard(self): class A(object): pass register_class(A) eq_(type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_alternate_finders(self): """Ensure the generic finder front-end deals with edge cases.""" class Unknown(object): pass class Known(MyBaseClass): pass register_class(Known) k, u = Known(), Unknown() assert instrumentation.manager_of_class(Unknown) is None assert instrumentation.manager_of_class(Known) is not None assert instrumentation.manager_of_class(None) is None assert attributes.instance_state(k) is not None assert_raises((AttributeError, KeyError), attributes.instance_state, u) assert_raises((AttributeError, KeyError), attributes.instance_state, None)
def test_nativeext_submanager(self): class Mine(instrumentation.ClassManager): pass class A(object): __sa_instrumentation_manager__ = Mine register_class(A) eq_(type(instrumentation.manager_of_class(A)), Mine)
def test_nativeext_interfaceexact(self): class A(object): __sa_instrumentation_manager__ = \ instrumentation.InstrumentationManager register_class(A) ne_( type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_standard(self): class A(object): pass register_class(A) eq_( type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_alternate_finders(self): """Ensure the generic finder front-end deals with edge cases.""" class Unknown(object): pass class Known(MyBaseClass): pass register_class(Known) k, u = Known(), Unknown() assert instrumentation.manager_of_class(Unknown) is None assert instrumentation.manager_of_class(Known) is not None assert instrumentation.manager_of_class(None) is None assert attributes.instance_state(k) is not None assert_raises((AttributeError, KeyError), attributes.instance_state, u) assert_raises((AttributeError, KeyError), attributes.instance_state, None)
def test_customfinder_pass(self): class A(object): pass def find(cls): return None instrumentation.instrumentation_finders.insert(0, find) register_class(A) eq_(type(instrumentation.manager_of_class(A)), instrumentation.ClassManager)
def test_subclassed(self): class MyEvents(events.InstanceEvents): pass class MyClassManager(instrumentation.ClassManager): dispatch = event.dispatcher(MyEvents) instrumentation.instrumentation_finders.insert(0, lambda cls: MyClassManager) class A(object): pass register_class(A) manager = instrumentation.manager_of_class(A) assert issubclass(manager.dispatch._events, MyEvents)
def test_subclassed(self): class MyEvents(events.InstanceEvents): pass class MyClassManager(instrumentation.ClassManager): dispatch = event.dispatcher(MyEvents) instrumentation.instrumentation_finders.insert( 0, lambda cls: MyClassManager) class A(object): pass register_class(A) manager = instrumentation.manager_of_class(A) assert issubclass(manager.dispatch._events, MyEvents)