jenkins-bot has submitted this change and it was merged.
Change subject: Fallback to base defined mediawiki_password
......................................................................
Fallback to base defined mediawiki_password
Because passwords are typically too sensitive to store in
environments.yml, we need a way to automatically derive a default value.
Otherwise, environments like CI will have to define the right
mediawiki_password_* values for each suite or the superset of values for
all suites.
Change-Id: I1e72f301de7e80fa27d1bd4810141d3ddb81c2bb
---
M lib/mediawiki_selenium/environment.rb
M spec/environment_spec.rb
2 files changed, 37 insertions(+), 13 deletions(-)
Approvals:
Dduvall: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/mediawiki_selenium/environment.rb
b/lib/mediawiki_selenium/environment.rb
index 31d1ca1..5cabbf3 100644
--- a/lib/mediawiki_selenium/environment.rb
+++ b/lib/mediawiki_selenium/environment.rb
@@ -88,7 +88,10 @@
# @return self
#
def as_user(id, &blk)
- with_alternative([:mediawiki_user, password_variable], id, &blk)
+ user = lookup(:mediawiki_user, id: id)
+ password = lookup(:mediawiki_password, id: id, default: -> {
lookup(:mediawiki_password) })
+
+ with(mediawiki_user: user, mediawiki_password: password, &blk)
end
# Browser with which to drive tests.
diff --git a/spec/environment_spec.rb b/spec/environment_spec.rb
index b417314..f1d3fb0 100644
--- a/spec/environment_spec.rb
+++ b/spec/environment_spec.rb
@@ -92,21 +92,42 @@
end
describe "#as_user" do
- let(:config) do
- {
- mediawiki_user: "user",
- mediawiki_password: "pass",
- mediawiki_user_b: "user b",
- mediawiki_password_b: "pass b",
- }
+ context "when both an alternative user and password are defined" do
+ let(:config) do
+ {
+ mediawiki_user: "user",
+ mediawiki_password: "pass",
+ mediawiki_user_b: "user b",
+ mediawiki_password_b: "pass b",
+ }
+ end
+
+ it "yields the alternative user and password in the new environment" do
+ expect { |block| env.as_user(:b, &block) }.to yield_with_args("user
b", "pass b")
+
+ env.as_user(:b) do
+ expect(env[:mediawiki_user]).to eq("user b")
+ expect(env[:mediawiki_password]).to eq("pass b")
+ end
+ end
end
- it "executes in the new environment for the alternative user and its
password" do
- expect { |block| env.as_user(:b, &block) }.to yield_with_args("user
b", "pass b")
+ context "when an alternative for the password isn't defined" do
+ let(:config) do
+ {
+ mediawiki_user: "user",
+ mediawiki_password: "pass",
+ mediawiki_user_b: "user b",
+ }
+ end
- env.as_user(:b) do
- expect(env[:mediawiki_user]).to eq("user b")
- expect(env[:mediawiki_password]).to eq("pass b")
+ it "falls back to using the base defined password" do
+ expect { |block| env.as_user(:b, &block) }.to yield_with_args("user
b", "pass")
+
+ env.as_user(:b) do
+ expect(env[:mediawiki_user]).to eq("user b")
+ expect(env[:mediawiki_password]).to eq("pass")
+ end
end
end
end
--
To view, visit https://gerrit.wikimedia.org/r/180986
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I1e72f301de7e80fa27d1bd4810141d3ddb81c2bb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/selenium
Gerrit-Branch: env-abstraction-layer
Gerrit-Owner: Dduvall <[email protected]>
Gerrit-Reviewer: Cmcmahon <[email protected]>
Gerrit-Reviewer: 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