mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 02:49:27 +01:00
Removed recursive alias detection; it was imperfect and our nesting limit will catch issues now.
This commit is contained in:
parent
14837bc544
commit
a656fd0693
@ -49,7 +49,7 @@ import plugin
|
|||||||
reload(plugin) # In case we're being reloaded.
|
reload(plugin) # In case we're being reloaded.
|
||||||
# Add more reloads here if you add third-party modules and want them to be
|
# Add more reloads here if you add third-party modules and want them to be
|
||||||
# reloaded when this plugin is reloaded. Don't forget to import them as well!
|
# reloaded when this plugin is reloaded. Don't forget to import them as well!
|
||||||
from plugin import findBiggestDollar, AliasError, findAliasCommand # tests
|
from plugin import findBiggestDollar, AliasError # for the tests.
|
||||||
|
|
||||||
if world.testing:
|
if world.testing:
|
||||||
import test
|
import test
|
||||||
|
@ -79,11 +79,6 @@ class AliasError(Exception):
|
|||||||
class RecursiveAlias(AliasError):
|
class RecursiveAlias(AliasError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def findAliasCommand(s, alias):
|
|
||||||
s = re.escape(s)
|
|
||||||
r = re.compile(r'(?:(^|\[)\s*\b%s\b|\|\s*\b%s\b)' % (s, s))
|
|
||||||
return bool(r.search(alias))
|
|
||||||
|
|
||||||
dollarRe = re.compile(r'\$(\d+)')
|
dollarRe = re.compile(r'\$(\d+)')
|
||||||
def findBiggestDollar(alias):
|
def findBiggestDollar(alias):
|
||||||
dollars = dollarRe.findall(alias)
|
dollars = dollarRe.findall(alias)
|
||||||
@ -106,8 +101,6 @@ def findBiggestAt(alias):
|
|||||||
|
|
||||||
def makeNewAlias(name, alias):
|
def makeNewAlias(name, alias):
|
||||||
original = alias
|
original = alias
|
||||||
if findAliasCommand(name, alias):
|
|
||||||
raise RecursiveAlias
|
|
||||||
biggestDollar = findBiggestDollar(original)
|
biggestDollar = findBiggestDollar(original)
|
||||||
biggestAt = findBiggestAt(original)
|
biggestAt = findBiggestAt(original)
|
||||||
wildcard = '$*' in original
|
wildcard = '$*' in original
|
||||||
|
@ -34,21 +34,6 @@ import supybot.plugin as plugin
|
|||||||
Alias = plugin.loadPluginModule('Alias')
|
Alias = plugin.loadPluginModule('Alias')
|
||||||
|
|
||||||
class FunctionsTest(SupyTestCase):
|
class FunctionsTest(SupyTestCase):
|
||||||
def testFindAliasCommand(self):
|
|
||||||
s = 'command'
|
|
||||||
self.failIf(Alias.findAliasCommand(s, ''))
|
|
||||||
self.failIf(Alias.findAliasCommand(s, 'foo'))
|
|
||||||
self.failIf(Alias.findAliasCommand(s, 'foo bar [ baz]'))
|
|
||||||
self.failIf(Alias.findAliasCommand(s, 'foo bar [baz]'))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, ' %s' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, '[%s]' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, '[ %s]' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, 'foo bar [%s]' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, 'foo bar [ %s]' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, 'foo | %s' % s))
|
|
||||||
self.failUnless(Alias.findAliasCommand(s, 'foo |%s' % s))
|
|
||||||
|
|
||||||
def testFindBiggestDollar(self):
|
def testFindBiggestDollar(self):
|
||||||
self.assertEqual(Alias.findBiggestDollar(''), 0)
|
self.assertEqual(Alias.findBiggestDollar(''), 0)
|
||||||
self.assertEqual(Alias.findBiggestDollar('foo'), 0)
|
self.assertEqual(Alias.findBiggestDollar('foo'), 0)
|
||||||
@ -100,17 +85,6 @@ class AliasTestCase(ChannelPluginTestCase):
|
|||||||
self.assertResponse('swap 1 2 3 4 5', '2 1 3 4 5')
|
self.assertResponse('swap 1 2 3 4 5', '2 1 3 4 5')
|
||||||
self.assertError('alias add foo "echo $1 @1 $*"')
|
self.assertError('alias add foo "echo $1 @1 $*"')
|
||||||
|
|
||||||
def testNoRecursion(self):
|
|
||||||
self.assertError('alias add rotinfinity "rot13 [rotinfinity $1]"')
|
|
||||||
self.assertNotError('alias add rotinfintynot "rot13 [rotinfinity $1]"')
|
|
||||||
self.assertNotError('alias add rotinfin "rot13 [rotinfinity $1]"')
|
|
||||||
|
|
||||||
def testNonCanonicalName(self):
|
|
||||||
self.assertError('alias add FOO foo')
|
|
||||||
self.assertError('alias add [] foo')
|
|
||||||
self.assertError('alias add "foo bar" foo')
|
|
||||||
self.assertError('alias add "foo|bar" foo')
|
|
||||||
|
|
||||||
def testChannel(self):
|
def testChannel(self):
|
||||||
self.assertNotError('alias add channel echo $channel')
|
self.assertNotError('alias add channel echo $channel')
|
||||||
self.assertResponse('alias channel', self.channel)
|
self.assertResponse('alias channel', self.channel)
|
||||||
|
Loading…
Reference in New Issue
Block a user