3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-24 11:39:25 +01:00

add tests for spawn/quit/join/partClient

This commit is contained in:
James Lu 2015-07-03 23:32:41 -07:00
parent d6341109be
commit 18528c9cab

View File

@ -2,18 +2,23 @@ import sys
import os import os
sys.path += [os.getcwd(), os.path.join(os.getcwd(), 'protocols')] sys.path += [os.getcwd(), os.path.join(os.getcwd(), 'protocols')]
import unittest import unittest
import time
import inspircd import inspircd
from . import test_proto_common from . import test_proto_common
from classes import ProtocolError from classes import ProtocolError
import utils
class TestInspIRCdProtocol(unittest.TestCase): class TestInspIRCdProtocol(unittest.TestCase):
def setUp(self): def setUp(self):
self.irc = test_proto_common.FakeIRC(inspircd) self.irc = test_proto_common.FakeIRC(inspircd)
self.proto = self.irc.proto
self.sdata = self.irc.serverdata self.sdata = self.irc.serverdata
# This is to initialize ourself as an internal PseudoServer, so we can spawn clients
self.proto.connect(self.irc)
self.u = self.irc.pseudoclient.uid
def test_connect(self): def test_connect(self):
self.irc.proto.connect(self.irc)
initial_messages = self.irc.takeMsgs() initial_messages = self.irc.takeMsgs()
commands = self.irc.takeCommands(initial_messages) commands = self.irc.takeCommands(initial_messages)
@ -33,5 +38,38 @@ class TestInspIRCdProtocol(unittest.TestCase):
# Incorrect recvpass here; should raise ProtocolError. # Incorrect recvpass here; should raise ProtocolError.
self.assertRaises(ProtocolError, self.irc.run, 'SERVER somehow.someday BADPASS 0 0AL :Somehow Server - McMurdo Station, Antarctica') self.assertRaises(ProtocolError, self.irc.run, 'SERVER somehow.someday BADPASS 0 0AL :Somehow Server - McMurdo Station, Antarctica')
def testSpawnClient(self):
u = self.proto.spawnClient(self.irc, 'testuser3', 'moo', 'hello.world').uid
# Check the server index and the user index
self.assertIn(u, self.irc.servers[self.irc.sid].users)
self.assertIn(u, self.irc.users)
# Raise ValueError when trying to spawn a client on a server that's not ours
self.assertRaises(ValueError, self.proto.spawnClient, self.irc, 'abcd', 'user', 'dummy.user.net', server='44A')
def testJoinClient(self):
u = self.u
self.proto.joinClient(self.irc, u, '#Channel')
self.assertIn(u, self.irc.channels['#channel'].users)
# Non-existant user.
self.assertRaises(LookupError, self.proto.joinClient, self.irc, '9PYZZZZZZ', '#test')
# Invalid channel.
self.assertRaises(ValueError, self.proto.joinClient, self.irc, u, 'aaaa')
def testPartClient(self):
u = self.u
self.proto.joinClient(self.irc, u, '#channel')
self.proto.partClient(self.irc, u, '#channel')
self.assertNotIn(u, self.irc.channels['#channel'].users)
def testQuitClient(self):
u = self.proto.spawnClient(self.irc, 'testuser3', 'moo', 'hello.world').uid
self.proto.joinClient(self.irc, u, '#channel')
self.assertRaises(LookupError, self.proto.quitClient, self.irc, '9PYZZZZZZ', 'quit reason')
self.proto.quitClient(self.irc, u, 'quit reason')
self.assertNotIn(u, self.irc.channels['#channel'].users)
self.assertNotIn(u, self.irc.users)
self.assertNotIn(u, self.irc.servers[self.irc.sid].users)
pass
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()