Add BanMode tests.

This commit is contained in:
Valentin Lorentz 2021-02-27 09:05:37 +01:00 committed by Valentin Lorentz
parent 51d0ce4483
commit da9567b612

View File

@ -7,6 +7,7 @@ from irctest import cases, client_mock, runner
from irctest.irc_utils import ambiguities
from irctest.numerics import (
ERR_BADCHANNELKEY,
ERR_BANNEDFROMCHAN,
ERR_CANNOTSENDTOCHAN,
ERR_CHANOPRIVSNEEDED,
ERR_INVALIDMODEPARAM,
@ -1038,6 +1039,49 @@ class TopicPrivileges(cases.BaseServerTestCase):
)
class BanMode(cases.BaseServerTestCase):
@cases.mark_specifications("RFC1459", "RFC2812")
def testBan(self):
"""Basic ban operation"""
self.connectClient("chanop", name="chanop")
self.joinChannel("chanop", "#chan")
self.getMessages("chanop")
self.sendLine("chanop", "MODE #chan +b bar!*@*")
self.assertMessageEqual(self.getMessage("chanop"), command="MODE")
self.connectClient("Bar", name="bar", capabilities=["echo-message"])
self.getMessages("bar")
self.sendLine("bar", "JOIN #chan")
self.assertMessageEqual(self.getMessage("bar"), command=ERR_BANNEDFROMCHAN)
self.sendLine("chanop", "MODE #chan -b bar!*@*")
self.assertMessageEqual(self.getMessage("chanop"), command="MODE")
self.sendLine("bar", "JOIN #chan")
self.assertMessageEqual(self.getMessage("bar"), command="JOIN")
@cases.mark_specifications("Oragono")
def testCaseInsensitive(self):
"""Some clients allow unsetting modes if their argument matches
up to normalization"""
self.connectClient("chanop", name="chanop")
self.joinChannel("chanop", "#chan")
self.getMessages("chanop")
self.sendLine("chanop", "MODE #chan +b BAR!*@*")
self.assertMessageEqual(self.getMessage("chanop"), command="MODE")
self.connectClient("Bar", name="bar", capabilities=["echo-message"])
self.getMessages("bar")
self.sendLine("bar", "JOIN #chan")
self.assertMessageEqual(self.getMessage("bar"), command=ERR_BANNEDFROMCHAN)
self.sendLine("chanop", "MODE #chan -b bar!*@*")
self.assertMessageEqual(self.getMessage("chanop"), command="MODE")
self.sendLine("bar", "JOIN #chan")
self.assertMessageEqual(self.getMessage("bar"), command="JOIN")
class ModeratedMode(cases.BaseServerTestCase):
@cases.mark_specifications("RFC2812")
def testModeratedMode(self):