Example #1
0
def test_get_matched_rule():
    rules = [main.Rule(lambda x, _: x.script == 'cd ..', None),
             main.Rule(lambda *_: False, None)]
    assert main.get_matched_rule(main.Command('ls', '', ''),
                                 rules, None) is None
    assert main.get_matched_rule(main.Command('cd ..', '', ''),
                                 rules, None) == rules[0]
Example #2
0
def test_get_matched_rule(capsys):
    rules = [
        main.Rule('', lambda x, _: x.script == 'cd ..', None),
        main.Rule('', lambda *_: False, None),
        main.Rule('rule', Mock(side_effect=OSError('Denied')), None)
    ]
    assert main.get_matched_rule(main.Command('ls', '', ''), rules,
                                 Mock(no_colors=True)) is None
    assert main.get_matched_rule(main.Command('cd ..', '', ''), rules,
                                 Mock(no_colors=True)) == rules[0]
    assert capsys.readouterr()[1].split('\n')[0]\
           == '[WARN] Rule rule:'
Example #3
0
def test_get_command():
    with patch('thefuck.main.Popen') as Popen:
        Popen.return_value.stdout.read.return_value = b'stdout'
        Popen.return_value.stderr.read.return_value = b'stderr'
        assert main.get_command(['thefuck', 'apt-get', 'search', 'vim']) \
               == main.Command('apt-get search vim', 'stdout', 'stderr')
        Popen.assert_called_once_with('apt-get search vim',
                                      shell=True,
                                      stdout=PIPE,
                                      stderr=PIPE)
Example #4
0
def test_get_command():
    with patch('thefuck.main.Popen') as Popen, \
            patch('thefuck.main.os.environ',
                  new_callable=lambda: {}), \
            patch('thefuck.main.wait_output',
                  return_value=True):
        Popen.return_value.stdout.read.return_value = b'stdout'
        Popen.return_value.stderr.read.return_value = b'stderr'
        assert main.get_command(Mock(), ['thefuck', 'apt-get',
                                         'search', 'vim']) \
               == main.Command('apt-get search vim', 'stdout', 'stderr')
        Popen.assert_called_once_with('apt-get search vim',
                                      shell=True,
                                      stdout=PIPE,
                                      stderr=PIPE,
                                      env={'LANG': 'C'})