import pytest from tests.utils import Command from thefuck.rules.gulp_not_task import match, get_new_command def stdout(task): return '''[00:41:11] Using gulpfile gulpfile.js [00:41:11] Task '{}' is not in your gulpfile [00:41:11] Please check the documentation for proper gulpfile formatting '''.format(task) def test_match(): assert match(Command('gulp srve', stdout('srve')), None) @pytest.mark.parametrize('script, stdout', [ ('gulp serve', ''), ('cat srve', stdout('srve'))]) def test_not_march(script, stdout): assert not match(Command(script, stdout), None) def test_get_new_command(mocker): mocker.patch('thefuck.rules.gulp_not_task.get_gulp_tasks', return_value=[ 'serve', 'build', 'default']) command = Command('gulp srve', stdout('srve')) assert get_new_command(command, None) == ['gulp serve', 'gulp default']