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
