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

Reply via email to