105 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			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 |