diff --git a/tests/test_types.py b/tests/test_types.py index e8028aa1..1201d2c2 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -44,6 +44,10 @@ class TestSortedCorrectedCommandsSequence(object): assert set(seq) == {CorrectedCommand('ls', priority=100), CorrectedCommand('ls', side_effect, 300)} + def test_with_blank(self, settings): + seq = SortedCorrectedCommandsSequence(iter([]), settings) + assert list(seq) == [] + class TestCorrectedCommand(object): diff --git a/thefuck/types.py b/thefuck/types.py index 69b174ea..cf091376 100644 --- a/thefuck/types.py +++ b/thefuck/types.py @@ -81,9 +81,10 @@ class SortedCorrectedCommandsSequence(object): def _realise(self): """Realises generator, removes duplicates and sorts commands.""" - commands = self._remove_duplicates(self._commands) - self._cached = [self._cached[0]] + sorted( - commands, key=lambda corrected_command: corrected_command.priority) + if self._cached: + commands = self._remove_duplicates(self._commands) + self._cached = [self._cached[0]] + sorted( + commands, key=lambda corrected_command: corrected_command.priority) self._realised = True debug('SortedCommandsSequence was realised with: {}, after: {}'.format( self._cached, '\n'.join(format_stack())), self._settings)