75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "./base_test" | ||
|  | 
 | ||
|  | class User < BaseTest | ||
|  |   TITLE = "User tests - " | ||
|  | 
 | ||
|  |   def run | ||
|  |     user = "test_user" | ||
|  |     psw = "test" | ||
|  |     self.title = TITLE + "list" | ||
|  |     run_tests [ | ||
|  |       "user list" | ||
|  |     ] | ||
|  |     self.title = TITLE + "create" | ||
|  |     run_tests [ | ||
|  |       "user create #{user} --password #{psw}" | ||
|  |     ] | ||
|  |     self.title = TITLE + "create, invalid" | ||
|  |     run_tests_invalid [ | ||
|  |       "user create #{user} --password #{psw}" | ||
|  |     ] | ||
|  | 
 | ||
|  |     run_test_with_block "user list --format json" do |o| | ||
|  |       !JSON.parse(o).detect{|u| u["id"] == user}.nil? | ||
|  |     end | ||
|  | 
 | ||
|  |     self.title = TITLE + "grant" | ||
|  |     cmds = %w{flavor group image project server key user filter network provider script} | ||
|  |     p = %w{r w rw} | ||
|  |     cmds.each do |c| | ||
|  |       p.each do |pr| | ||
|  |         self.title = TITLE + "grant #{c} #{pr}" | ||
|  |         run_tests ["user grant #{user} #{c} #{pr}"] | ||
|  |         run_test_with_block "user list --format json" do |o| | ||
|  |           u = JSON.parse(o).detect{|u| u["id"] == user} | ||
|  |           u["privileges"][c] == pr | ||
|  |         end | ||
|  |       end | ||
|  |     end | ||
|  |     p.push("") | ||
|  |     p.each do |pr| | ||
|  |       self.title = TITLE + "grant all #{pr}" | ||
|  |       run_tests ["user grant #{user} all #{pr}"] | ||
|  |       run_test_with_block "user list --format json" do |o| | ||
|  |         u = JSON.parse(o).detect{|u| u["id"] == user} | ||
|  |         u["privileges"].each do |cmd, p| | ||
|  |           unless p == pr | ||
|  |             puts_error "#{cmd} should be equals '#{pr}' but it is '#{p}'" | ||
|  |           end | ||
|  |           true | ||
|  |         end | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |     self.title = TITLE + "delete" | ||
|  |     run_tests [ | ||
|  |       "user delete #{user} -y" | ||
|  |     ] | ||
|  |     self.title = TITLE + "delete invalid" | ||
|  |     run_tests_invalid [ | ||
|  |       "user delete #{user} -y" | ||
|  |     ] | ||
|  | 
 | ||
|  |     self.title = TITLE + "invalid" | ||
|  |     run_tests_invalid [ | ||
|  |       "user", | ||
|  |       "user create", | ||
|  |       "user delete", | ||
|  |       "user grant", | ||
|  |       "user password" | ||
|  |     ] | ||
|  |   end | ||
|  | 
 | ||
|  | end | ||
|  | 
 |