def test_simple(self): observer = create_class([], ['on_some_event', ])() subject = create_class(['some_event', ])() nmevent.adapt(observer, subject, "on_") self.assertEqual(observer.counter, 0) subject.some_event() self.assertEqual(observer.counter, 1) subject.some_event() self.assertEqual(observer.counter, 2)
def test_nested(self): subject = create_class(['some_event'], [], { 'attr1': create_class([], [], { 'attr2': create_class(['some_event', ]) }), })() observer = create_class([], ['on_attr1__attr2__some_event', ])() nmevent.adapt(observer, subject, "on_") self.assertEqual(observer.counter, 0) subject.attr1.attr2.some_event() subject.some_event() self.assertEqual(observer.counter, 1)
def test_disconnect(self): subject = create_class(['some_event', 'other_event', ], [], { 'attr1': create_class([], [], { 'attr2': create_class(['some_event', ]) }), })() observer = create_class([], [ 'on_some_event', 'on_other_event', 'on_attr1__attr2__some_event', ])() nmevent.adapt(observer, subject, "on_") self.assertTrue( observer.on_attr1__attr2__some_event in subject.attr1.attr2.some_event) self.assertTrue( observer.on_some_event in subject.some_event) self.assertTrue( observer.on_other_event in subject.other_event) nmevent.adapt(observer, subject, "on_", True) self.assertFalse( observer.on_attr1__attr2__some_event in subject.attr1.attr2.some_event) self.assertFalse( observer.on_some_event in subject.some_event) self.assertFalse( observer.on_other_event in subject.other_event)