def test_registerChannel_calls_listen_once_for_system_channel(self): listener = PostgresListenerService() cursor = self.mock_cursor(listener) channel = factory.make_name("sys", sep="_").lower() listener.registerChannel(channel) self.assertThat(cursor.execute, MockCalledOnceWith("LISTEN %s;" % channel))
def test_registerChannel_calls_listen_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.registerChannel(channel) self.assertThat(cursor.execute, MockCalledOnceWith("LISTEN %s;" % channel))
def test_registerChannel_calls_listen_per_action_for_channel(self): listener = PostgresListenerService() listener.connection = MagicMock() cursor = MagicMock() listener.connection.cursor.return_value = cursor channel = factory.make_name("node") listener.registerChannel(channel) self.assertThat( cursor.execute, MockCallsMatch(call("LISTEN %s_create;" % channel), call("LISTEN %s_delete;" % channel), call("LISTEN %s_update;" % channel)))
def test_registerChannel_calls_listen_per_action_for_channel(self): listener = PostgresListenerService() cursor = self.mock_cursor(listener) channel = factory.make_name("node", sep="_").lower() listener.registerChannel(channel) self.assertThat( cursor.execute, MockCallsMatch( call("LISTEN %s_create;" % channel), call("LISTEN %s_delete;" % channel), call("LISTEN %s_update;" % channel), ), )
def test__tryConnection_reregisters_channels(self): listener = PostgresListenerService() handler = object() listener.register("channel", handler) yield listener.startService() yield listener.channelRegistrarDone listener.registerChannel = Mock() yield listener.stopService() yield listener.tryConnection() yield listener.channelRegistrarDone try: self.assertEqual([call("channel")], listener.registerChannel.mock_calls) self.assertEqual({"channel": [handler]}, listener.listeners) self.assertEqual(set(["channel"]), listener.registeredChannels) finally: yield listener.stopService()