Turns out that now that we have perms, we also seem to
need to make sure we have certain data preloaded before
tests run.  Fixtures do this, factories do not (or at least
we don't know how yet).  As a possibly interim step, I
have loaded up the data I know we need to run current tests.

This may need more fleshing out in future, but seems to be
workable for now.
---
 src/spec/factories/user.rb                |   10 ++--
 src/spec/fixtures/base_portal_objects.yml |    9 ++++
 src/spec/fixtures/hardware_profiles.yml   |   72 +++++++++++++++++++++++++++++
 src/spec/fixtures/images.yml              |   12 +++++
 src/spec/fixtures/permissions.yml         |   10 ++++
 src/spec/fixtures/privileges.yml          |   39 +++++++++++++++
 src/spec/fixtures/providers.yml           |    6 ++
 src/spec/fixtures/realms.yml              |   10 ++++
 src/spec/fixtures/roles.yml               |   47 +++++++++++++++++++
 src/spec/spec_helper.rb                   |    2 +-
 10 files changed, 211 insertions(+), 6 deletions(-)
 create mode 100644 src/spec/fixtures/base_portal_objects.yml
 create mode 100644 src/spec/fixtures/hardware_profiles.yml
 create mode 100644 src/spec/fixtures/images.yml
 create mode 100644 src/spec/fixtures/permissions.yml
 create mode 100644 src/spec/fixtures/privileges.yml
 create mode 100644 src/spec/fixtures/providers.yml
 create mode 100644 src/spec/fixtures/realms.yml
 create mode 100644 src/spec/fixtures/roles.yml

diff --git a/src/spec/factories/user.rb b/src/spec/factories/user.rb
index 637600c..a88b6fe 100644
--- a/src/spec/factories/user.rb
+++ b/src/spec/factories/user.rb
@@ -1,13 +1,13 @@
 Factory.define :user do |u|
   u.login 'myuser'
-  u.email '[email protected]'
+  u.sequence(:email) { |n| "myuser#[email protected]" }
   u.password 'secret'
-  u.password_confirmation 'secret'
-  #u.first_name 'John'
-  #u.last_name 'Smith'
+  u.password_confirmation  {|p| p.password}
+  u.first_name 'John'
+  u.last_name 'Smith'
 end
 
 Factory.define :tuser, :parent => :user do |u|
   u.login 'tuser'
-  u.email '[email protected]'
+  u.sequence(:email) { |n| "tuser#[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..7e9b357
--- /dev/null
+++ b/src/spec/fixtures/base_portal_objects.yml
@@ -0,0 +1,9 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+# one:
+#   column: value
+#
+# two:
+#   column: value
+base_portal_object:
+  name: general_permission_scope
\ No newline at end of file
diff --git a/src/spec/fixtures/hardware_profiles.yml 
b/src/spec/fixtures/hardware_profiles.yml
new file mode 100644
index 0000000..7bdd345
--- /dev/null
+++ b/src/spec/fixtures/hardware_profiles.yml
@@ -0,0 +1,72 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+m1_small_backend:
+  external_key: m1-small
+  name: m1-small
+  memory: 1.7
+  storage: 160
+  architecture: i386
+  provider: mock_provider
+m1_large_backend:
+  external_key: m1-large
+  name: m1-large
+  memory: 7.5
+  storage: 850
+  architecture: x86_64
+  provider: mock_provider
+m1_xlarge_backend:
+  external_key: m1-xlarge
+  name: m1-xlarge
+  memory: 15
+  storage: 1690
+  architecture: x86_64
+  provider: mock_provider
+c1_medium_backend:
+  external_key: c1-medium
+  name: c1-medium
+  memory: 1.7
+  storage: 350
+  architecture: x86_64
+  provider: mock_provider
+c1_xlarge_backend:
+  external_key: c1-xlarge
+  name: c1-xlarge
+  memory: 7
+  storage: 1690
+  architecture: x86_64
+  provider: mock_provider
+m1_small_frontend:
+  external_key: m1-small
+  name: m1-small
+  memory: 1.7
+  storage: 160
+  architecture: i386
+  provider_hardware_profiles: m1_small_backend
+m1_large_frontend:
+  external_key: m1-large
+  name: m1-large
+  memory: 7.5
+  storage: 850
+  architecture: x86_64
+  provider_hardware_profiles: m1_large_backend
+m1_xlarge_frontend:
+  external_key: m1-xlarge
+  name: m1-xlarge
+  memory: 15
+  storage: 1690
+  architecture: x86_64
+  provider_hardware_profiles: m1_xlarge_backend
+c1_medium_frontend:
+  external_key: c1-medium
+  name: c1-medium
+  memory: 1.7
+  storage: 350
+  architecture: x86_64
+  provider_hardware_profiles: c1_medium_backend
+c1_xlarge_frontend:
+  external_key: c1-xlarge
+  name: c1-xlarge
+  memory: 7
+  storage: 1690
+  architecture: x86_64
+  provider_hardware_profiles: c1_xlarge_backend
diff --git a/src/spec/fixtures/images.yml b/src/spec/fixtures/images.yml
new file mode 100644
index 0000000..bfa6bba
--- /dev/null
+++ b/src/spec/fixtures/images.yml
@@ -0,0 +1,12 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+fedora_13_image_backend:
+  external_key: fedora_13
+  name: fedora_13
+  architecture: x86_64
+  provider: mock_provider
+fedora_13_image_frontend:
+  external_key: fedora_13
+  name: fedora_13
+  architecture: x86_64
+  provider_images: fedora_13_image_backend
diff --git a/src/spec/fixtures/permissions.yml 
b/src/spec/fixtures/permissions.yml
new file mode 100644
index 0000000..b2d7bdd
--- /dev/null
+++ b/src/spec/fixtures/permissions.yml
@@ -0,0 +1,10 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+admin_permission:
+  role: site_administrator
+  user: test_admin
+  permission_object: base_portal_object (BasePortalObject)
+user_permission:
+  role: instance_creator_and_user
+  user: test_user
+  permission_object: test_pool (PortalPool)
diff --git a/src/spec/fixtures/privileges.yml b/src/spec/fixtures/privileges.yml
new file mode 100644
index 0000000..d1f44ab
--- /dev/null
+++ b/src/spec/fixtures/privileges.yml
@@ -0,0 +1,39 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+# one:
+#   column: value
+#
+# two:
+#   column: value
+set_perms:
+  name: set_perms
+view_perms:
+  name: view_perms
+instance_modify:
+  name: instance_modify
+instance_control:
+  name: instance_control
+instance_view:
+  name: instance_view
+stats_view:
+  name: stats_view
+account_modify:
+  name: account_modify
+account_view:
+  name: account_view
+pool_modify:
+  name: pool_modify
+pool_view:
+  name: pool_view
+quota_modify:
+  name: quota_modify
+quota_view:
+  name: quota_view
+provider_modify:
+  name: provider_modify
+provider_view:
+  name: provider_view
+user_modify:
+  name: user_modify
+user_view:
+  name: user_view
diff --git a/src/spec/fixtures/providers.yml b/src/spec/fixtures/providers.yml
new file mode 100644
index 0000000..1669919
--- /dev/null
+++ b/src/spec/fixtures/providers.yml
@@ -0,0 +1,6 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+mock_provider:
+  name: mock
+  cloud_type: Mock
+  url: http://localhost:3001/api
diff --git a/src/spec/fixtures/realms.yml b/src/spec/fixtures/realms.yml
new file mode 100644
index 0000000..6259f6c
--- /dev/null
+++ b/src/spec/fixtures/realms.yml
@@ -0,0 +1,10 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+us_realm:
+  external_key: us
+  name: United States
+  provider: mock_provider
+eu_realm:
+  external_key: eu
+  name: Europe
+  provider: mock_provider
diff --git a/src/spec/fixtures/roles.yml b/src/spec/fixtures/roles.yml
new file mode 100644
index 0000000..2ac7e5f
--- /dev/null
+++ b/src/spec/fixtures/roles.yml
@@ -0,0 +1,47 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+# one:
+#   column: value
+#
+# two:
+#   column: value
+instance_controller:
+  name: Instance Controller
+  scope: PortalPool
+  privileges: instance_control, instance_view, pool_view
+instance_controller_with_monitoring:
+  name: Instance Controller With Monitoring
+  scope: PortalPool
+  privileges: instance_control, instance_view, pool_view, stats_view
+instance_creator_and_user:
+  name: Instance Creator and User
+  scope: PortalPool
+  privileges: instance_control, instance_view, pool_view, stats_view, 
instance_modify, quota_view, set_perms, view_perms
+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
+pool_creator:
+  name: Pool Creator
+  scope: Provider
+  privileges: provider_view, pool_modify, pool_view, quota_view
+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
+account_administrator:
+  name: Account Administrator
+  scope: CloudAccount
+  privileges: account_modify, account_view, stats_view, set_perms, view_perms
+account_user:
+  name: Account User
+  scope: CloudAccount
+  privileges: account_view
+provider_administrator:
+  name: Provider Administrator
+  scope: BasePortalObject
+  privileges: provider_modify, provider_view, stats_view
+site_administrator:
+  name: Site 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
diff --git a/src/spec/spec_helper.rb b/src/spec/spec_helper.rb
index 5181389..87a4609 100644
--- a/src/spec/spec_helper.rb
+++ b/src/spec/spec_helper.rb
@@ -31,7 +31,7 @@ Spec::Runner.configure do |config|
   # do so right here. Just uncomment the next line and replace the fixture
   # names with your fixtures.
   #
-  # config.global_fixtures = :table_a, :table_b
+  config.global_fixtures = :all
   #
   # If you declare global fixtures, be aware that they will be declared
   # for all of your examples, even those that don't use them.
-- 
1.6.6.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to