You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2012/01/17 12:52:59 UTC

[PATCH core 6/6] CIMI: Fixed Cucumber tests to reflect latest changes

From: Michal Fojtik <mf...@redhat.com>


Signed-off-by: Michal fojtik <mf...@redhat.com>
---
 server/spec/spec_helper.rb                         |    2 +-
 .../cimi/features/step_definitions/common_steps.rb |   10 ++++------
 .../features/step_definitions/machines_steps.rb    |   16 +++++++++++-----
 server/tests/cimi/features/support/env.rb          |    8 ++++++--
 4 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/server/spec/spec_helper.rb b/server/spec/spec_helper.rb
index 69d4797..8599a71 100644
--- a/server/spec/spec_helper.rb
+++ b/server/spec/spec_helper.rb
@@ -16,7 +16,7 @@
 
 require 'rubygems'
 require 'pp'
-require 'rspec'
+require 'rspec/core'
 require 'deltacloud/core_ext'
 require 'cimi/model'
 require 'xmlsimple'
diff --git a/server/tests/cimi/features/step_definitions/common_steps.rb b/server/tests/cimi/features/step_definitions/common_steps.rb
index 9131171..a0a0cb7 100644
--- a/server/tests/cimi/features/step_definitions/common_steps.rb
+++ b/server/tests/cimi/features/step_definitions/common_steps.rb
@@ -17,18 +17,17 @@ When /^client lists ([\w ]+) collection$/ do |col_name|
   header 'Accept', 'application/xml'
   get "/cimi/%s" % col_name.to_collection_uri
   last_response.status.should == 200
-  puts last_response.body
 end
 
 Then /^client should get list of all ([\w ]+)$/ do |col_name|
-  root_name = "#{col_name.to_class_name}Collection"
+  root_name = "#{col_name.to_collection_name}Collection"
   last_xml_response.root.name.should == root_name
   (last_xml_response/"#{root_name}/name").size.should == 1
   (last_xml_response/"#{root_name}/name").first.text.should == 'default'
   (last_xml_response/"#{root_name}/uri").size.should == 1
   (last_xml_response/"#{root_name}/uri").first.text.should == last_request.url
-  (last_xml_response/"#{root_name}/#{col_name.to_class_name}").size.should == 3
-  (last_xml_response/"#{root_name}/#{col_name.to_class_name}").each do |machine_img|
+  (last_xml_response/"#{root_name}/#{col_name.to_entity_name}").size.should == 3
+  (last_xml_response/"#{root_name}/#{col_name.to_entity_name}").each do |machine_img|
     machine_img[:href].should_not be_nil
     machine_img[:href].should =~ /http:\/\/example\.org\/cimi\/#{col_name.to_collection_uri}\/img(\d)/
   end
@@ -39,7 +38,6 @@ When /^client( should be able to)? query for '(\w+)' ([\w ]+) entity$/ do |s, en
   header 'Accept', 'application/xml'
   get "/cimi/%s/%s" % [entity_name.to_entity_uri, entity_id]
   last_response.status.should == 200
-  puts last_response.body
   @entity_id = entity_id
 end
 
@@ -50,7 +48,7 @@ Then /^client should verify that this ([\w ]+) exists$/ do |entity_name|
 end
 
 Then /^client should verify that this ([\w ]+) has set$/ do |entity, attrs|
-  model = CIMI::Model.const_get(entity.to_entity_name).from_xml(last_response.body)
+  model = CIMI::Model.const_get(entity.to_class_name).from_xml(last_response.body)
   attrs.rows_hash.each do |key, value|
     if key =~ /^\*/
       model.send(key.gsub(/^\*/, '').intern).href.should == value
diff --git a/server/tests/cimi/features/step_definitions/machines_steps.rb b/server/tests/cimi/features/step_definitions/machines_steps.rb
index a8b63d0..0073634 100644
--- a/server/tests/cimi/features/step_definitions/machines_steps.rb
+++ b/server/tests/cimi/features/step_definitions/machines_steps.rb
@@ -23,12 +23,12 @@ When /^client specifies a new Machine using$/ do |machine|
   @machine_configuration.should_not be_nil
   @new_machine_name = machine.raw[0][1]
   @builder = Nokogiri::XML::Builder.new do |xml|
