mirror of
https://github.com/progval/irctest.git
synced 2025-04-07 15:59:49 +00:00
add a test for +m
This commit is contained in:
@ -842,6 +842,40 @@ class TopicPrivileges(cases.BaseServerTestCase):
|
||||
self.assertNotIn('TOPIC', replies)
|
||||
|
||||
|
||||
class ModeratedMode(cases.BaseServerTestCase):
|
||||
|
||||
@cases.SpecificationSelector.requiredBySpecification('RFC2812')
|
||||
def testModeratedMode(self):
|
||||
# test the +m channel mode
|
||||
self.connectClient('chanop', name='chanop')
|
||||
self.joinChannel('chanop', '#chan')
|
||||
self.getMessages('chanop')
|
||||
self.sendLine('chanop', 'MODE #chan +m')
|
||||
replies = self.getMessages('chanop')
|
||||
modeLines = [line for line in replies if line.command == 'MODE']
|
||||
self.assertMessageEqual(modeLines[0], command='MODE', params=['#chan', '+m'])
|
||||
|
||||
self.connectClient('baz', name='baz')
|
||||
self.joinChannel('baz', '#chan')
|
||||
self.getMessages('chanop')
|
||||
# this message should be suppressed completely by +m
|
||||
self.sendLine('baz', 'PRIVMSG #chan :hi from baz')
|
||||
replies = self.getMessages('baz')
|
||||
reply_cmds = {reply.command for reply in replies}
|
||||
self.assertIn(ERR_CANNOTSENDTOCHAN, reply_cmds)
|
||||
self.assertEqual(self.getMessages('chanop'), [])
|
||||
|
||||
# grant +v, user should be able to send messages
|
||||
self.sendLine('chanop', 'MODE #chan +v baz')
|
||||
self.getMessages('chanop')
|
||||
self.getMessages('baz')
|
||||
self.sendLine('baz', 'PRIVMSG #chan :hi again from baz')
|
||||
self.getMessages('baz')
|
||||
relays = self.getMessages('chanop')
|
||||
relay = relays[0]
|
||||
self.assertMessageEqual(relay, command='PRIVMSG', params=['#chan', 'hi again from baz'])
|
||||
|
||||
|
||||
class OpModerated(cases.BaseServerTestCase):
|
||||
|
||||
@cases.SpecificationSelector.requiredBySpecification('Oragono')
|
||||
|
Reference in New Issue
Block a user