deltacloud-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mar...@apache.org
Subject [2/2] git commit: CIMI - tests skip if capability ! supported - DTACLOUD-400
Date Tue, 18 Dec 2012 09:28:09 GMT
CIMI - tests skip if capability ! supported - DTACLOUD-400

https://issues.apache.org/jira/browse/DTACLOUD-400


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/92556ea2
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/92556ea2
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/92556ea2

Branch: refs/heads/master
Commit: 92556ea216308b22763b59ba8b2ac6a6c3bf3f22
Parents: 2722518
Author: marios <marios@redhat.com>
Authored: Fri Dec 14 13:54:20 2012 +0200
Committer: marios <marios@redhat.com>
Committed: Tue Dec 18 11:11:43 2012 +0200

----------------------------------------------------------------------
 tests/cimi/part4_test.rb  |   59 ++++++++++++++++++++++-----------------
 tests/cimi/test_helper.rb |   15 ++++++++--
 2 files changed, 45 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/92556ea2/tests/cimi/part4_test.rb
----------------------------------------------------------------------
diff --git a/tests/cimi/part4_test.rb b/tests/cimi/part4_test.rb
index 07e780e..a58d5de 100644
--- a/tests/cimi/part4_test.rb
+++ b/tests/cimi/part4_test.rb
@@ -23,6 +23,8 @@ class AddVolumeToMachine < CIMI::Test::Spec
 
   ROOTS = [ "machines" , "volumes" , "volumeConfigurations"]
 
+  need_capability("add", "volumes")
+
   # Cleanup for resources created for the test
   MiniTest::Unit.after_tests {  teardown(@@created_resources, api.basic_auth) }
 
@@ -53,17 +55,21 @@ class AddVolumeToMachine < CIMI::Test::Spec
 # Create a machine to attach the volume
    cep_json = cep(:accept => :json)
    machine_add_uri = discover_uri_for("add", "machines")
-   machine = post(machine_add_uri,
-     "<MachineCreate xmlns=\"#{CIMI::Test::CIMI_NAMESPACE}\">" +
-       "<name>cimi_machine</name>" +
-       "<machineTemplate>" +
-         "<machineConfig " +
-           "href=\"" + get_a(cep_json, "machineConfig") + "\"/>" +
-         "<machineImage " +
-           "href=\"" + get_a(cep_json, "machineImage") + "\"/>" +
-       "</machineTemplate>" +
-     "</MachineCreate>",
-                  {:accept => :json, :content_type => :xml})
+#no point creating machine if we can't run these tests:
+   begin
+     discover_uri_for("add", "volumes") # this will raise the RuntimeError
+     machine = post(machine_add_uri,
+       "<MachineCreate xmlns=\"#{CIMI::Test::CIMI_NAMESPACE}\">" +
+         "<name>cimi_machine</name>" +
+         "<machineTemplate>" +
+           "<machineConfig " +
+             "href=\"" + get_a(cep_json, "machineConfig") + "\"/>" +
+           "<machineImage " +
+             "href=\"" + get_a(cep_json, "machineImage") + "\"/>" +
+          "</machineTemplate>" +
+        "</MachineCreate>", {:accept => :json, :content_type => :xml})
+    rescue RuntimeError =>e
+    end
 
   # 4.3:  Create a new Volume
   model :volume, :cache => true do |fmt|
@@ -129,7 +135,6 @@ class AddVolumeToMachine < CIMI::Test::Spec
 #  it "should add resource for cleanup" do
 #    @@created_resources[:volumes] << volume.id
 #  end
-
   it "should have a name" do
     volume.name.wont_be_empty
     log.info("volume name: " + volume.name)
@@ -140,20 +145,22 @@ class AddVolumeToMachine < CIMI::Test::Spec
     last_response.json["resourceURI"].must_equal RESOURCE_URI.gsub("Create", "")
   end
 
-  log.info("#{machine.location} is the machine id")
-  volume_add_uri = discover_uri_for("add", "volumes")
-  volume = post(volume_add_uri,
-  "<VolumeCreate xmlns=\"#{CIMI::Test::CIMI_NAMESPACE}\">" +
-    "<name>cimi_volume_for_attach</name>" +
-    "<description>volume for attach testing</description>" +
-    "<volumeTemplate>" +
-      "<volumeConfig href=\"" + get_a(cep_json, "volumeConfig") + "\">" +
-      "</volumeConfig>" +
-    "</volumeTemplate>" +
-  "</VolumeCreate>",
-  :accept => :json, :content_type => :xml)
-
-  log.info(volume.location + " is the volume id")
+  if machine # machine not created if we can't create volumes here
+    log.info("#{machine.location} is the machine id")
+    volume_add_uri = discover_uri_for("add", "volumes")
+    volume = post(volume_add_uri,
+    "<VolumeCreate xmlns=\"#{CIMI::Test::CIMI_NAMESPACE}\">" +
+      "<name>cimi_volume_for_attach</name>" +
+      "<description>volume for attach testing</description>" +
+      "<volumeTemplate>" +
+        "<volumeConfig href=\"" + get_a(cep_json, "volumeConfig") + "\">" +
+        "</volumeConfig>" +
+      "</volumeTemplate>" +
+    "</VolumeCreate>",
+    :accept => :json, :content_type => :xml)
+    log.info(volume.location + " is the volume id")
+  end
+
   # 4.4: Attach the new Volume to a Machine
   model :machineWithVolume, :only => :xml do
     attach_uri = discover_uri_for_subcollection("add", machine.location, "volumes")

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/92556ea2/tests/cimi/test_helper.rb
----------------------------------------------------------------------
diff --git a/tests/cimi/test_helper.rb b/tests/cimi/test_helper.rb
index 6be43c1..1720dd7 100644
--- a/tests/cimi/test_helper.rb
+++ b/tests/cimi/test_helper.rb
@@ -108,7 +108,6 @@ module CIMI::Test::Methods
     def cep(params = {})
       get(api.cep_url, params)
     end
-
     def discover_uri_for(op, collection, operations = nil)
       unless operations
         cep_json = cep(:accept => :json)
@@ -116,8 +115,8 @@ module CIMI::Test::Methods
         operations = get(cep_json.json["#{collection}"]["href"], {:accept=> :json}).json["operations"]
       end
       op_regex = Regexp.new(op, Regexp::IGNORECASE) # "add" == /add/i
-      op_uri = operations.inject(""){|res,current| res = current["href"] if current["rel"]
=~ op_regex; res}
-      raise "Couldn't discover the #{collection} Collection #{op} URI" if op_uri.empty?
+      op_uri = operations.inject(""){|res,current| res = current["href"] if current["rel"]
=~ op_regex; res} unless operations.nil?
+      raise "Couldn't discover the #{collection} Collection #{op} URI" if op_uri.nil? ||
op_uri.empty?
       op_uri
     end
 
@@ -273,6 +272,16 @@ module CIMI::Test::Methods
       end
     end
 
+    def need_capability(op, collection)
+      before :each do
+        begin
+          discover_uri_for(op, collection)
+        rescue RuntimeError => e
+          skip "Server at #{api.cep_url} doesn't support #{op} for #{collection} collection.
#{e.message}"
+        end
+      end
+    end
+
     # Perform basic collection checks; +model_name+ is the name of the
     # method returning the collection model
     def check_collection(model_name)


Mime
View raw message