mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-25 04:02:45 +01:00
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
import sys
|
|
import os
|
|
cwd = os.getcwd()
|
|
sys.path += [cwd, os.path.join(cwd, 'plugins')]
|
|
import unittest
|
|
|
|
import classes
|
|
import relay
|
|
import conf
|
|
|
|
def dummyf():
|
|
pass
|
|
|
|
class TestRelay(unittest.TestCase):
|
|
def setUp(self):
|
|
self.irc = classes.FakeIRC('fakeirc', classes.FakeProto, conf.testconf)
|
|
self.irc.maxnicklen = 20
|
|
self.f = lambda nick: relay.normalizeNick(self.irc, 'unittest', nick)
|
|
# Fake our protocol name to something that supports slashes in nicks.
|
|
# relay uses a whitelist for this to prevent accidentally introducing
|
|
# bad nicks:
|
|
self.irc.protoname = "inspircd"
|
|
|
|
def testNormalizeNick(self):
|
|
# Second argument simply states the suffix.
|
|
self.assertEqual(self.f('helloworld'), 'helloworld/unittest')
|
|
self.assertEqual(self.f('ObnoxiouslyLongNick'), 'Obnoxiously/unittest')
|
|
self.assertEqual(self.f('10XAAAAAA'), '_10XAAAAAA/unittest')
|
|
|
|
def testNormalizeNickConflict(self):
|
|
self.assertEqual(self.f('helloworld'), 'helloworld/unittest')
|
|
self.irc.users['10XAAAAAA'] = classes.IrcUser('helloworld/unittest', 1234, '10XAAAAAA')
|
|
# Increase amount of /'s by one
|
|
self.assertEqual(self.f('helloworld'), 'helloworld//unittest')
|
|
self.irc.users['10XAAAAAB'] = classes.IrcUser('helloworld//unittest', 1234, '10XAAAAAB')
|
|
# Cut off the nick, not the suffix if the result is too long.
|
|
self.assertEqual(self.f('helloworld'), 'helloworl///unittest')
|
|
|
|
def testNormalizeNickRemovesSlashes(self):
|
|
self.irc.protoname = "charybdis"
|
|
try:
|
|
self.assertEqual(self.f('helloworld'), 'helloworld|unittest')
|
|
self.assertEqual(self.f('abcde/eJanus'), 'abcde|eJanu|unittest')
|
|
self.assertEqual(self.f('ObnoxiouslyLongNick'), 'Obnoxiously|unittest')
|
|
finally:
|
|
self.irc.protoname = "inspircd"
|