From: David Lutterkort <lut...@redhat.com>

We need to make sure URL's are properly expanded when providers use
relative URL's. Therefore, using Restclient.post directly won't work.
---
 tests/cimi/test_helper.rb |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/tests/cimi/test_helper.rb b/tests/cimi/test_helper.rb
index 0e102c4..fccfcbc 100644
--- a/tests/cimi/test_helper.rb
+++ b/tests/cimi/test_helper.rb
@@ -141,6 +141,13 @@ module CIMI::Test::Methods
       RestClient.get absolute_url(path), headers(params)
     end
 
+    def post(path, body, params = {})
+      log_request(:post, path, :params => params, :body => body)
+      resp = RestClient.post absolute_url(path), body, headers(params)
+      log_response(:post, path, resp)
+      resp
+    end
+
     # Find the model class that can process the body of the HTTP response
     # +resp+
     def model_class(resp)
@@ -196,6 +203,22 @@ module CIMI::Test::Methods
       @log
     end
 
+    def log_request(method, path, opts = {})
+      log.debug("#{method.to_s.upcase} #{absolute_url(path)}")
+      if opts[:params]
+        h = headers(opts[:params])
+        h.keys.sort.each { |k| log.debug "  #{k}: #{h[k]}" }
+      end
+      log.debug opts[:body] if opts[:body]
+    end
+
+    def log_response(method, path, resp)
+      log.debug "--> #{resp.code} #{resp.headers[:content_type]}"
+      resp.headers.keys.each { |k| log.debug "#{k}: /#{resp.headers[k]}/" }
+      log.debug resp.body
+      log.debug "/#{method.to_s.upcase} #{absolute_url(path)}"
+    end
+
     def poll_state(machine, state)
       while not machine.state.upcase.eql?(state)
         puts state
-- 
1.7.7.6

Reply via email to