Please Be Sure To Run Both 'rake spec' and 'rake cucumber' Before
_every_ Patch Submitted and/or Committed
---
src/app/models/hardware_profile.rb | 12 +++++-----
.../controllers/portal_pool_controller_spec.rb | 5 +--
src/spec/controllers/provider_controller_spec.rb | 1 -
.../controllers/user_sessions_controller_spec.rb | 4 +-
src/spec/factories/base_portal_object.rb | 3 --
src/spec/factories/permission.rb | 19 ++++++++++-----
src/spec/factories/privilege.rb | 14 -----------
src/spec/factories/provider.rb | 2 +-
src/spec/factories/role.rb | 24 --------------------
src/spec/factories/user.rb | 10 +------
src/spec/fixtures/base_portal_objects.yml | 2 +
src/spec/fixtures/roles.yml | 24 +++++++++++++------
12 files changed, 44 insertions(+), 76 deletions(-)
delete mode 100644 src/spec/factories/base_portal_object.rb
delete mode 100644 src/spec/factories/privilege.rb
delete mode 100644 src/spec/factories/role.rb
create mode 100644 src/spec/fixtures/base_portal_objects.yml
diff --git a/src/app/models/hardware_profile.rb
b/src/app/models/hardware_profile.rb
index fdcdd3f..7714acb 100644
--- a/src/app/models/hardware_profile.rb
+++ b/src/app/models/hardware_profile.rb
@@ -64,14 +64,14 @@ class HardwareProfile < ActiveRecord::Base
errors.add(:provider, "provider or pool must be blank")
errors.add(:portal_pool, "provider or pool must be blank")
elsif provider.nil?
- if !aggregator_hardware_profiles.empty?
- errors.add(:aggregator_hardware_profiles,
- "Aggregator profiles only allowed for provider profiles")
- end
- elsif portal_pool.nil?
if !provider_hardware_profiles.empty?
errors.add(:provider_hardware_profiles,
- "Provider profiles only allowed for aggregator profiles")
+ "Provider profiles only allowed for provider profiles")
+ end
+ elsif portal_pool.nil?
+ if !aggregator_hardware_profiles.empty?
+ errors.add(:aggregator_hardware_profiles,
+ "Aggregator profiles only allowed for pool profiles")
end
end
end
diff --git a/src/spec/controllers/portal_pool_controller_spec.rb
b/src/spec/controllers/portal_pool_controller_spec.rb
index d409c3a..bc01a31 100644
--- a/src/spec/controllers/portal_pool_controller_spec.rb
+++ b/src/spec/controllers/portal_pool_controller_spec.rb
@@ -21,13 +21,12 @@ describe PortalPoolController do
end
it "should provider means to create new pool" do
- @instance_creator = Factory :instance_creator
-
UserSession.create(@admin)
lambda do
post :create, :portal_pool => { :name => 'foopool' }
end.should change(PortalPool, :count).by(1)
- response.should redirect_to('http://test.host/portal_pool/show/1')
+ id = PortalPool.find(:first, :conditions => ['name = ?', 'foopool']).id
+ response.should redirect_to("http://test.host/portal_pool/show/#{id}")
end
diff --git a/src/spec/controllers/provider_controller_spec.rb
b/src/spec/controllers/provider_controller_spec.rb
index ea67580..9015a00 100644
--- a/src/spec/controllers/provider_controller_spec.rb
+++ b/src/spec/controllers/provider_controller_spec.rb
@@ -3,7 +3,6 @@ require 'spec_helper'
describe ProviderController do
before(:each) do
- Factory :base_portal_object
@admin_permission = Factory :provider_admin_permission
@provider = @admin_permission.permission_object
@admin = @admin_permission.user
diff --git a/src/spec/controllers/user_sessions_controller_spec.rb
b/src/spec/controllers/user_sessions_controller_spec.rb
index f2b80d5..1c0cfcc 100644
--- a/src/spec/controllers/user_sessions_controller_spec.rb
+++ b/src/spec/controllers/user_sessions_controller_spec.rb
@@ -16,14 +16,14 @@ describe UserSessionsController do
end
it "should create user session" do
- post :create, :user_session => { :login => "tuser", :password => "secret" }
+ post :create, :user_session => { :login => @tuser.login, :password =>
"secret" }
UserSession.find.should_not == nil
@tuser.should == UserSession.find.user
response.should redirect_to(account_path)
end
it "should destroy user session" do
- post :create, :user_session => { :login => "tuser", :password => "secret" }
+ post :create, :user_session => { :login => @tuser.login, :password =>
"secret" }
delete :destroy
UserSession.find.should == nil
response.should redirect_to(login_path)
diff --git a/src/spec/factories/base_portal_object.rb
b/src/spec/factories/base_portal_object.rb
deleted file mode 100644
index af4c8bd..0000000
--- a/src/spec/factories/base_portal_object.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-Factory.define :base_portal_object do |p|
- p.name 'general_permission_scope'
-end
diff --git a/src/spec/factories/permission.rb b/src/spec/factories/permission.rb
index 0e99f97..084ea4e 100644
--- a/src/spec/factories/permission.rb
+++ b/src/spec/factories/permission.rb
@@ -1,14 +1,21 @@
Factory.define :permission do |p|
+ p.after_build { |p| p.user.permissions << p }
end
Factory.define :admin_permission, :parent => :permission do |p|
- p.role { |r| r.association(:admin_role) }
- p.permission_object { |r| r.association(:base_portal_object) }
- p.user { |r| r.association(:admin_user) }
+ p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Administrator'])
}
+ p.permission_object { |r| BasePortalObject.general_permission_scope }
+ p.user { |u| u.association(:admin_user) }
end
Factory.define :provider_admin_permission, :parent => :permission do |p|
- p.role { |r| r.association(:provider_admin_role) }
- p.permission_object { |r| r.association(:mock1) }
- p.user { |r| r.association(:provider_admin_user) }
+ p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Provider
Administrator']) }
+ p.permission_object { |r| r.association(:mock_provider) }
+ p.user { |u| u.association(:provider_admin_user) }
+end
+
+Factory.define :pool_creator_permission, :parent => :permission do |p|
+ p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Pool Creator']) }
+ p.permission_object { |r| r.association(:mock_provider) }
+ p.user { |u| u.association(:pool_creator) }
end
diff --git a/src/spec/factories/privilege.rb b/src/spec/factories/privilege.rb
deleted file mode 100644
index 46bdeb4..0000000
--- a/src/spec/factories/privilege.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-Factory.define :privilege do |p|
-end
-
-Factory.define :modify_pool_priv, :parent => :privilege do |p|
- p.name 'pool_modify'
-end
-
-Factory.define :modify_provider_priv, :parent => :privilege do |p|
- p.name 'provider_modify'
-end
-
-Factory.define :view_provider_priv, :parent => :privilege do |p|
- p.name 'provider_view'
-end
diff --git a/src/spec/factories/provider.rb b/src/spec/factories/provider.rb
index ae1abd2..921d54b 100644
--- a/src/spec/factories/provider.rb
+++ b/src/spec/factories/provider.rb
@@ -1,7 +1,7 @@
Factory.define :provider do |p|
end
-Factory.define :mock1, :parent => :provider do |p|
+Factory.define :mock_provider, :parent => :provider do |p|
p.name 'mock1'
p.cloud_type 'mock'
p.url 'http://localhost:3001/api'
diff --git a/src/spec/factories/role.rb b/src/spec/factories/role.rb
deleted file mode 100644
index b126721..0000000
--- a/src/spec/factories/role.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# FIXME need to flush out all roles w/ all privileges
-
-Factory.define :role do |r|
-end
-
-Factory.define :admin_role, :parent => :role do |r|
- r.name 'Administrator'
- r.scope 'BasePortalObject'
- r.privileges { |p| [ p.association(:modify_pool_priv),
- p.association(:modify_provider_priv),
- p.association(:view_provider_priv) ] }
-end
-
-Factory.define :instance_creator, :parent => :role do |r|
- r.name 'Instance Creator and User'
- r.scope 'PortalPool'
-end
-
-Factory.define :provider_admin_role, :parent => :role do |r|
- r.name 'Provider Administrator'
- r.scope 'BasePortalObject'
- r.privileges { |p| [ p.association(:modify_provider_priv),
- p.association(:view_provider_priv) ] }
-end
diff --git a/src/spec/factories/user.rb b/src/spec/factories/user.rb
index 077083b..0cc33c7 100644
--- a/src/spec/factories/user.rb
+++ b/src/spec/factories/user.rb
@@ -1,6 +1,6 @@
Factory.define :user do |u|
- u.login 'myuser'
- u.email '[email protected]'
+ u.sequence(:login) { |n| "user#{n}" }
+ u.email { |e| "#{[email protected]" }
u.password 'secret'
u.password_confirmation 'secret'
u.first_name 'John'
@@ -8,16 +8,10 @@ Factory.define :user do |u|
end
Factory.define :tuser, :parent => :user do |u|
- u.login 'tuser'
- u.email '[email protected]'
end
Factory.define :admin_user, :parent => :user do |u|
- u.login 'padmin'
- u.email '[email protected]'
end
Factory.define :provider_admin_user, :parent => :user do |u|
- u.login 'provider_admin'
- u.email '[email protected]'
end
diff --git a/src/spec/fixtures/base_portal_objects.yml
b/src/spec/fixtures/base_portal_objects.yml
new file mode 100644
index 0000000..a520969
--- /dev/null
+++ b/src/spec/fixtures/base_portal_objects.yml
@@ -0,0 +1,2 @@
+general_permission_scope:
+ name: 'general_permission_scope'
diff --git a/src/spec/fixtures/roles.yml b/src/spec/fixtures/roles.yml
index 2ac7e5f..559e42a 100644
--- a/src/spec/fixtures/roles.yml
+++ b/src/spec/fixtures/roles.yml
@@ -20,7 +20,7 @@ instance_creator_and_user:
self_service_pool_user:
name: Self-service Pool User
scope: PortalPool
- privileges: instance_control, instance_view, pool_view, stats_view,
instance_modify, quota_view, set_perms, view_perms, account_modify
+ privileges: instance_control, instance_view, pool_view, stats_view,
instance_modify, quota_view, set_perms, view_perms, account_add
pool_creator:
name: Pool Creator
scope: Provider
@@ -28,20 +28,28 @@ pool_creator:
pool_administrator:
name: Pool Administrator
scope: Provider
- privileges: provider_view, pool_modify, pool_view, quota_modify, quota_view,
account_modify, account_view, stats_view, set_perms, view_perms
+ privileges: provider_view, pool_modify, pool_view, quota_modify, quota_view,
account_modify, account_add, account_view, stats_view, set_perms, view_perms
+provider_administrator:
+ name: Provider Administrator
+ scope: Provider
+ privileges: provider_modify, provider_view, account_modify, account_view
account_administrator:
name: Account Administrator
scope: CloudAccount
- privileges: account_modify, account_view, stats_view, set_perms, view_perms
+ privileges: account_modify, account_view, stats_view, set_perms, view_perms,
account_add
account_user:
name: Account User
scope: CloudAccount
+ privileges: account_view, account_add
+account_viewer:
+ name: Account Viewer
+ scope: CloudAccount
privileges: account_view
-provider_administrator:
- name: Provider Administrator
+provider_creator:
+ name: Provider Creator
scope: BasePortalObject
privileges: provider_modify, provider_view, stats_view
-site_administrator:
- name: Site Administrator
+administrator:
+ name: Administrator
scope: BasePortalObject
- privileges: provider_modify, provider_view, account_modify, account_view,
user_modify, user_view, set_perms, view_perms, pool_modify, pool_view,
quota_modify, quota_view, stats_view, instance_modify, instance_control,
instance_view
+ privileges: provider_modify, provider_view, account_modify, account_add,
account_view, user_modify, user_view, set_perms, view_perms, pool_modify,
pool_view, quota_modify, quota_view, stats_view, instance_modify,
instance_control, instance_view
--
1.6.2.5
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel