1
0
Fork 0
mirror of https://github.com/capistrano/capistrano synced 2023-03-27 23:21:18 -04:00
capistrano/features/support/remote_command_helpers.rb
Travis Petticrew 2e13a1319c Cucumber tests will now run on the latest Vagrant
This removes the dependency on the `kuroko` gem and uses the Vagrant
command line application to control the virtual environment. The
`vagrant` command should be in your path, but if it isn't the path can
be set with the `VAGRANT_BIN` environment variable. This may even work
on older versions of Vagrant, but they are untested.

The `VagrantHelpers` module was added to mimic some of the API that was
provided by `kuroko`. The `RemoteCommandHelpers` module was modified to
accommodate those changes. Any non-zero exit status on a remote command
will raise a `VagrantHelpers::VagrantSSHCommandError` and should be
expected by any tests using the command helpers. All existing tests
work as expected.

In addition, a couple of minor changes were made. The TestApp utilizes
the Pathname library but does not require it. This was causing the suite
to fail for me so I added an explicit require. Also, the test for the
existence of a release directory would give a false positive on
subsequent runs if the `KEEP_RUNNING` option was used. I added an
`at_exit` that removes the test deployment directory to clean up the
box for the next run.

Documentation was also added to the README for how to run the test
suites.
2014-04-23 10:19:20 -05:00

23 lines
429 B
Ruby

module RemoteCommandHelpers
def test_dir_exists(path)
exists?('d', path)
end
def test_symlink_exists(path)
exists?('L', path)
end
def test_file_exists(path)
exists?('f', path)
end
def exists?(type, path)
%{[ -#{type} "#{path}" ]}
end
def safely_remove_file(path)
run_vagrant_command("rm #{test_file}") rescue VagrantHelpers::VagrantSSHCommandError
end
end
World(RemoteCommandHelpers)