jenkins-bot has submitted this change and it was merged.

Change subject: Support links to Sauce jobs in Raita logging
......................................................................


Support links to Sauce jobs in Raita logging

Also fixed indexing to include a consistent routing between
Elasticsearch documents. This is important when dealing with
parent-child-grandchild relationships that will require complex queries
and filtering.

Change-Id: Ia4b7e91b2fb6dae9373cb15581eea8bc5cf97bab
---
M lib/mediawiki_selenium/raita/formatter.rb
M lib/mediawiki_selenium/raita/logger.rb
M lib/mediawiki_selenium/support/hooks.rb
3 files changed, 22 insertions(+), 8 deletions(-)

Approvals:
  Zfilipin: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/mediawiki_selenium/raita/formatter.rb 
b/lib/mediawiki_selenium/raita/formatter.rb
index 0f530e3..312b7a6 100644
--- a/lib/mediawiki_selenium/raita/formatter.rb
+++ b/lib/mediawiki_selenium/raita/formatter.rb
@@ -8,6 +8,14 @@
       def initialize
         super(NullIO.new)
       end
+
+      # Allows for simple embeddings without base64 encoding.
+      #
+      def embedding(mime_type, data)
+        return unless mime_type.start_with?('text/')
+
+        embeddings << { 'mime_type' => mime_type, 'data' => data }
+      end
     end
   end
 end
diff --git a/lib/mediawiki_selenium/raita/logger.rb 
b/lib/mediawiki_selenium/raita/logger.rb
index b28e4b7..c5d8f15 100644
--- a/lib/mediawiki_selenium/raita/logger.rb
+++ b/lib/mediawiki_selenium/raita/logger.rb
@@ -13,13 +13,13 @@
       # Log everything at once to Raita's Elasticsearch DB.
       #
       def after_features(*)
-        build_id = create('build', @build)['_id']
+        @build_id = create('build', @build)['_id']
 
         @gf.feature_hashes.each do |feature|
           amend_feature(feature)
           elements = feature.delete('elements')
 
-          feature_id = create('feature', feature, build_id)['_id']
+          feature_id = create('feature', feature, @build_id)['_id']
           bulk('feature-element', elements, feature_id)
 
           @build[:result][:status] = change_status(
@@ -29,12 +29,12 @@
           @build[:result][:duration] += feature['result']['duration']
         end
 
-        update('build', build_id, @build)
+        update('build', @build_id, @build)
       end
 
       private
 
-      # Add status and duration at the feature and background/scenario level
+      # Add status and duration at the feature and background/scenario level.
       #
       # @param feature {Hash}
       #
@@ -78,15 +78,15 @@
 
       def bulk(type, objects, parent = nil)
         data = objects.reduce('') do |d, obj|
-          d << JSON.dump({ create: { _type: type, _parent: parent } }) + "\n"
+          d << JSON.dump({ create: { _type: type, _parent: parent, _routing: 
@build_id } }) + "\n"
           d << JSON.dump(obj) + "\n\n"
         end
 
-        request(Net::HTTP::Post, ['_bulk'], data, parent: parent)
+        request(Net::HTTP::Post, ['_bulk'], data)
       end
 
       def create(type, object, parent = nil)
-        request(Net::HTTP::Post, [type], object, parent: parent)
+        request(Net::HTTP::Post, [type], object, parent: parent, routing: 
@build_id)
       end
 
       def request(klass, paths, data, query = {})
@@ -94,7 +94,7 @@
 
         uri = @db_url.clone
         uri.path = Pathname.new(uri.path).join(*paths.map(&:to_s)).to_s
-        uri.query = query.map { |pair| pair.join('=') }.join('&')
+        uri.query = query.map { |pair| pair.join('=') unless pair.last.nil? 
}.compact.join('&')
 
         data = JSON.dump(data) unless data.is_a?(String)
         response = db.request(klass.new(uri), data)
diff --git a/lib/mediawiki_selenium/support/hooks.rb 
b/lib/mediawiki_selenium/support/hooks.rb
index e194cdc..a36d975 100644
--- a/lib/mediawiki_selenium/support/hooks.rb
+++ b/lib/mediawiki_selenium/support/hooks.rb
@@ -83,6 +83,12 @@
     require 'fileutils'
 
     teardown(scenario.status) do |browser|
+      # Embed remote session URLs
+      if remote? && browser.driver.respond_to?(:session_id)
+        embed("http://saucelabs.com/jobs/#{browser.driver.session_id}";, 
'text/url')
+      end
+
+      # Take screenshots
       if scenario.failed? && lookup(:screenshot_failures, default: false) == 
'true'
         screen_dir = lookup(:screenshot_failures_path, default: 'screenshots')
         FileUtils.mkdir_p screen_dir

-- 
To view, visit https://gerrit.wikimedia.org/r/214274
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia4b7e91b2fb6dae9373cb15581eea8bc5cf97bab
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/selenium
Gerrit-Branch: master
Gerrit-Owner: Dduvall <dduv...@wikimedia.org>
Gerrit-Reviewer: Hashar <has...@free.fr>
Gerrit-Reviewer: Zfilipin <zfili...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to