From 7f7562ef42704b258e135095f97d138ce8a9667a Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Wed, 10 Dec 2003 07:43:45 +0000 Subject: [PATCH] Allow ambiguous aliases. --- plugins/Alias.py | 7 ++++--- test/test_Alias.py | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/Alias.py b/plugins/Alias.py index c50dfd726..8849913be 100644 --- a/plugins/Alias.py +++ b/plugins/Alias.py @@ -217,9 +217,10 @@ class Alias(callbacks.Privmsg): raise AliasError, s name = realName cbs = callbacks.findCallbackForCommand(irc, name) - if [cb for cb in cbs if cb != self]: - s = 'A command with the name %r already exists.' % name - raise AliasError, s + if self in cbs: + if hasattr(self, realName) and realName not in self.aliases: + s = 'You can\'t overwrite commands in this plugin.' + raise AliasError, s if name in self.aliases: (currentAlias, locked) = self.aliases[name] if locked and currentAlias != alias: diff --git a/test/test_Alias.py b/test/test_Alias.py index 1f3956589..d1dd30477 100644 --- a/test/test_Alias.py +++ b/test/test_Alias.py @@ -67,6 +67,13 @@ class FunctionsTest(unittest.TestCase): class AliasTestCase(ChannelPluginTestCase, PluginDocumentation): plugins = ('Alias', 'Fun', 'Utilities') + def testDoesNotOverwriteCommands(self): + self.assertError('alias add alias "echo foo bar baz"') + self.assertError('alias add add "echo foo bar baz"') + self.assertError('alias add remove "echo foo bar baz"') + self.assertError('alias add lock "echo foo bar baz"') + self.assertError('alias add unlock "echo foo bar baz"') + def testAliasHelp(self): self.assertNotError('alias add slashdot foo') self.assertRegexp('help slashdot', "Alias for 'foo'")