From 2512ed5d2ff8831cbe86a0ffb3a309ba2fc2854f Mon Sep 17 00:00:00 2001 From: delthas Date: Thu, 9 Jul 2020 00:25:00 +0200 Subject: [PATCH 1/4] fix: starttls on the client when adding a client in a test case with ssl --- irctest/cases.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/irctest/cases.py b/irctest/cases.py index 74c32818..b5f810f1 100644 --- a/irctest/cases.py +++ b/irctest/cases.py @@ -267,6 +267,8 @@ def addClient(self, name=None, show_io=None): self.clients[name] = client_mock.ClientMock(name=name, show_io=show_io) self.clients[name].connect(self.hostname, self.port) + if self.ssl: + self.clients[name].starttls() return name From b29182e2df06851758b5e517dc2bfdfb6046ff59 Mon Sep 17 00:00:00 2001 From: delthas Date: Thu, 9 Jul 2020 00:25:49 +0200 Subject: [PATCH 2/4] fix assert error when sending client messages over TLS the python bug got fixed, so we need to allow both behaviours --- irctest/client_mock.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irctest/client_mock.py b/irctest/client_mock.py index f99cc3c4..6de51579 100644 --- a/irctest/client_mock.py +++ b/irctest/client_mock.py @@ -97,7 +97,7 @@ def sendLine(self, line): except BrokenPipeError: raise ConnectionClosed() if self.ssl: # https://bugs.python.org/issue25951 - assert ret == len(encoded_line), (ret, repr(encoded_line)) + assert ret is None or ret == len(encoded_line), (ret, repr(encoded_line)) else: assert ret is None, ret if self.show_io: From 00a72e8d9ae2a3d7e6556592f260f9edf7f90e0a Mon Sep 17 00:00:00 2001 From: delthas Date: Thu, 9 Jul 2020 00:26:45 +0200 Subject: [PATCH 3/4] fix running a test with caps when the caps are not supported we need to skip that test if the caps are not supported --- irctest/server_tests/test_regressions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irctest/server_tests/test_regressions.py b/irctest/server_tests/test_regressions.py index df1fbb5f..20aa0fd4 100644 --- a/irctest/server_tests/test_regressions.py +++ b/irctest/server_tests/test_regressions.py @@ -52,7 +52,7 @@ def testCaseChanges(self): @cases.SpecificationSelector.requiredBySpecification('IRCv3.2') def testTagCap(self): # regression test for oragono #754 - self.connectClient('alice', capabilities=['message-tags', 'batch', 'echo-message', 'server-time']) + self.connectClient('alice', capabilities=['message-tags', 'batch', 'echo-message', 'server-time'], skip_if_cap_nak=True) self.connectClient('bob') self.getMessages(1) self.getMessages(2) From de37467d6730fc67711aea864a0063ec2af08b50 Mon Sep 17 00:00:00 2001 From: delthas Date: Thu, 9 Jul 2020 00:28:32 +0200 Subject: [PATCH 4/4] fix: some servers do not prefix the username field with a tilde --- irctest/server_tests/test_user_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irctest/server_tests/test_user_commands.py b/irctest/server_tests/test_user_commands.py index 55d6539c..235e3f5b 100644 --- a/irctest/server_tests/test_user_commands.py +++ b/irctest/server_tests/test_user_commands.py @@ -27,7 +27,7 @@ def testWhoisUser(self): self.assertEqual(whois_user.command, RPL_WHOISUSER) # " * :" self.assertEqual(whois_user.params[1], nick) - self.assertEqual(whois_user.params[2], '~' + username) + self.assertIn(whois_user.params[2], ['~' + username, username]) # dumb regression test for oragono/oragono#355: self.assertNotIn(whois_user.params[3], [nick, username, '~' + username, realname]) self.assertEqual(whois_user.params[5], realname)