Example #1
0
	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)
Example #2
0
	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)
Example #3
0
	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)