summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd2/cmd2.py10
-rw-r--r--tests/test_cmd2.py17
2 files changed, 20 insertions, 7 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py
index 72676deb..704773cc 100644
--- a/cmd2/cmd2.py
+++ b/cmd2/cmd2.py
@@ -2150,7 +2150,7 @@ class Cmd(cmd.Cmd):
def do_alias(self, statement: Statement) -> None:
"""Define or display aliases
-Usage: Usage: alias [name] | [<name> <value>]
+ Usage: alias [name] | [<name> <value>]
Where:
name - name of the alias being looked up, added, or replaced
value - what the alias will be resolved to (if adding or replacing)
@@ -2178,7 +2178,8 @@ Usage: Usage: alias [name] | [<name> <value>]
# If no args were given, then print a list of current aliases
if not alias_arg_list:
- for cur_alias in self.aliases:
+ sorted_aliases = utils.alphabetical_sort(list(self.aliases))
+ for cur_alias in sorted_aliases:
self.poutput("alias {} {}".format(cur_alias, self.aliases[cur_alias]))
return
@@ -2212,9 +2213,6 @@ Usage: Usage: alias [name] | [<name> <value>]
# Set the alias
self.aliases[name] = value
self.poutput("Alias {!r} created".format(name))
-
- # Keep aliases in alphabetically sorted order
- self.aliases = collections.OrderedDict(sorted(self.aliases.items()))
else:
errmsg = "Aliases can not contain: {}".format(invalidchars)
self.perror(errmsg, traceback_war=False)
@@ -2235,7 +2233,7 @@ Usage: Usage: alias [name] | [<name> <value>]
def do_unalias(self, arglist: List[str]) -> None:
"""Unsets aliases
-Usage: Usage: unalias [-a] name [name ...]
+ Usage: unalias [-a] name [name ...]
Where:
name - name of the alias being unset
diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
index f3ec29dc..c6a90fdf 100644
--- a/tests/test_cmd2.py
+++ b/tests/test_cmd2.py
@@ -1830,7 +1830,22 @@ def test_complete_unalias(base_app):
# Validate that there are now completions
expected = ['fake', 'fall']
- assert base_app.complete_unalias(text, line, begidx, endidx) == expected
+ result = base_app.complete_unalias(text, line, begidx, endidx)
+ assert sorted(expected) == sorted(result)
+
+def test_multiple_aliases(base_app):
+ alias1 = 'h1'
+ alias2 = 'h2'
+ run_cmd(base_app, 'alias {} help'.format(alias1))
+ run_cmd(base_app, 'alias {} help -v'.format(alias2))
+ out = run_cmd(base_app, alias1)
+ expected = normalize(BASE_HELP)
+ assert out == expected
+
+ out = run_cmd(base_app, alias2)
+ expected = normalize(BASE_HELP_VERBOSE)
+ assert out == expected
+
def test_ppaged(base_app):
msg = 'testing...'