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
|
|
|