fluke/devops-client/tests/base_test.rb
GGA Software Services LLC 02bf8b1bba initial commit
2014-05-08 17:06:06 +04:00

105 lines
1.8 KiB
Ruby

require "json"
class BaseTest
COMMAND = "devops"
SUCCESS = "\e[32msuccess\e[0m"
FAILED = "\e[31mfailed\e[0m"
CONFIGS = ["./devops-client-test.conf"]
#, "-c ./test_conf1.conf"]
TITLE_SEPARATOR = "-" * 80
END_SEPARATOR = "*" * 80 + "\n"
def title= title
@title = title
end
def run_tests cmds, check=true
puts
puts @title
puts TITLE_SEPARATOR
cmds.each do |cmd|
command = create_cmd(cmd)
s = `#{command}`
if check
if $?.success?
print SUCCESS
else
print FAILED
puts_error s
exit(1)
end
end
puts
end
puts END_SEPARATOR
end
def run_test_with_block cmd
puts
puts @title
puts TITLE_SEPARATOR
command = create_cmd(cmd)
s = `#{command}`
if $?.success?
puts SUCCESS
if block_given?
print "Validation block...\t"
res = yield s
if res
puts SUCCESS
else
puts FAILED
puts_error("Validation block returns 'false'")
exit(-1)
end
end
else
puts FAILED
puts_error s
exit(1)
end
puts END_SEPARATOR
end
def run_tests_invalid cmds
puts
puts @title
puts TITLE_SEPARATOR
cmds.each do |cmd|
command = create_cmd(cmd)
s = `#{command}`
if $?.success?
puts FAILED
exit(1)
else
puts SUCCESS
end
end
puts END_SEPARATOR
end
def puts_error str
puts "\e[31m#{str}\e[0m"
end
def puts_warn str
puts "\e[33m#{str}\e[0m"
end
def config= conf
@config = conf
end
def create_cmd cmd
command = if @config.nil?
"#{COMMAND} #{cmd}"
else
"#{COMMAND} -c #{@config} #{cmd}"
end
print "#{command}...\t"
command
end
end