コード例 #1
0
def test_messagebus_unsubscribe():
	"""
	Test unsubscribe from messages.
	"""
	cb = mock.Mock()
	sender = object()

	ExampleMessage.subscribe(cb)
	Message.subscribe(cb, sender=sender)

	# broadcast local and global message, cb called two times
	ExampleMessage.broadcast(sender)
	Message.broadcast(sender)
	assert cb.call_count == 2
	cb.reset_mock()

	# after unsubscribing globally, only the local message is received
	ExampleMessage.unsubscribe(cb)
	ExampleMessage.broadcast(sender)
	Message.broadcast(sender)
	assert_called_once_with_message(cb, Message, sender=sender)
	cb.reset_mock()

	# after unsubscribing locally, all subscriptions should be gone, cb not called
	Message.unsubscribe(cb, sender=sender)
	ExampleMessage.broadcast(sender)
	Message.broadcast(sender)
	assert not cb.called
コード例 #2
0
	def test_unsubscribe(self):
		ExampleMessage.subscribe(self.cb)
		Message.subscribe(self.cb, sender=self)

		# broadcast local and global message, cb called two times
		ExampleMessage.broadcast(self)
		Message.broadcast(self)
		assert self.cb.call_count == 2
		self.cb.reset_mock()

		# after unsubscribing globally, only the local message is received
		ExampleMessage.unsubscribe(self.cb)
		ExampleMessage.broadcast(self)
		Message.broadcast(self)
		self.assert_called_once_with(self.cb, Message, sender=self)
		self.cb.reset_mock()

		# after unsubscribing locally, all subscriptions should be gone, cb not called
		Message.unsubscribe(self.cb, sender=self)
		ExampleMessage.broadcast(self)
		Message.broadcast(self)
		self.assertFalse(self.cb.called)