mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00:00 
			
		
		
		
	Remove obscure SortedCorrectedCommandsSequence
				
					
				
			This commit is contained in:
		| @@ -3,7 +3,8 @@ from pathlib import PosixPath, Path | ||||
| from mock import Mock | ||||
| from thefuck import corrector, conf | ||||
| from tests.utils import Rule, Command, CorrectedCommand | ||||
| from thefuck.corrector import make_corrected_commands, get_corrected_commands, is_rule_enabled | ||||
| from thefuck.corrector import make_corrected_commands, get_corrected_commands,\ | ||||
|     is_rule_enabled, organize_commands | ||||
|  | ||||
|  | ||||
| def test_load_rule(mocker): | ||||
| @@ -111,3 +112,13 @@ def test_get_corrected_commands(mocker): | ||||
|     mocker.patch('thefuck.corrector.get_rules', return_value=rules) | ||||
|     assert [cmd.script for cmd in get_corrected_commands(command)] \ | ||||
|            == ['test!', 'test@', 'test;'] | ||||
|  | ||||
|  | ||||
| def test_organize_commands(): | ||||
|     """Ensures that the function removes duplicates and sorts commands.""" | ||||
|     commands = [CorrectedCommand('ls'), CorrectedCommand('ls -la', priority=9000), | ||||
|                 CorrectedCommand('ls -lh', priority=100), | ||||
|                 CorrectedCommand('ls -lh', priority=9999)] | ||||
|     assert list(organize_commands(iter(commands))) \ | ||||
|         == [CorrectedCommand('ls'), CorrectedCommand('ls -lh', priority=100), | ||||
|             CorrectedCommand('ls -la', priority=9000)] | ||||
|   | ||||
| @@ -1,37 +1,6 @@ | ||||
| from thefuck.types import SortedCorrectedCommandsSequence | ||||
| from tests.utils import CorrectedCommand | ||||
|  | ||||
|  | ||||
| class TestSortedCorrectedCommandsSequence(object): | ||||
|     def test_realises_generator_only_on_demand(self, settings): | ||||
|         should_realise = False | ||||
|  | ||||
|         def gen(): | ||||
|             yield CorrectedCommand('git commit') | ||||
|             yield CorrectedCommand('git branch', priority=200) | ||||
|             assert should_realise | ||||
|             yield CorrectedCommand('git checkout', priority=100) | ||||
|  | ||||
|         commands = SortedCorrectedCommandsSequence(gen()) | ||||
|         assert commands[0] == CorrectedCommand('git commit') | ||||
|         should_realise = True | ||||
|         assert commands[1] == CorrectedCommand('git checkout', priority=100) | ||||
|         assert commands[2] == CorrectedCommand('git branch', priority=200) | ||||
|  | ||||
|     def test_remove_duplicates(self): | ||||
|         side_effect = lambda *_: None | ||||
|         seq = SortedCorrectedCommandsSequence( | ||||
|             iter([CorrectedCommand('ls', priority=100), | ||||
|                   CorrectedCommand('ls', priority=200), | ||||
|                   CorrectedCommand('ls', side_effect, 300)])) | ||||
|         assert set(seq) == {CorrectedCommand('ls', priority=100), | ||||
|                             CorrectedCommand('ls', side_effect, 300)} | ||||
|  | ||||
|     def test_with_blank(self): | ||||
|         seq = SortedCorrectedCommandsSequence(iter([])) | ||||
|         assert list(seq) == [] | ||||
|  | ||||
|  | ||||
| class TestCorrectedCommand(object): | ||||
|  | ||||
|     def test_equality(self): | ||||
|   | ||||
| @@ -1,10 +1,9 @@ | ||||
| # -*- encoding: utf-8 -*- | ||||
|  | ||||
| from mock import Mock | ||||
| import pytest | ||||
| from itertools import islice | ||||
| from thefuck import ui | ||||
| from thefuck.types import CorrectedCommand, SortedCorrectedCommandsSequence | ||||
| from thefuck.types import CorrectedCommand | ||||
|  | ||||
|  | ||||
| @pytest.fixture | ||||
| @@ -41,7 +40,7 @@ def test_read_actions(patch_getch): | ||||
|  | ||||
|  | ||||
| def test_command_selector(): | ||||
|     selector = ui.CommandSelector([1, 2, 3]) | ||||
|     selector = ui.CommandSelector(iter([1, 2, 3])) | ||||
|     assert selector.value == 1 | ||||
|     selector.next() | ||||
|     assert selector.value == 2 | ||||
| @@ -57,51 +56,49 @@ def test_command_selector(): | ||||
| class TestSelectCommand(object): | ||||
|     @pytest.fixture | ||||
|     def commands_with_side_effect(self): | ||||
|         return SortedCorrectedCommandsSequence( | ||||
|             iter([CorrectedCommand('ls', lambda *_: None, 100), | ||||
|                   CorrectedCommand('cd', lambda *_: None, 100)])) | ||||
|         return [CorrectedCommand('ls', lambda *_: None, 100), | ||||
|                 CorrectedCommand('cd', lambda *_: None, 100)] | ||||
|  | ||||
|     @pytest.fixture | ||||
|     def commands(self): | ||||
|         return SortedCorrectedCommandsSequence( | ||||
|             iter([CorrectedCommand('ls', None, 100), | ||||
|                   CorrectedCommand('cd', None, 100)])) | ||||
|         return [CorrectedCommand('ls', None, 100), | ||||
|                 CorrectedCommand('cd', None, 100)] | ||||
|  | ||||
|     def test_without_commands(self, capsys): | ||||
|         assert ui.select_command([]) is None | ||||
|         assert ui.select_command(iter([])) is None | ||||
|         assert capsys.readouterr() == ('', 'No fucks given\n') | ||||
|  | ||||
|     def test_without_confirmation(self, capsys, commands, settings): | ||||
|         settings.require_confirmation = False | ||||
|         assert ui.select_command(commands) == commands[0] | ||||
|         assert ui.select_command(iter(commands)) == commands[0] | ||||
|         assert capsys.readouterr() == ('', 'ls\n') | ||||
|  | ||||
|     def test_without_confirmation_with_side_effects( | ||||
|             self, capsys, commands_with_side_effect, settings): | ||||
|         settings.require_confirmation = False | ||||
|         assert ui.select_command(commands_with_side_effect) \ | ||||
|         assert ui.select_command(iter(commands_with_side_effect)) \ | ||||
|                == commands_with_side_effect[0] | ||||
|         assert capsys.readouterr() == ('', 'ls (+side effect)\n') | ||||
|  | ||||
|     def test_with_confirmation(self, capsys, patch_getch, commands): | ||||
|         patch_getch(['\n']) | ||||
|         assert ui.select_command(commands) == commands[0] | ||||
|         assert ui.select_command(iter(commands)) == commands[0] | ||||
|         assert capsys.readouterr() == ('', u'\x1b[1K\rls [enter/↑/↓/ctrl+c]\n') | ||||
|  | ||||
|     def test_with_confirmation_abort(self, capsys, patch_getch, commands): | ||||
|         patch_getch([KeyboardInterrupt]) | ||||
|         assert ui.select_command(commands) is None | ||||
|         assert ui.select_command(iter(commands)) is None | ||||
|         assert capsys.readouterr() == ('', u'\x1b[1K\rls [enter/↑/↓/ctrl+c]\nAborted\n') | ||||
|  | ||||
|     def test_with_confirmation_with_side_effct(self, capsys, patch_getch, | ||||
|                                                commands_with_side_effect): | ||||
|         patch_getch(['\n']) | ||||
|         assert ui.select_command(commands_with_side_effect)\ | ||||
|         assert ui.select_command(iter(commands_with_side_effect))\ | ||||
|                == commands_with_side_effect[0] | ||||
|         assert capsys.readouterr() == ('', u'\x1b[1K\rls (+side effect) [enter/↑/↓/ctrl+c]\n') | ||||
|  | ||||
|     def test_with_confirmation_select_second(self, capsys, patch_getch, commands): | ||||
|         patch_getch(['\x1b', '[', 'B', '\n']) | ||||
|         assert ui.select_command(commands) == commands[1] | ||||
|         assert ui.select_command(iter(commands)) == commands[1] | ||||
|         assert capsys.readouterr() == ( | ||||
|             '', u'\x1b[1K\rls [enter/↑/↓/ctrl+c]\x1b[1K\rcd [enter/↑/↓/ctrl+c]\n') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user