diff options
-rw-r--r-- | cmd2/cmd2.py | 10 | ||||
-rw-r--r-- | tests/test_cmd2.py | 17 |
2 files changed, 20 insertions, 7 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index dcdde0f6..ff2aa91b 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -2182,7 +2182,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) @@ -2210,7 +2210,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 @@ -2244,9 +2245,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) @@ -2267,7 +2265,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 92832e2f..d2f9c934 100644 --- a/tests/test_cmd2.py +++ b/tests/test_cmd2.py @@ -1837,7 +1837,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...' |