From 02ff83d18bbefd0199a790d734c35a86b82d713d Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Thu, 9 Feb 2012 15:29:55 -0800 Subject: [PATCH] Add "h" as a monitor shortcut for "help" --- CHANGES.txt | 2 ++ src/py65/monitor.py | 3 ++- src/py65/tests/test_monitor.py | 37 +++++++++++++++++++++++++++------- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 4bf98dc..f882807 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -10,6 +10,8 @@ - Fixed the cycle count of 0xD2 (CMP zero page indirect) in the 65C02 simulation. Thanks to Brian Cassidy for reporting it. + - Added "h" as a monitor shortcut for "help". + 0.11 (2012-01-07) - Added a new 65Org16 MPU simulation written by Ed Spittles. diff --git a/src/py65/monitor.py b/src/py65/monitor.py index 5cf7c86..40c66bb 100644 --- a/src/py65/monitor.py +++ b/src/py65/monitor.py @@ -117,7 +117,6 @@ class Monitor(cmd.Cmd): def _add_shortcuts(self): self._shortcuts = {'~': 'tilde', - '?': 'help', 'a': 'assemble', 'al': 'add_label', 'd': 'disassemble', @@ -125,6 +124,8 @@ class Monitor(cmd.Cmd): 'f': 'fill', '>': 'fill', 'g': 'goto', + 'h': 'help', + '?': 'help', 'l': 'load', 'm': 'mem', 'q': 'quit', diff --git a/src/py65/tests/test_monitor.py b/src/py65/tests/test_monitor.py index 1bb7711..d75cb69 100644 --- a/src/py65/tests/test_monitor.py +++ b/src/py65/tests/test_monitor.py @@ -379,18 +379,41 @@ class MonitorTests(unittest.TestCase): # help - def test_help_accepts_command_shortcuts(self): + def test_help_without_args_shows_documented_commands(self): stdout = StringIO() mon = Monitor(stdout=stdout) - - mon.onecmd("help assemble \t ") - help_for_command = stdout.getvalue() + mon.onecmd('help') + out = stdout.getvalue() + self.assertTrue("Documented commands" in out) stdout.truncate(0) - mon.onecmd("help a \t ") - help_for_shortcut = stdout.getvalue() + mon.onecmd('h') + out = stdout.getvalue() + self.assertTrue("Documented commands" in out) - self.assertEqual(help_for_command, help_for_shortcut) + stdout.truncate(0) + mon.onecmd('?') + out = stdout.getvalue() + self.assertTrue("Documented commands" in out) + + def test_help_with_args_shows_command_help(self): + stdout = StringIO() + mon = Monitor(stdout=stdout) + mon.onecmd('help assemble') + out = stdout.getvalue() + self.assertTrue(out.startswith("assemble
")) + + stdout.truncate(0) + mon.onecmd('h a') + out = stdout.getvalue() + self.assertTrue("assemble
" in out) + + def test_help_with_invalid_args_shows_error(self): + stdout = StringIO() + mon = Monitor(stdout=stdout) + mon.onecmd('help foo') + out = stdout.getvalue() + self.assertTrue(out.startswith("*** No help on foo")) # load