mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-27 21:19:31 +01:00
Make the 'bot' conf block available in Irc() as irc.botdata
Protocol modules shouldn't read conf directly, so that we can override the config in testing.
This commit is contained in:
parent
2d4d8dd247
commit
8576778ddc
11
classes.py
11
classes.py
@ -60,7 +60,14 @@ class ProtocolError(Exception):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
global testconf
|
global testconf
|
||||||
testconf = {'server':
|
testconf = {'bot':
|
||||||
|
{
|
||||||
|
'nick': 'PyLink',
|
||||||
|
'user': 'pylink',
|
||||||
|
'realname': 'PyLink Service Client',
|
||||||
|
'loglevel': 'DEBUG',
|
||||||
|
},
|
||||||
|
'server':
|
||||||
{
|
{
|
||||||
'netname': 'fakeirc',
|
'netname': 'fakeirc',
|
||||||
'ip': '0.0.0.0',
|
'ip': '0.0.0.0',
|
||||||
@ -71,7 +78,7 @@ testconf = {'server':
|
|||||||
'hostname': "pylink.unittest",
|
'hostname': "pylink.unittest",
|
||||||
'sid': "9PY",
|
'sid': "9PY",
|
||||||
'channels': ["#pylink"],
|
'channels': ["#pylink"],
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
class FakeIRC(main.Irc):
|
class FakeIRC(main.Irc):
|
||||||
|
1
main.py
1
main.py
@ -40,6 +40,7 @@ class Irc():
|
|||||||
|
|
||||||
self.serverdata = conf['server']
|
self.serverdata = conf['server']
|
||||||
self.sid = self.serverdata["sid"]
|
self.sid = self.serverdata["sid"]
|
||||||
|
self.botdata = conf['bot']
|
||||||
self.proto = proto
|
self.proto = proto
|
||||||
self.connect()
|
self.connect()
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ from copy import copy
|
|||||||
|
|
||||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
import utils
|
import utils
|
||||||
from conf import conf
|
|
||||||
from log import log
|
from log import log
|
||||||
|
|
||||||
from classes import *
|
from classes import *
|
||||||
@ -17,7 +16,7 @@ from classes import *
|
|||||||
|
|
||||||
# XXX figure out a way to not force-map ENCAP to KNOCK, since other commands are sent
|
# XXX figure out a way to not force-map ENCAP to KNOCK, since other commands are sent
|
||||||
# through it too.
|
# through it too.
|
||||||
hook_map = {'FJOIN': 'JOIN', 'SAVE': 'NICK', 'RSQUIT': 'SQUIT', 'FMODE': 'MODE',
|
hook_map = {'FJOIN': 'JOIN', 'RSQUIT': 'SQUIT', 'FMODE': 'MODE',
|
||||||
'FTOPIC': 'TOPIC', 'ENCAP': 'KNOCK'}
|
'FTOPIC': 'TOPIC', 'ENCAP': 'KNOCK'}
|
||||||
|
|
||||||
def _sendFromServer(irc, sid, msg):
|
def _sendFromServer(irc, sid, msg):
|
||||||
@ -37,7 +36,7 @@ def spawnClient(irc, nick, ident='null', host='null', realhost=None, modes=set()
|
|||||||
irc.uidgen[server] = utils.TS6UIDGenerator(server)
|
irc.uidgen[server] = utils.TS6UIDGenerator(server)
|
||||||
uid = irc.uidgen[server].next_uid()
|
uid = irc.uidgen[server].next_uid()
|
||||||
ts = int(time.time())
|
ts = int(time.time())
|
||||||
realname = realname or conf['bot']['realname']
|
realname = realname or irc.botdata['realname']
|
||||||
realhost = realhost or host
|
realhost = realhost or host
|
||||||
raw_modes = utils.joinModes(modes)
|
raw_modes = utils.joinModes(modes)
|
||||||
if not utils.isNick(nick):
|
if not utils.isNick(nick):
|
||||||
@ -142,8 +141,8 @@ def connect(irc):
|
|||||||
f('SERVER {host} {Pass} 0 {sid} :PyLink Service'.format(host=host,
|
f('SERVER {host} {Pass} 0 {sid} :PyLink Service'.format(host=host,
|
||||||
Pass=irc.serverdata["sendpass"], sid=irc.sid))
|
Pass=irc.serverdata["sendpass"], sid=irc.sid))
|
||||||
f(':%s BURST %s' % (irc.sid, ts))
|
f(':%s BURST %s' % (irc.sid, ts))
|
||||||
nick = conf['bot'].get('nick') or 'PyLink'
|
nick = irc.botdata.get('nick') or 'PyLink'
|
||||||
ident = conf['bot'].get('ident') or 'pylink'
|
ident = irc.botdata.get('ident') or 'pylink'
|
||||||
irc.pseudoclient = spawnClient(irc, nick, ident, host, modes={("o", None)})
|
irc.pseudoclient = spawnClient(irc, nick, ident, host, modes={("o", None)})
|
||||||
f(':%s ENDBURST' % (irc.sid))
|
f(':%s ENDBURST' % (irc.sid))
|
||||||
for chan in irc.serverdata['channels']:
|
for chan in irc.serverdata['channels']:
|
||||||
|
Loading…
Reference in New Issue
Block a user