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