mirror of
https://github.com/progval/Limnoria.git
synced 2025-04-26 04:51:06 -05:00
ChannelLogger: write tests for relayed privmsg
This commit is contained in:
parent
7887001ea3
commit
01dc289cd6
@ -302,8 +302,8 @@ class ChannelLogger(callbacks.Plugin):
|
|||||||
if msg.command in ('PRIVMSG', 'NOTICE'):
|
if msg.command in ('PRIVMSG', 'NOTICE'):
|
||||||
rewriteRelayed = self.registryValue(
|
rewriteRelayed = self.registryValue(
|
||||||
'rewriteRelayed', msg.channel, irc.network)
|
'rewriteRelayed', msg.channel, irc.network)
|
||||||
if rewriteRelayed and 'echo-message' in self.state.capabilities_ack:
|
if rewriteRelayed and 'echo-message' in irc.state.capabilities_ack:
|
||||||
assert 'labeled-response' in self.state.capabilities_ack, \
|
assert 'labeled-response' in irc.state.capabilities_ack, \
|
||||||
'echo-message was negotiated without labeled-response.'
|
'echo-message was negotiated without labeled-response.'
|
||||||
# If we negotiated the echo-message cap, we have to remember
|
# If we negotiated the echo-message cap, we have to remember
|
||||||
# this message was relayed when the server sends it back to us.
|
# this message was relayed when the server sends it back to us.
|
||||||
|
@ -102,6 +102,49 @@ class ChannelLoggerTestCase(ChannelPluginTestCase):
|
|||||||
timestamp_re + '<foo> test message\n'
|
timestamp_re + '<foo> test message\n'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@patch_open
|
||||||
|
def testLogRewriteRelayedEmulatedEcho(self, mock_open):
|
||||||
|
with conf.supybot.plugins.ChannelLogger.rewriteRelayed.context(True):
|
||||||
|
log_file = io.StringIO()
|
||||||
|
mock_open.return_value = log_file
|
||||||
|
|
||||||
|
msg = ircmsgs.privmsg('#foo', '<someone> test message')
|
||||||
|
msg.tag('relayedMsg')
|
||||||
|
self.irc.getCallback('ChannelLogger').outFilter(self.irc, msg)
|
||||||
|
self.irc.feedMsg(msg)
|
||||||
|
|
||||||
|
self.assertRegex(
|
||||||
|
log_file.getvalue(),
|
||||||
|
timestamp_re + '<someone> test message\n'
|
||||||
|
)
|
||||||
|
|
||||||
|
@patch_open
|
||||||
|
def testLogRewriteRelayedRealEcho(self, mock_open):
|
||||||
|
with conf.supybot.plugins.ChannelLogger.rewriteRelayed.context(True):
|
||||||
|
log_file = io.StringIO()
|
||||||
|
mock_open.return_value = log_file
|
||||||
|
|
||||||
|
original_caps = self.irc.state.capabilities_ack
|
||||||
|
self.irc.state.capabilities_ack |= {
|
||||||
|
'echo-message', 'labeled-response'
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
out_msg = ircmsgs.privmsg('#foo', '<someone> test message')
|
||||||
|
out_msg.tag('relayedMsg')
|
||||||
|
self.irc.getCallback('ChannelLogger').outFilter(self.irc, out_msg)
|
||||||
|
finally:
|
||||||
|
self.irc.state.capabilities_ack = original_caps
|
||||||
|
|
||||||
|
msg = ircmsgs.privmsg('#foo', '<someone> test message')
|
||||||
|
msg.server_tags['label'] = out_msg.server_tags['label']
|
||||||
|
self.irc.feedMsg(msg)
|
||||||
|
|
||||||
|
self.assertRegex(
|
||||||
|
log_file.getvalue(),
|
||||||
|
timestamp_re + '<someone> test message\n'
|
||||||
|
)
|
||||||
|
|
||||||
@patch_open
|
@patch_open
|
||||||
def testLogNotice(self, mock_open):
|
def testLogNotice(self, mock_open):
|
||||||
log_file = io.StringIO()
|
log_file = io.StringIO()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user