Skip to content

Commit 9c5c314

Browse files
committed
Don't worry about unquoting alias and macro names as they shouldn't be entered this way anyway
1 parent 957137a commit 9c5c314

File tree

2 files changed

+10
-56
lines changed

2 files changed

+10
-56
lines changed

cmd2/cmd2.py

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2209,10 +2209,9 @@ def _cmdloop(self) -> bool:
22092209
# ----- Alias subcommand functions -----
22102210

22112211
def alias_create(self, args: argparse.Namespace):
2212-
""" Creates or overwrites an alias """
2212+
"""Create or overwrites an alias"""
22132213

22142214
# Validate the alias name
2215-
args.name = utils.strip_quotes(args.name)
22162215
valid, errmsg = self.statement_parser.is_valid_command(args.name)
22172216
if not valid:
22182217
self.perror("Invalid alias name: {}".format(errmsg), traceback_war=False)
@@ -2235,30 +2234,24 @@ def alias_create(self, args: argparse.Namespace):
22352234
self.poutput("Alias '{}' {}".format(args.name, result))
22362235

22372236
def alias_delete(self, args: argparse.Namespace):
2238-
""" Deletes aliases """
2237+
"""Delete aliases"""
22392238
if args.all:
22402239
self.aliases.clear()
22412240
self.poutput("All aliases deleted")
22422241
elif not args.name:
22432242
self.do_help('alias delete')
22442243
else:
2245-
# Get rid of duplicates and strip quotes since the argparse decorator for do_alias() preserves them
2246-
aliases_to_delete = [utils.strip_quotes(cur_name) for cur_name in utils.remove_duplicates(args.name)]
2247-
2248-
for cur_name in aliases_to_delete:
2244+
for cur_name in utils.remove_duplicates(args.name):
22492245
if cur_name in self.aliases:
22502246
del self.aliases[cur_name]
22512247
self.poutput("Alias '{}' deleted".format(cur_name))
22522248
else:
22532249
self.perror("Alias '{}' does not exist".format(cur_name), traceback_war=False)
22542250

22552251
def alias_list(self, args: argparse.Namespace):
2256-
""" Lists some or all aliases """
2252+
"""List some or all aliases"""
22572253
if args.name:
2258-
# Get rid of duplicates and strip quotes since the argparse decorator for do_alias() preserves them
2259-
names_to_view = [utils.strip_quotes(cur_name) for cur_name in utils.remove_duplicates(args.name)]
2260-
2261-
for cur_name in names_to_view:
2254+
for cur_name in utils.remove_duplicates(args.name):
22622255
if cur_name in self.aliases:
22632256
self.poutput("alias create {} {}".format(cur_name, self.aliases[cur_name]))
22642257
else:
@@ -2344,10 +2337,9 @@ def do_alias(self, args: argparse.Namespace):
23442337
# ----- Macro subcommand functions -----
23452338

23462339
def macro_create(self, args: argparse.Namespace):
2347-
""" Creates or overwrites a macro """
2340+
"""Create or overwrites a macro"""
23482341

23492342
# Validate the macro name
2350-
args.name = utils.strip_quotes(args.name)
23512343
valid, errmsg = self.statement_parser.is_valid_command(args.name)
23522344
if not valid:
23532345
self.perror("Invalid macro name: {}".format(errmsg), traceback_war=False)
@@ -2420,30 +2412,24 @@ def macro_create(self, args: argparse.Namespace):
24202412
self.poutput("Macro '{}' {}".format(args.name, result))
24212413

24222414
def macro_delete(self, args: argparse.Namespace):
2423-
""" Deletes macros """
2415+
"""Delete macros"""
24242416
if args.all:
24252417
self.macros.clear()
24262418
self.poutput("All macros deleted")
24272419
elif not args.name:
24282420
self.do_help('macro delete')
24292421
else:
2430-
# Get rid of duplicates and strip quotes since the argparse decorator for do_macro() preserves them
2431-
macros_to_delete = [utils.strip_quotes(cur_name) for cur_name in utils.remove_duplicates(args.name)]
2432-
2433-
for cur_name in macros_to_delete:
2422+
for cur_name in utils.remove_duplicates(args.name):
24342423
if cur_name in self.macros:
24352424
del self.macros[cur_name]
24362425
self.poutput("Macro '{}' deleted".format(cur_name))
24372426
else:
24382427
self.perror("Macro '{}' does not exist".format(cur_name), traceback_war=False)
24392428

24402429
def macro_list(self, args: argparse.Namespace):
2441-
""" Lists some or all macros """
2430+
"""List some or all macros"""
24422431
if args.name:
2443-
# Get rid of duplicates and strip quotes since the argparse decorator for do_macro() preserves them
2444-
names_to_view = [utils.strip_quotes(cur_name) for cur_name in utils.remove_duplicates(args.name)]
2445-
2446-
for cur_name in names_to_view:
2432+
for cur_name in utils.remove_duplicates(args.name):
24472433
if cur_name in self.macros:
24482434
self.poutput("macro create {} {}".format(cur_name, self.macros[cur_name].value))
24492435
else:

tests/test_cmd2.py

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1860,22 +1860,6 @@ def test_alias_create(base_app, capsys):
18601860
out = run_cmd(base_app, 'alias list fake')
18611861
assert out == normalize('alias create fake pyscript')
18621862

1863-
def test_alias_quoted_name(base_app, capsys):
1864-
"""Demonstrate that names can be quoted in alias commands because they will be stripped"""
1865-
# Create the alias
1866-
out = run_cmd(base_app, 'alias create "fake" pyscript')
1867-
1868-
# The quotes on names are stripped
1869-
assert out == normalize("Alias 'fake' created")
1870-
1871-
# Look up the new alias and quote the name
1872-
out = run_cmd(base_app, 'alias list "fake"')
1873-
assert out == normalize('alias create fake pyscript')
1874-
1875-
# Delete the alias using quotes
1876-
out = run_cmd(base_app, 'alias delete "fake"')
1877-
assert out == normalize("Alias 'fake' deleted")
1878-
18791863
def test_alias_create_with_quoted_value(base_app, capsys):
18801864
"""Demonstrate that quotes in alias value will be preserved (except for redirectors)"""
18811865

@@ -1962,22 +1946,6 @@ def test_macro_create(base_app, capsys):
19621946
out = run_cmd(base_app, 'macro list fake')
19631947
assert out == normalize('macro create fake pyscript')
19641948

1965-
def test_macro_create_quoted_name(base_app, capsys):
1966-
"""Demonstrate that names can be quoted in macro commands because they will be stripped"""
1967-
# Create the macro
1968-
out = run_cmd(base_app, 'macro create "fake" pyscript')
1969-
1970-
# The quotes on names are stripped
1971-
assert out == normalize("Macro 'fake' created")
1972-
1973-
# Look up the new macro and quote the name
1974-
out = run_cmd(base_app, 'macro list "fake"')
1975-
assert out == normalize('macro create fake pyscript')
1976-
1977-
# Delete the macro using quotes
1978-
out = run_cmd(base_app, 'macro delete "fake"')
1979-
assert out == normalize("Macro 'fake' deleted")
1980-
19811949
def test_macro_create_with_quoted_value(base_app, capsys):
19821950
"""Demonstrate that quotes in macro value will be preserved (except for redirectors)"""
19831951
# Create the macro

0 commit comments

Comments
 (0)