diff --git a/tests/test_ui.py b/tests/test_ui.py index aec2f09..d18fa01 100644 --- a/tests/test_ui.py +++ b/tests/test_ui.py @@ -43,8 +43,6 @@ def test_read_actions(patch_getch): def test_command_selector(): selector = ui.CommandSelector([1, 2, 3]) assert selector.value == 1 - changes = [] - selector.on_change(changes.append) selector.next() assert selector.value == 2 selector.next() @@ -53,7 +51,6 @@ def test_command_selector(): assert selector.value == 1 selector.previous() assert selector.value == 3 - assert changes == [1, 2, 3, 1, 3] @pytest.mark.usefixtures('no_colors') diff --git a/thefuck/ui.py b/thefuck/ui.py index 4cd7303..8f71872 100644 --- a/thefuck/ui.py +++ b/thefuck/ui.py @@ -53,24 +53,17 @@ class CommandSelector(object): def __init__(self, commands): self._commands = commands self._index = 0 - self._on_change = lambda x: x def next(self): self._index = (self._index + 1) % len(self._commands) - self._on_change(self.value) def previous(self): self._index = (self._index - 1) % len(self._commands) - self._on_change(self.value) @property def value(self): return self._commands[self._index] - def on_change(self, fn): - self._on_change = fn - fn(self.value) - def select_command(corrected_commands): """Returns: @@ -89,7 +82,8 @@ def select_command(corrected_commands): logs.show_corrected_command(selector.value) return selector.value - selector.on_change(lambda val: logs.confirm_text(val)) + logs.confirm_text(selector.value) + for action in read_actions(): if action == SELECT: sys.stderr.write('\n') @@ -99,5 +93,7 @@ def select_command(corrected_commands): return elif action == PREVIOUS: selector.previous() + logs.confirm_text(selector.value) elif action == NEXT: selector.next() + logs.confirm_text(selector.value)