def testValidateNick(self): self.assertEqual(validateNick("P"), "too short") self.assertEqual(validateNick(""), "too short") self.assertEqual(validateNick("5id"), "must start with a letter") self.assertEqual(validateNick("Some$thing"), "contains an invalid character: '$'") self.assertEqual(validateNick("Paul"), "")
def d_ValidateNick(self, nick): dcall_discard(self, 'init_dcall') if self.state != 'login_1': self.fatalError("$ValidateNick not expected.") return # Next, we expect $GetNickList+$MyINFO self.state = 'login_2' reason = validateNick(nick) if reason: self.pushStatus("Your nick is invalid: %s" % reason) self.pushStatus("Please fix it and reconnect. Goodbye.") self.transport.loseConnection() return self.nick = nick self.pushHello(self.nick)
def dc_to_irc(dnick): # Encode a DC nick, for use in IRC. reason = validateNick(dnick) if reason: raise NickError("Bad Dtella Nick: %s" % reason) escapes = '' inick = cfg.dc_to_irc_prefix for c in dnick: if c in escape_chars: inick += '`' escapes += c else: inick += c if escapes: inick += '-' + base_convert(escapes, escape_chars, base36_chars) if len(inick) > cfg.max_irc_nick_len: raise NickError("Your nick is too long.") return inick