Skip to content

Commit 5731059

Browse files
jlippsKazuCocoa
authored andcommitted
allow SAUCE_ENDPOINT env var to override sauce server url/path (#485)
1 parent fa555d1 commit 5731059

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

lib/appium_lib/driver.rb

+7-1
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,8 @@ class Driver
289289
attr_accessor :sauce_username
290290
# Access Key for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_ACCESS_KEY is in ENV.
291291
attr_accessor :sauce_access_key
292+
# Override the Sauce Appium endpoint to allow e.g. TestObject tests
293+
attr_accessor :sauce_endpoint
292294
# Appium's server port
293295
attr_accessor :appium_port
294296
# Device type to request from the appium server
@@ -376,6 +378,9 @@ def initialize(opts = {})
376378
@sauce_username = nil if !@sauce_username || (@sauce_username.is_a?(String) && @sauce_username.empty?)
377379
@sauce_access_key = appium_lib_opts.fetch :sauce_access_key, ENV['SAUCE_ACCESS_KEY']
378380
@sauce_access_key = nil if !@sauce_access_key || (@sauce_access_key.is_a?(String) && @sauce_access_key.empty?)
381+
@sauce_endpoint = appium_lib_opts.fetch :sauce_endpoint, ENV['SAUCE_ENDPOINT']
382+
@sauce_endpoint = 'ondemand.saucelabs.com:443/wd/hub' if
383+
!@sauce_endpoint || (@sauce_endpoint.is_a?(String) && @sauce_endpoint.empty?)
379384
@appium_port = appium_lib_opts.fetch :port, 4723
380385
# timeout and interval used in ::Appium::Comm.wait/wait_true
381386
@appium_wait_timeout = appium_lib_opts.fetch :wait_timeout, 30
@@ -441,6 +446,7 @@ def driver_attributes
441446
default_wait: @default_wait,
442447
sauce_username: @sauce_username,
443448
sauce_access_key: @sauce_access_key,
449+
sauce_endpoint: @sauce_endpoint,
444450
port: @appium_port,
445451
device: @appium_device,
446452
debug: @appium_debug,
@@ -549,7 +555,7 @@ def self.absolute_app_path(opts)
549555
def server_url
550556
return @custom_url if @custom_url
551557
if !@sauce_username.nil? && !@sauce_access_key.nil?
552-
"https://#{@sauce_username}:#{@sauce_access_key}@ondemand.saucelabs.com:443/wd/hub"
558+
"https://#{@sauce_username}:#{@sauce_access_key}@#{@sauce_endpoint}"
553559
else
554560
"http://127.0.0.1:#{@appium_port}/wd/hub"
555561
end

readme.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#### appium_lib
1+
#### appium_lib
22

33
[![Gem Version](https://badge.fury.io/rb/appium_lib.svg)](http://badge.fury.io/rb/appium_lib)
44
[![Dependency Status](https://gemnasium.com/appium/ruby_lib.svg)](https://gemnasium.com/appium/ruby_lib)
@@ -44,6 +44,7 @@ gem install --no-rdoc --no-ri appium_lib
4444

4545
- `SAUCE_USERNAME` Sauce username
4646
- `SAUCE_ACCESS_KEY` Sauce API key
47+
- `SAUCE_ENDPOINT` Alternative Sauce Appium Server endpoint (only use if directed)
4748

4849
(Note: If these variables are set, all tests will use Sauce Labs unless over-ridden in configuration.)
4950

@@ -55,7 +56,7 @@ gem install --no-rdoc --no-ri appium_lib
5556
#### Documentation
5657

5758
- [Installing Appium on OS X](https://github.com/appium/ruby_console/blob/master/osx.md)
58-
- [Overview](https://github.com/appium/ruby_lib/blob/master/docs/docs.md)
59+
- [Overview](https://github.com/appium/ruby_lib/blob/master/docs/docs.md)
5960
- [Ruby Android methods](https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md)
6061
- [Ruby iOS methods](https://github.com/appium/ruby_lib/blob/master/docs/ios_docs.md)
6162
- [Tips for XCUITest for iOS](https://github.com/appium/ruby_lib/blob/master/docs/ios_xcuitest.md)

0 commit comments

Comments
 (0)