diff --git a/plugins/MegaHAL/plugin.py b/plugins/MegaHAL/plugin.py index 1f62ba7d0..cc3704511 100644 --- a/plugins/MegaHAL/plugin.py +++ b/plugins/MegaHAL/plugin.py @@ -29,12 +29,13 @@ ### import re +import os import sys -import ctypes import random -from cStringIO import StringIO +import supybot.conf as conf import mh_python as megahal import supybot.utils as utils +from cStringIO import StringIO from supybot.commands import * import supybot.plugins as plugins import supybot.ircutils as ircutils @@ -57,13 +58,23 @@ class MegaHAL(callbacks.Plugin): callBefore = ['Dunno'] def __init__(self, irc): + # Call Supybot's scripts self.__parent = super(MegaHAL, self) self.__parent.__init__(irc) - # UTILISER UN CHANGEMENT DE RÉPERTOIRE DE TRAVAIL ! - stdout = sys.stdout - sys.stdout = StringIO() # Don't display MegaHAL welcome message twice + + # Save state + saved = (sys.stdout, os.getcwd()) + + # Create proxy for MegaHAL + os.chdir(conf.supybot.directories.data()) + sys.stdout = StringIO() + + # Initialize MegaHAL megahal.initbrain() - sys.stdout = stdout + + # Restore state + sys.stdout, cwd = saved + os.chdir(cwd) random.seed() diff --git a/plugins/MegaHAL/test.py b/plugins/MegaHAL/test.py index 48e966b0c..6d4b075fd 100644 --- a/plugins/MegaHAL/test.py +++ b/plugins/MegaHAL/test.py @@ -37,7 +37,7 @@ class MegaHALTestCase(PluginTestCase): self.assertNotError('cleanup') def testAnswer(self): - self.assertNotError('foo') + self.assertNotRegexp('foo', '.*not a valid.*') # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: