-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
import pytest | ||
from thefuck.rules.vagrant_up import match, get_new_command | ||
from tests.utils import Command | ||
|
||
|
||
@pytest.mark.parametrize('command', [ | ||
Command(script='vagrant ssh', stderr='VM must be running to open SSH connection. Run `vagrant up`\nto start the virtual machine.'), | ||
Command(script='vagrant ssh devbox', stderr='VM must be running to open SSH connection. Run `vagrant up`\nto start the virtual machine.'), | ||
Command(script='vagrant rdp', | ||
stderr='VM must be created before running this command. Run `vagrant up` first.'), | ||
Command(script='vagrant rdp devbox', | ||
stderr='VM must be created before running this command. Run `vagrant up` first.')]) | ||
def test_match(command): | ||
assert match(command, None) | ||
|
||
|
||
@pytest.mark.parametrize('command', [ | ||
Command(script='vagrant ssh', stderr=''), | ||
Command(script='vagrant ssh jeff', stderr='The machine with the name \'jeff\' was not found configured for this Vagrant environment.'), | ||
Command(script='vagrant ssh', stderr='A Vagrant environment or target machine is required to run this command. Run `vagrant init` to create a new Vagrant environment. Or, get an ID of a target machine from `vagrant global-status` to run this command on. A final option is to change to a directory with a Vagrantfile and to try again.'), | ||
Command()]) | ||
def test_not_match(command): | ||
assert not match(command, None) | ||
|
||
|
||
@pytest.mark.parametrize('command, new_command', [ | ||
(Command(script='vagrant ssh', stderr='VM must be running to open SSH connection. Run `vagrant up`\nto start the virtual machine.'), 'vagrant up && vagrant ssh'), | ||
(Command(script='vagrant ssh devbox', stderr='VM must be running to open SSH connection. Run `vagrant up`\nto start the virtual machine.'), ['vagrant up devbox && vagrant ssh devbox', 'vagrant up && vagrant ssh devbox']), | ||
(Command(script='vagrant rdp', | ||
stderr='VM must be created before running this command. Run `vagrant up` first.'), 'vagrant up && vagrant rdp'), | ||
(Command(script='vagrant rdp devbox', | ||
stderr='VM must be created before running this command. Run `vagrant up` first.'), ['vagrant up devbox && vagrant rdp devbox', 'vagrant up && vagrant rdp devbox'])]) | ||
def test_get_new_command(command, new_command): | ||
assert get_new_command(command, None) == new_command | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
from thefuck import shells | ||
|
||
|
||
def match(command, settings): | ||
return command.script.startswith('vagrant ') and 'run `vagrant up`' in command.stderr.lower() | ||
|
||
|
||
def get_new_command(command, settings): | ||
cmds = command.script.split(' ') | ||
machine = None | ||
if len(cmds) >= 3: | ||
machine = cmds[2] | ||
|
||
startAllInstances = shells.and_("vagrant up", command.script) | ||
if machine is None: | ||
return startAllInstances | ||
else: | ||
return [ shells.and_("vagrant up " + machine, command.script), startAllInstances] |