Ticket #4915: Twisted-tests.diff

File Twisted-tests.diff, 2.3 KB (added by devinj, 4 years ago)

Patch to test cases

  • Twisted/twisted/words/test/test_irc_service.py

     
    77 
    88from twisted.trial import unittest 
    99from twisted.test import proto_helpers 
    10 from twisted.words.service import InMemoryWordsRealm, IRCFactory 
     10from twisted.words.service import InMemoryWordsRealm, IRCFactory, IRCUser 
    1111from twisted.words.protocols import irc 
    1212from twisted.cred import checkers, portal 
    1313 
     
    108108             ('example.com', '004', 
    109109              ['john', 'example.com', self.factory._serverInfo["serviceVersion"], 
    110110               'w', 'n'])]) 
     111 
     112 
     113 
     114class MocksyIRCUser(IRCUser): 
     115    def __init__(self): 
     116        self._mocked_codes = [] 
     117     
     118    def sendMessage(self, code, *_, **__): 
     119        self._mocked_codes.append(code) 
     120 
     121BADTEXT = '\xff' 
     122 
     123class IRCUserBadEncodingTestCase(unittest.TestCase): 
     124    # TODO: irc_NICK -- but NICKSERV is used for that, so it isn't as easy. 
     125     
     126    def setUp(self): 
     127        self.ircuser = MocksyIRCUser() 
     128     
     129    def assert_chokesOnBadBytes(self, irc_x, error): 
     130        getattr(self.ircuser, 'irc_%s' % irc_x)(None, [BADTEXT]) 
     131        self.assertEqual(self.ircuser._mocked_codes, [error]) 
     132     
     133    # no such channel 
     134     
     135    def test_JOIN(self): 
     136        self.assert_chokesOnBadBytes('JOIN', irc.ERR_NOSUCHCHANNEL) 
     137     
     138    def test_NAMES(self): 
     139        self.assert_chokesOnBadBytes('NAMES', irc.ERR_NOSUCHCHANNEL) 
     140     
     141    def test_TOPIC(self): 
     142        self.assert_chokesOnBadBytes('TOPIC', irc.ERR_NOSUCHCHANNEL) 
     143     
     144    def test_LIST(self): 
     145        self.assert_chokesOnBadBytes('LIST', irc.ERR_NOSUCHCHANNEL) 
     146     
     147    # no such nick 
     148     
     149    def test_MODE(self): 
     150        self.assert_chokesOnBadBytes('MODE', irc.ERR_NOSUCHNICK) 
     151     
     152    def test_PRIVMSG(self): 
     153        self.assert_chokesOnBadBytes('PRIVMSG', irc.ERR_NOSUCHNICK) 
     154     
     155    def test_WHOIS(self): 
     156        self.assert_chokesOnBadBytes('WHOIS', irc.ERR_NOSUCHNICK) 
     157     
     158    # not on channel 
     159     
     160    def test_PART(self): 
     161        self.assert_chokesOnBadBytes('PART', irc.ERR_NOTONCHANNEL) 
     162     
     163    # probably nothing 
     164     
     165    def test_WHO(self): 
     166        self.assert_chokesOnBadBytes('WHO', irc.RPL_ENDOFWHO) 
     167