# Handle help toggle keys
if ch == ord("h") or ch == ord("H") or ch == ord("?"):
self.show_help = not self.show_help
+ return
# If showing help, any other key closes it
- elif self.show_help and ch != -1:
+ if self.show_help and ch != -1:
self.show_help = False
+ return
# Handle regular commands
if ch == ord("q") or ch == ord("Q"):
self.assertTrue(self.collector.show_help)
+ def test_help_dismiss_with_q_does_not_quit(self):
+ """Test that pressing 'q' while help is shown only closes help, not quit"""
+ self.assertFalse(self.collector.show_help)
+ self.display.simulate_input(ord("h"))
+ self.collector._handle_input()
+ self.assertTrue(self.collector.show_help)
+
+ self.display.simulate_input(ord("q"))
+ self.collector._handle_input()
+
+ self.assertFalse(self.collector.show_help)
+ self.assertTrue(self.collector.running)
+
def test_filter_clear(self):
"""Test clearing filter."""
self.collector.filter_pattern = "test"