From d29c0035e6a3f119e5d139da008e2120c82db453 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Fri, 3 Dec 2021 01:46:15 -0500 Subject: [PATCH] test that ERR_UNKNOWNCOMMAND is labeled If an invalid command is sent with a valid label, it should receive ERR_UNKNOWNCOMMAND with a label (comparable to other error responses). --- irctest/server_tests/labeled_responses.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/irctest/server_tests/labeled_responses.py b/irctest/server_tests/labeled_responses.py index d923032..acef9b9 100644 --- a/irctest/server_tests/labeled_responses.py +++ b/irctest/server_tests/labeled_responses.py @@ -10,6 +10,7 @@ import re import pytest from irctest import cases +from irctest.numerics import ERR_UNKNOWNCOMMAND from irctest.patma import ANYDICT, AnyOptStr, NotStrRe, RemainingKeys, StrRe @@ -502,3 +503,19 @@ class LabeledResponsesTestCase(cases.BaseServerTestCase, cases.OptionalityHelper ack = ms[0] self.assertMessageMatch(ack, command="ACK", tags={"label": "98765"}) + + @cases.mark_capabilities("labeled-response") + def testUnknownCommand(self): + self.connectClient( + "bar", capabilities=["batch", "labeled-response"], skip_if_cap_nak=True + ) + + # this command doesn't exist, but the error response should still + # be labeled: + self.sendLine(1, "@label=deadbeef NONEXISTENT_COMMAND") + ms = self.getMessages(1) + self.assertEqual(len(ms), 1) + unknowncommand = ms[0] + self.assertMessageMatch( + unknowncommand, command=ERR_UNKNOWNCOMMAND, tags={"label": "deadbeef"} + )