Misc test fixes
This commit is contained in:
parent
a00a5d9f9c
commit
ade7fed3a8
|
@ -78,7 +78,7 @@ class IRCCore(object):
|
||||||
family=self.connection_family,
|
family=self.connection_family,
|
||||||
local_addr=self.bind_addr)
|
local_addr=self.bind_addr)
|
||||||
self.fire_hook("_CONNECT")
|
self.fire_hook("_CONNECT")
|
||||||
except (socket.gaierror, ConnectionRefusedError):
|
except (socket.gaierror, ConnectionRefusedError, OSError):
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
logging.warning("Non-fatal connect error, trying next server...")
|
logging.warning("Non-fatal connect error, trying next server...")
|
||||||
self.server = (self.server + 1) % len(self.servers)
|
self.server = (self.server + 1) % len(self.servers)
|
||||||
|
|
|
@ -96,9 +96,8 @@ class RecieveGenerator(object):
|
||||||
print("total", total, "expected", self.length)
|
print("total", total, "expected", self.length)
|
||||||
if total != self.length:
|
if total != self.length:
|
||||||
raise TransferFailedException("Transfer failed: expected {} bytes but got {}".format(self.length, total))
|
raise TransferFailedException("Transfer failed: expected {} bytes but got {}".format(self.length, total))
|
||||||
raise StopIteration()
|
|
||||||
finally:
|
finally:
|
||||||
self.sock.shutdown(socket.SHUT_RDWR)
|
# self.sock.shutdown(socket.SHUT_RDWR)
|
||||||
self.sock.close()
|
self.sock.close()
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,8 +139,11 @@ class OfferThread(Thread):
|
||||||
clientsocket.shutdown(socket.SHUT_RDWR)
|
clientsocket.shutdown(socket.SHUT_RDWR)
|
||||||
clientsocket.close()
|
clientsocket.close()
|
||||||
finally:
|
finally:
|
||||||
self.listener.shutdown(socket.SHUT_RDWR)
|
# try:
|
||||||
|
# self.listener.shutdown(socket.SHUT_RDWR)
|
||||||
self.listener.close()
|
self.listener.close()
|
||||||
|
# except Exception:
|
||||||
|
# pass
|
||||||
|
|
||||||
def abort(self):
|
def abort(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -50,13 +50,15 @@ class NickUser(ModuleBase):
|
||||||
oldpass = attr.getKey(prefix.nick, "password")
|
oldpass = attr.getKey(prefix.nick, "password")
|
||||||
if oldpass is None:
|
if oldpass is None:
|
||||||
attr.setKey(prefix.nick, "password", cmd.args[0])
|
attr.setKey(prefix.nick, "password", cmd.args[0])
|
||||||
self.bot.act_PRIVMSG(prefix.nick, ".setpass: Your password has been set to \"%s\"." % cmd.args[0])
|
self.bot.act_PRIVMSG(prefix.nick, ".setpass: You've been logged in and "
|
||||||
|
"your password has been set to \"%s\"." % cmd.args[0])
|
||||||
else:
|
else:
|
||||||
if len(cmd.args) == 2:
|
if len(cmd.args) == 2:
|
||||||
if cmd.args[0] == oldpass:
|
if cmd.args[0] == oldpass:
|
||||||
attr.setKey(prefix.nick, "password", cmd.args[1])
|
attr.setKey(prefix.nick, "password", cmd.args[1])
|
||||||
self.bot.act_PRIVMSG(prefix.nick, ".setpass: Your password has been set to \"%s\"." %
|
self.bot.act_PRIVMSG(prefix.nick,
|
||||||
cmd.args[1])
|
".setpass: Your password has been set to \"%s\"." % cmd.args[1])
|
||||||
|
attr.setKey(prefix.nick, "loggedinfrom", prefix.hostname)
|
||||||
else:
|
else:
|
||||||
self.bot.act_PRIVMSG(prefix.nick, ".setpass: Old password incorrect.")
|
self.bot.act_PRIVMSG(prefix.nick, ".setpass: Old password incorrect.")
|
||||||
else:
|
else:
|
||||||
|
@ -89,3 +91,23 @@ class NickUser(ModuleBase):
|
||||||
else:
|
else:
|
||||||
attr.setKey(prefix.nick, "loggedinfrom", None)
|
attr.setKey(prefix.nick, "loggedinfrom", None)
|
||||||
self.bot.act_PRIVMSG(prefix.nick, ".logout: You have been logged out.")
|
self.bot.act_PRIVMSG(prefix.nick, ".logout: You have been logged out.")
|
||||||
|
|
||||||
|
|
||||||
|
# Decorator for methods that require login
|
||||||
|
# Assumes your args matches the same format that @command(...) expects
|
||||||
|
#TODO better docs
|
||||||
|
class protected(object):
|
||||||
|
def __init__(self, message=None):
|
||||||
|
self.message = message or "{}: you need to .login to do that"
|
||||||
|
|
||||||
|
def __call__(self, func):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
module, message, command = args
|
||||||
|
login = module.bot.getBestModuleForService("login")
|
||||||
|
|
||||||
|
if not login.check(message.prefix.nick, message.prefix.hostname):
|
||||||
|
module.bot.act_PRIVMSG(message.args[0], self.message.format(message.prefix.nick))
|
||||||
|
return
|
||||||
|
|
||||||
|
func(*args, **kwargs)
|
||||||
|
return wrapper
|
||||||
|
|
|
@ -22,7 +22,7 @@ class PingResponder(ModuleBase):
|
||||||
"""Respond to the PING command"""
|
"""Respond to the PING command"""
|
||||||
# got a ping? send it right back
|
# got a ping? send it right back
|
||||||
self.bot.act_PONG(msg.trailing)
|
self.bot.act_PONG(msg.trailing)
|
||||||
self.log.info("%s Responded to a ping: %s" % (self.bot.get_nick(), msg.trailing))
|
self.log.debug("%s Responded to a ping: %s" % (self.bot.get_nick(), msg.trailing))
|
||||||
|
|
||||||
@hook("_RECV", "_SEND")
|
@hook("_RECV", "_SEND")
|
||||||
def resettimer(self, msg, cmd):
|
def resettimer(self, msg, cmd):
|
||||||
|
|
|
@ -70,8 +70,9 @@ def test_getbal_authed(cryptobot):
|
||||||
|
|
||||||
def test_setup(cryptobot, mynick="chatter"):
|
def test_setup(cryptobot, mynick="chatter"):
|
||||||
pm(cryptobot, ".setpass foobar", nick=mynick)
|
pm(cryptobot, ".setpass foobar", nick=mynick)
|
||||||
cryptobot.act_PRIVMSG.assert_called_once_with(mynick, '.setpass: Your password has been set to "foobar".')
|
cryptobot.act_PRIVMSG.assert_called_once_with(mynick, '.setpass: You\'ve been logged in and your password has been set to "foobar".')
|
||||||
cryptobot.act_PRIVMSG.reset_mock()
|
cryptobot.act_PRIVMSG.reset_mock()
|
||||||
|
# TODO shouldn't need .login here, the setpass does it
|
||||||
pm(cryptobot, ".login foobar", nick=mynick)
|
pm(cryptobot, ".login foobar", nick=mynick)
|
||||||
cryptobot.act_PRIVMSG.assert_called_once_with(mynick, '.login: You have been logged in from: cia.gov')
|
cryptobot.act_PRIVMSG.assert_called_once_with(mynick, '.login: You have been logged in from: cia.gov')
|
||||||
cryptobot.act_PRIVMSG.reset_mock()
|
cryptobot.act_PRIVMSG.reset_mock()
|
||||||
|
|
|
@ -36,7 +36,7 @@ def test_register(nickbot):
|
||||||
nickbot.act_PRIVMSG.assert_called_once_with('chatter', '.setpass: usage: ".setpass newpass" or ".setpass oldpass newpass"')
|
nickbot.act_PRIVMSG.assert_called_once_with('chatter', '.setpass: usage: ".setpass newpass" or ".setpass oldpass newpass"')
|
||||||
nickbot.act_PRIVMSG.reset_mock()
|
nickbot.act_PRIVMSG.reset_mock()
|
||||||
pm(nickbot, ".setpass foobar")
|
pm(nickbot, ".setpass foobar")
|
||||||
nickbot.act_PRIVMSG.assert_called_once_with('chatter', '.setpass: Your password has been set to "foobar".')
|
nickbot.act_PRIVMSG.assert_called_once_with('chatter', '.setpass: You\'ve been logged in and your password has been set to "foobar".')
|
||||||
nickbot.act_PRIVMSG.reset_mock()
|
nickbot.act_PRIVMSG.reset_mock()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ import pytest
|
||||||
from pyircbot import jsonrpc
|
from pyircbot import jsonrpc
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from random import randint
|
from random import randint
|
||||||
from socket import SHUT_RDWR
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +36,7 @@ def j1testserver():
|
||||||
Thread(target=server.serve, daemon=True).start()
|
Thread(target=server.serve, daemon=True).start()
|
||||||
sleep(0.1) # Give the serve() time to set up the serversocket
|
sleep(0.1) # Give the serve() time to set up the serversocket
|
||||||
yield (server, port)
|
yield (server, port)
|
||||||
server._Server__transport.s.shutdown(SHUT_RDWR)
|
server._Server__transport.close()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -48,9 +47,9 @@ def j2testserver():
|
||||||
server.register_function(sample)
|
server.register_function(sample)
|
||||||
server.register_instance(_sample(), name="obj")
|
server.register_instance(_sample(), name="obj")
|
||||||
Thread(target=server.serve, daemon=True).start()
|
Thread(target=server.serve, daemon=True).start()
|
||||||
sleep(0.1) # Give the serve() time to set up the serversocket
|
sleep(0.2) # Give the serve() time to set up the serversocket
|
||||||
yield (server, port)
|
yield (server, port)
|
||||||
server._Server__transport.s.shutdown(SHUT_RDWR)
|
server._Server__transport.close()
|
||||||
|
|
||||||
|
|
||||||
# Basic functionality
|
# Basic functionality
|
||||||
|
|
Loading…
Reference in New Issue