Files
irctest/irctest/server_tests/test_extended_join.py
Shivaram Lingamneni 7b2efeb2d4 deflake another test
2019-02-17 18:23:52 -05:00

56 lines
2.4 KiB
Python

"""
<http://ircv3.net/specs/extensions/extended-join-3.1.html>
"""
from irctest import cases
class MetadataTestCase(cases.BaseServerTestCase, cases.OptionalityHelper):
def connectRegisteredClient(self, nick):
self.addClient()
self.sendLine(2, 'CAP LS 302')
capabilities = self.getCapLs(2)
assert 'sasl' in capabilities
self.sendLine(2, 'AUTHENTICATE PLAIN')
m = self.getMessage(2, filter_pred=lambda m:m.command != 'NOTICE')
self.assertMessageEqual(m, command='AUTHENTICATE', params=['+'],
fail_msg='Sent “AUTHENTICATE PLAIN”, server should have '
'replied with “AUTHENTICATE +”, but instead sent: {msg}')
self.sendLine(2, 'AUTHENTICATE amlsbGVzAGppbGxlcwBzZXNhbWU=')
m = self.getMessage(2, filter_pred=lambda m:m.command != 'NOTICE')
self.assertMessageEqual(m, command='900',
fail_msg='Did not send 900 after correct SASL authentication.')
self.sendLine(2, 'USER f * * :Realname')
self.sendLine(2, 'NICK {}'.format(nick))
self.sendLine(2, 'CAP END')
self.skipToWelcome(2)
@cases.SpecificationSelector.requiredBySpecification('IRCv3.1')
def testNotLoggedIn(self):
self.connectClient('foo', capabilities=['extended-join'],
skip_if_cap_nak=True)
self.joinChannel(1, '#chan')
self.connectClient('bar')
self.joinChannel(2, '#chan')
m = self.getMessage(1)
self.assertMessageEqual(m, command='JOIN',
params=['#chan', '*', 'Realname'],
fail_msg='Expected “JOIN #chan * :Realname” after '
'unregistered user joined, got: {msg}')
@cases.SpecificationSelector.requiredBySpecification('IRCv3.1')
@cases.OptionalityHelper.skipUnlessHasMechanism('PLAIN')
def testLoggedIn(self):
self.connectClient('foo', capabilities=['extended-join'],
skip_if_cap_nak=True)
self.joinChannel(1, '#chan')
self.controller.registerUser(self, 'jilles', 'sesame')
self.connectRegisteredClient('bar')
self.joinChannel(2, '#chan')
m = self.getMessage(1)
self.assertMessageEqual(m, command='JOIN',
params=['#chan', 'jilles', 'Realname'],
fail_msg='Expected “JOIN #chan * :Realname” after '
'nick “bar” logged in as “jilles” joined, got: {msg}')