-    xml.Machine(:xmlns => CMWG_NAMESPACE) {
+    xml.MachineCreate(:xmlns => CMWG_NAMESPACE) {
       xml.name @new_machine_name
       xml.description machine.raw[1][1]
-      xml.MachineTemplate {
-        xml.MachineConfig( :href => @machine_configuration.uri )
-        xml.MachineImage( :href => @machine_image.uri )
+      xml.machineTemplate {
+        xml.machineConfig( :href => @machine_configuration.uri )
+        xml.machineImage( :href => @machine_image.uri )
       }
     }
   end
@@ -38,6 +38,9 @@ Then /^client should be able to create this Machine$/ do
   authorize 'mockuser', 'mockpassword'
   header 'Content-Type', 'application/xml'
   post '/cimi/machines', @builder.to_xml
+  if [500, 501, 502].include? last_response.status
+    puts last_response.body
+  end
   last_response.status.should == 201
   set_new_machine(CIMI::Model::Machine.from_xml(last_response.body))
 end
@@ -46,6 +49,9 @@ Then /^client query for created Machine entity$/ do
   authorize 'mockuser', 'mockpassword'
   header 'Content-Type', 'application/xml'
   get "/cimi/machines/%s" % new_machine.name
+  if [500, 501, 502].include? last_response.status
+    puts last_response.body
+  end
   if @delete_operation
     last_response.status.should == 404
   else
@@ -75,7 +81,7 @@ When /^client executes (\w+) operation on created Machine$/ do |operation|
   authorize 'mockuser', 'mockpassword'
   header 'Content-Type', 'application/xml'
   if operation == 'delete'
-    delete "/cimi/machines/%s/delete" % new_machine.name
+    delete "/cimi/machines/%s" % new_machine.name
     last_response.status.should == 200
     last_response.body.should be_empty
     @delete_operation = true
diff --git a/server/tests/cimi/features/support/env.rb b/server/tests/cimi/features/support/env.rb
index 06ff3d6..c5e2bf0 100644
--- a/server/tests/cimi/features/support/env.rb
+++ b/server/tests/cimi/features/support/env.rb
@@ -27,11 +27,15 @@ end
 class String
 
   def to_class_name
-    to_entity_name.singularize
+    to_collection_name
   end
 
   def to_entity_name
-    self.tr(' ', '')
+    to_collection_name.uncapitalize
+  end
+
+  def to_collection_name
+    self.tr(' ', '').singularize
   end
 
   def to_collection_uri
-- 
1.7.4.4


Re: [PATCH core 6/6] CIMI: Fixed Cucumber tests to reflect latest changes

Posted by "marios@redhat.com" <ma...@redhat.com>.
ack

but, i'm getting failing scenarios - though these are definitely not
related to this patch...


Failing Scenarios:
cucumber tests/cimi/features/machines.feature:27 # Scenario: Stopping
created Machine entity
cucumber tests/cimi/features/machines.feature:34 # Scenario: Starting
created Machine entity


rather its with the status code returned for Machine.perform actions and
the callback dsl... i spent way too long playing with this and looking
at
http://www.mattsears.com/articles/2011/11/27/ruby-blocks-as-dynamic-callbacks
but can't see what's happening... my best guess is to do with the
nesting of Procs,  since control do... is already defining a Proc and
then 'callback' is defining another within, anyway, thought you'd like
to take a look. basically, this:

      machine.perform(action, self) do |operation|
        no_content_with_status(202) if operation.success?

is never executed... the perform actions always return 200


marios

On 17/01/12 13:52, mfojtik@redhat.com wrote:
> From: Michal Fojtik <mf...@redhat.com>
> 
> 
> Signed-off-by: Michal fojtik <mf...@redhat.com>
> ---
>  server/spec/spec_helper.rb                         |    2 +-
>  .../cimi/features/step_definitions/common_steps.rb |   10 ++++------
>  .../features/step_definitions/machines_steps.rb    |   16 +++++++++++-----
>  server/tests/cimi/features/support/env.rb          |    8 ++++++--
>  4 files changed, 22 insertions(+), 14 deletions(-)
> 
> diff --git a/server/spec/spec_helper.rb b/server/spec/spec_helper.rb
> index 69d4797..8599a71 100644
> --- a/server/spec/spec_helper.rb
> +++ b/server/spec/spec_helper.rb
> @@ -16,7 +16,7 @@
>  
>  require 'rubygems'
>  require 'pp'
> -require 'rspec'
> +require 'rspec/core'
>  require 'deltacloud/core_ext'
>  require 'cimi/model'
>  require 'xmlsimple'
> diff --git a/server/tests/cimi/features/step_definitions/common_steps.rb b/server/tests/cimi/features/step_definitions/common_steps.rb
> index 9131171..a0a0cb7 100644
> --- a/server/tests/cimi/features/step_definitions/common_steps.rb
> +++ b/server/tests/cimi/features/step_definitions/common_steps.rb
> @@ -17,18 +17,17 @@ When /^client lists ([\w ]+) collection$/ do |col_name|
>    header 'Accept', 'application/xml'
>    get "/cimi/%s" % col_name.to_collection_uri
>    last_response.status.should == 200
> -  puts last_response.body
>  end
>  
>  Then /^client should get list of all ([\w ]+)$/ do |col_name|
> -  root_name = "#{col_name.to_class_name}Collection"
> +  root_name = "#{col_name.to_collection_name}Collection"
>    last_xml_response.root.name.should == root_name
>    (last_xml_response/"#{root_name}/name").size.should == 1
>    (last_xml_response/"#{root_name}/name").first.text.should == 'default'
>    (last_xml_response/"#{root_name}/uri").size.should == 1
>    (last_xml_response/"#{root_name}/uri").first.text.should == last_request.url
> -  (last_xml_response/"#{root_name}/#{col_name.to_class_name}").size.should == 3
> -  (last_xml_response/"#{root_name}/#{col_name.to_class_name}").each do |machine_img|
> +  (last_xml_response/"#{root_name}/#{col_name.to_entity_name}").size.should == 3
> +  (last_xml_response/"#{root_name}/#{col_name.to_entity_name}").each do |machine_img|
>      machine_img[:href].should_not be_nil
>      machine_img[:href].should =~ /http:\/\/example\.org\/cimi\/#{col_name.to_collection_uri}\/img(\d)/
>    end
> @@ -39,7 +38,6 @@ When /^client( should be able to)? query for '(\w+)' ([\w ]+) entity$/ do |s, en
>    header 'Accept', 'application/xml'
>    get "/cimi/%s/%s" % [entity_name.to_entity_uri, entity_id]
>    last_response.status.should == 200
> -  puts last_response.body
>    @entity_id = entity_id
>  end
>  
> @@ -50,7 +48,7 @@ Then /^client should verify that this ([\w ]+) exists$/ do |entity_name|
>  end
>  
>  Then /^client should verify that this ([\w ]+) has set$/ do |entity, attrs|
> -  model = CIMI::Model.const_get(entity.to_entity_name).from_xml(last_response.body)
> +  model = CIMI::Model.const_get(entity.to_class_name).from_xml(last_response.body)
>    attrs.rows_hash.each do |key, value|
>      if key =~ /^\*/
>        model.send(key.gsub(/^\*/, '').intern).href.should == value
> diff --git a/server/tests/cimi/features/step_definitions/machines_steps.rb b/server/tests/cimi/features/step_definitions/machines_steps.rb
> index a8b63d0..0073634 100644
> --- a/server/tests/cimi/features/step_definitions/machines_steps.rb
> +++ b/server/tests/cimi/features/step_definitions/machines_steps.rb
> @@ -23,12 +23,12 @@ When /^client specifies a new Machine using$/ do |machine|
>    @machine_configuration.should_not be_nil
>    @new_machine_name = machine.raw[0][1]
>    @builder = Nokogiri::XML::Builder.new do |xml|
> -    xml.Machine(:xmlns => CMWG_NAMESPACE) {
> +    xml.MachineCreate(:xmlns => CMWG_NAMESPACE) {
>        xml.name @new_machine_name
>        xml.description machine.raw[1][1]
> -      xml.MachineTemplate {
> -        xml.MachineConfig( :href => @machine_configuration.uri )
> -        xml.MachineImage( :href => @machine_image.uri )
> +      xml.machineTemplate {
> +        xml.machineConfig( :href => @machine_configuration.uri )
> +        xml.machineImage( :href => @machine_image.uri )
>        }
>      }
>    end
> @@ -38,6 +38,9 @@ Then /^client should be able to create this Machine$/ do
>    authorize 'mockuser', 'mockpassword'
>    header 'Content-Type', 'application/xml'
>    post '/cimi/machines', @builder.to_xml
> +  if [500, 501, 502].include? last_response.status
> +    puts last_response.body
> +  end
>    last_response.status.should == 201
>    set_new_machine(CIMI::Model::Machine.from_xml(last_response.body))
>  end
> @@ -46,6 +49,9 @@ Then /^client query for created Machine entity$/ do
>    authorize 'mockuser', 'mockpassword'
>    header 'Content-Type', 'application/xml'
>    get "/cimi/machines/%s" % new_machine.name
> +  if [500, 501, 502].include? last_response.status
> +    puts last_response.body
> +  end
>    if @delete_operation
>      last_response.status.should == 404
>    else
> @@ -75,7 +81,7 @@ When /^client executes (\w+) operation on created Machine$/ do |operation|
>    authorize 'mockuser', 'mockpassword'
>    header 'Content-Type', 'application/xml'
>    if operation == 'delete'
> -    delete "/cimi/machines/%s/delete" % new_machine.name
> +    delete "/cimi/machines/%s" % new_machine.name
>      last_response.status.should == 200
>      last_response.body.should be_empty
>      @delete_operation = true
> diff --git a/server/tests/cimi/features/support/env.rb b/server/tests/cimi/features/support/env.rb
> index 06ff3d6..c5e2bf0 100644
> --- a/server/tests/cimi/features/support/env.rb
> +++ b/server/tests/cimi/features/support/env.rb
> @@ -27,11 +27,15 @@ end
>  class String
>  
>    def to_class_name
> -    to_entity_name.singularize
> +    to_collection_name
>    end
>  
>    def to_entity_name
> -    self.tr(' ', '')
> +    to_collection_name.uncapitalize
> +  end
> +
> +  def to_collection_name
> +    self.tr(' ', '').singularize
>    end
>  
>    def to_collection_uri