This patch looks good. ACK

Though wait on pushing as if just applied by itself will fail due to 
last_name and first_name not being present in the users table yet.

   -Mo


On 03/11/2010 05:28 PM, Jason Guiditta wrote:
> 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.
>    

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

Reply via email to