mirror of
https://github.com/progval/irctest.git
synced 2025-04-08 00:09:46 +00:00
add a test for +m
This commit is contained in:
@ -842,6 +842,40 @@ class TopicPrivileges(cases.BaseServerTestCase):
|
|||||||
self.assertNotIn('TOPIC', replies)
|
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):
|
class OpModerated(cases.BaseServerTestCase):
|
||||||
|
|
||||||
@cases.SpecificationSelector.requiredBySpecification('Oragono')
|
@cases.SpecificationSelector.requiredBySpecification('Oragono')
|
||||||
|
Reference in New Issue
Block a user