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

Reply via email to