87 lines
1.8 KiB
Ruby
87 lines
1.8 KiB
Ruby
require "rubygems"
|
|
require "rspec"
|
|
require "fakefs/safe"
|
|
require "fakefs/spec_helpers"
|
|
|
|
$:.unshift File.expand_path("../../lib", __FILE__)
|
|
|
|
def mock_error(subject, message)
|
|
mock_exit do
|
|
mock(subject).puts("ERROR: #{message}")
|
|
yield
|
|
end
|
|
end
|
|
|
|
def foreman(args)
|
|
Foreman::CLI.start(args.split(" "))
|
|
end
|
|
|
|
def mock_exit(&block)
|
|
block.should raise_error(SystemExit)
|
|
end
|
|
|
|
def write_foreman_config(app)
|
|
File.open("/etc/foreman/#{app}.conf", "w") do |file|
|
|
file.puts %{#{app}_processes="alpha bravo"}
|
|
file.puts %{#{app}_alpha="1"}
|
|
file.puts %{#{app}_bravo="2"}
|
|
end
|
|
end
|
|
|
|
def write_procfile(procfile="Procfile", alpha_env="")
|
|
File.open(procfile, "w") do |file|
|
|
file.puts "alpha: ./alpha" + " #{alpha_env}".rstrip
|
|
file.puts "\n"
|
|
file.puts "bravo:\t./bravo"
|
|
end
|
|
File.expand_path(procfile)
|
|
end
|
|
|
|
def write_env(env=".env")
|
|
File.open(env, "w") do |file|
|
|
file.puts "FOO=bar"
|
|
end
|
|
end
|
|
|
|
def load_export_templates_into_fakefs(type)
|
|
FakeFS.deactivate!
|
|
files = Dir[File.expand_path("../../data/export/#{type}/**", __FILE__)].inject({}) do |hash, file|
|
|
hash.update(file => File.read(file))
|
|
end
|
|
FakeFS.activate!
|
|
files.each do |filename, contents|
|
|
File.open(filename, "w") do |f|
|
|
f.puts contents
|
|
end
|
|
end
|
|
end
|
|
|
|
def example_export_file(filename)
|
|
FakeFS.deactivate!
|
|
data = File.read(File.expand_path("../resources/export/#{filename}", __FILE__))
|
|
FakeFS.activate!
|
|
data
|
|
end
|
|
|
|
def preserving_env
|
|
old_env = ENV.to_hash
|
|
begin
|
|
yield
|
|
ensure
|
|
ENV.clear
|
|
ENV.update(old_env)
|
|
end
|
|
end
|
|
|
|
def normalize_space(s)
|
|
s.gsub(/\n[\n\s]*/, "\n")
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
config.color_enabled = true
|
|
config.order = 'rand'
|
|
config.include FakeFS::SpecHelpers, :fakefs
|
|
config.mock_with :rr
|
|
end
|