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
 | 
