示例#1
0
 def test_unregisterChannel_calls_unlisten_once_for_system_channel(self):
     listener = PostgresListenerService()
     listener.connection = MagicMock()
     cursor = MagicMock()
     listener.connection.cursor.return_value = cursor
     channel = factory.make_name("sys", sep="_").lower()
     listener.unregisterChannel(channel)
     self.assertThat(cursor.execute,
                     MockCalledOnceWith("UNLISTEN %s;" % channel))
示例#2
0
 def test_unregister_calls_unregisterChannel_when_connected(self):
     listener = PostgresListenerService()
     channel = factory.make_name("channel")
     listener.register(channel, sentinel.handler)
     listener.registeredChannels = True
     listener.connection = sentinel.connection
     mock_unregisterChannel = self.patch(listener, "unregisterChannel")
     listener.unregister(channel, sentinel.handler)
     self.assertThat(mock_unregisterChannel, MockCalledOnceWith(channel))
示例#3
0
 def test_unregister_doesnt_call_unregisterChannel_multi_handlers(self):
     listener = PostgresListenerService()
     channel = factory.make_name("channel", sep="_").lower()
     listener.register(channel, sentinel.handler)
     listener.register(channel, sentinel.other_handler)
     listener.registeredChannels = True
     listener.connection = sentinel.connection
     mock_unregisterChannel = self.patch(listener, "unregisterChannel")
     listener.unregister(channel, sentinel.handler)
     self.assertThat(mock_unregisterChannel, MockNotCalled())
示例#4
0
 def test_unregister_doesnt_call_unregisterChannel_multi_handlers(self):
     listener = PostgresListenerService()
     listener.HANDLE_NOTIFY_DELAY = listener.CHANNEL_REGISTRAR_DELAY = 0
     channel = factory.make_name("channel", sep="_").lower()
     listener.register(channel, sentinel.handler)
     listener.register(channel, sentinel.other_handler)
     listener.registeredChannels = set()
     listener.connection = MagicMock()
     mock_unregisterChannel = self.patch(listener, "unregisterChannel")
     listener.unregister(channel, sentinel.handler)
     yield listener.channelRegistrarDone
     self.assertThat(mock_unregisterChannel, MockNotCalled())
示例#5
0
 def test_unregisterChannel_calls_unlisten_per_action_for_channel(self):
     listener = PostgresListenerService()
     listener.connection = MagicMock()
     cursor = MagicMock()
     listener.connection.cursor.return_value = cursor
     channel = factory.make_name("node")
     listener.unregisterChannel(channel)
     self.assertThat(
         cursor.execute,
         MockCallsMatch(call("UNLISTEN %s_create;" % channel),
                        call("UNLISTEN %s_delete;" % channel),
                        call("UNLISTEN %s_update;" % channel)))