diff --git a/irctest/server_tests/whois.py b/irctest/server_tests/whois.py index b9c1b3c..71e2a1a 100644 --- a/irctest/server_tests/whois.py +++ b/irctest/server_tests/whois.py @@ -8,6 +8,7 @@ import pytest from irctest import cases from irctest.numerics import ( + ERR_NOSUCHNICK, RPL_AWAY, RPL_ENDOFWHOIS, RPL_WHOISACCOUNT, @@ -217,6 +218,25 @@ class WhoisTestCase(_WhoisTestMixin, cases.BaseServerTestCase): whois_user.params[3], [nick, username, "~" + username, realname] ) + @cases.mark_specifications("RFC2812") + @cases.xfailIfSoftware(["Sable"], "https://github.com/Libera-Chat/sable/issues/101") + def testWhoisMissingUser(self): + """Test WHOIS on a nonexistent nickname.""" + self.connectClient("qux", name="qux") + self.sendLine("qux", "WHOIS bar") + messages = self.getMessages("qux") + self.assertEqual(len(messages), 2) + self.assertMessageMatch( + messages[0], + command=ERR_NOSUCHNICK, + params=["qux", "bar", ANYSTR], + ) + self.assertMessageMatch( + messages[1], + command=RPL_ENDOFWHOIS, + params=["qux", "bar", ANYSTR], + ) + @pytest.mark.parametrize( "away,oper", [(False, False), (True, False), (False, True)],