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

Change subject: Decouple check for MediaWiki extension dependencies
......................................................................


Decouple check for MediaWiki extension dependencies

Moved implementation for calculating missing extension dependencies from
the API results and `@extension-` tags into the `ApiHelper`.

Bug: T108273
Change-Id: I97f351e3cd2fa5a01dca5b02263b5e3b2182fba8
---
M lib/mediawiki_selenium/support/hooks.rb
M lib/mediawiki_selenium/support/modules/api_helper.rb
2 files changed, 21 insertions(+), 11 deletions(-)

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



diff --git a/lib/mediawiki_selenium/support/hooks.rb 
b/lib/mediawiki_selenium/support/hooks.rb
index 4c2d724..626a76e 100644
--- a/lib/mediawiki_selenium/support/hooks.rb
+++ b/lib/mediawiki_selenium/support/hooks.rb
@@ -44,19 +44,14 @@
 
   tags = tag_source.source_tag_names
   dependencies = tags.map { |tag| tag.match(/^@extension-(.+)$/) { |m| 
m[1].downcase } }.compact
+  missing = missing_extensions(dependencies)
 
-  unless dependencies.empty?
-    extensions = api.meta(:siteinfo, siprop: 'extensions').data['extensions']
-    extensions = extensions.map { |ext| ext['name'] }.compact.map(&:downcase)
-    missing = dependencies - extensions
+  if missing.any?
+    scenario.skip_invoke!
 
-    if missing.any?
-      scenario.skip_invoke!
-
-      if scenario.feature.respond_to?(:mw_warn)
-        warning = "Skipped feature due to missing wiki extensions: 
#{missing.join(", ")}"
-        scenario.feature.mw_warn(warning, 'missing wiki extensions')
-      end
+    if scenario.feature.respond_to?(:mw_warn)
+      warning = "Skipped feature due to missing MediaWiki extensions: 
#{missing.join(", ")}"
+      scenario.feature.mw_warn(warning, 'missing MediaWiki extensions')
     end
   end
 end
diff --git a/lib/mediawiki_selenium/support/modules/api_helper.rb 
b/lib/mediawiki_selenium/support/modules/api_helper.rb
index b0d6990..4f64778 100644
--- a/lib/mediawiki_selenium/support/modules/api_helper.rb
+++ b/lib/mediawiki_selenium/support/modules/api_helper.rb
@@ -27,6 +27,21 @@
       lookup(:mediawiki_api_url, default: -> { 
api_url_from(lookup(:mediawiki_url)) })
     end
 
+    # Queries MW via the API to check for missing extension dependencies.
+    #
+    # @param dependencies [Array] Extension dependencies.
+    #
+    # @return [Array] Missing extensions.
+    #
+    def missing_extensions(dependencies)
+      return [] if dependencies.empty?
+
+      extensions = api.meta(:siteinfo, siprop: 'extensions').data['extensions']
+      extensions = extensions.map { |ext| ext['name'] }.compact.map(&:downcase)
+
+      dependencies - extensions
+    end
+
     # Ensures the given alternative account exists by attempting to create it
     # via the API. Any errors related to the account already existing are
     # swallowed.

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I97f351e3cd2fa5a01dca5b02263b5e3b2182fba8
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/selenium
Gerrit-Branch: master
Gerrit-Owner: Dduvall <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Zfilipin <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to