Skip to content

Commit c73ed12

Browse files
authored
refactor: make export session path manageable (#694)
1 parent f949287 commit c73ed12

File tree

4 files changed

+39
-23
lines changed

4 files changed

+39
-23
lines changed

android_tests/lib/android/specs/driver.rb

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def sauce?
6666
expected = { automation_name: nil,
6767
custom_url: false,
6868
export_session: false,
69+
export_session_path: '/tmp/appium_lib_session',
6970
default_wait: 1,
7071
sauce_username: nil,
7172
sauce_access_key: nil,

ios_tests/lib/ios/specs/driver.rb

+10-3
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,15 @@ def initialize(opts)
8484
caps[:some_capability].must_equal 'some_capability'
8585
end
8686

87-
t 'verify export session' do
88-
# @driver.session_id
89-
File.read('/tmp/appium_lib_session').strip.must_equal session_id
87+
describe 'export session' do
88+
t 'verify session id in the `export_session_path` variable' do
89+
File.read(export_session_path).strip.must_equal session_id
90+
end
91+
92+
t 'verify export session from default value' do
93+
# @driver.session_id
94+
File.read('/tmp/appium_lib_session').strip.must_equal session_id
95+
end
9096
end
9197

9298
describe 'Appium::Driver attributes' do
@@ -98,6 +104,7 @@ def initialize(opts)
98104
expected = { automation_name: :xcuitest,
99105
custom_url: false,
100106
export_session: true,
107+
export_session_path: '/tmp/appium_lib_session',
101108
default_wait: 30,
102109
sauce_username: nil,
103110
sauce_access_key: nil,

lib/appium_lib/core/driver.rb

+11-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ class Driver
2424
# Export session id to textfile in /tmp for 3rd party tools
2525
# @return [Boolean]
2626
attr_reader :export_session
27+
# @return [String] By default, session id is exported in '/tmp/appium_lib_session'
28+
attr_reader :export_session_path
2729

2830
# Default wait time for elements to appear
2931
# Returns the default client side wait.
@@ -141,7 +143,7 @@ def start_driver(server_url: nil,
141143
listener: @listener)
142144

143145
# export session
144-
write_session_id(@driver.session_id) if @export_session
146+
write_session_id(@driver.session_id, @export_session_path) if @export_session
145147
rescue Errno::ECONNREFUSED
146148
raise "ERROR: Unable to connect to Appium. Is the server running on #{server_url}?"
147149
end
@@ -291,9 +293,12 @@ def set_app_path
291293

292294
# @private
293295
def set_appium_lib_specific_values(appium_lib_opts)
294-
@custom_url = appium_lib_opts.fetch :server_url, false
295-
@export_session = appium_lib_opts.fetch :export_session, false
296-
@default_wait = appium_lib_opts.fetch :wait, 0
296+
@custom_url = appium_lib_opts.fetch :server_url, false
297+
@default_wait = appium_lib_opts.fetch :wait, 0
298+
299+
# bump current session id into a particular file
300+
@export_session = appium_lib_opts.fetch :export_session, false
301+
@export_session_path = appium_lib_opts.fetch :export_session_path, '/tmp/appium_lib_session'
297302

298303
@port = appium_lib_opts.fetch :port, 4723
299304

@@ -330,8 +335,8 @@ def set_automation_name_if_nil
330335
end
331336

332337
# @private
333-
def write_session_id(session_id)
334-
File.open('/tmp/appium_lib_session', 'w') { |f| f.puts session_id }
338+
def write_session_id(session_id, export_path = '/tmp/appium_lib_session')
339+
File.open(export_path, 'w') { |f| f.puts session_id }
335340
rescue IOError => e
336341
::Appium::Logger.warn e
337342
nil

lib/appium_lib/driver.rb

+17-14
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class Driver
3939
attr_reader :caps
4040
attr_reader :custom_url
4141
attr_reader :export_session
42+
attr_reader :export_session_path
4243
attr_reader :default_wait
4344
attr_reader :appium_port
4445
attr_reader :appium_device
@@ -129,6 +130,7 @@ def initialize(opts = {}, global_driver = nil)
129130
@caps = @core.caps
130131
@custom_url = @core.custom_url
131132
@export_session = @core.export_session
133+
@export_session_path = @core.export_session_path
132134
@default_wait = @core.default_wait
133135
@appium_port = @core.port
134136
@appium_wait_timeout = @core.wait_timeout
@@ -214,20 +216,21 @@ def set_sauce_related_values(appium_lib_opts)
214216
# Returns a hash of the driver attributes
215217
def driver_attributes
216218
{
217-
caps: @core.caps,
218-
automation_name: @core.automation_name,
219-
custom_url: @core.custom_url,
220-
export_session: @core.export_session,
221-
default_wait: @core.default_wait,
222-
sauce_username: @sauce.username,
223-
sauce_access_key: @sauce.access_key,
224-
sauce_endpoint: @sauce.endpoint,
225-
port: @core.port,
226-
device: @core.device,
227-
debug: @appium_debug,
228-
listener: @listener,
229-
wait_timeout: @core.wait_timeout,
230-
wait_interval: @core.wait_interval
219+
caps: @core.caps,
220+
automation_name: @core.automation_name,
221+
custom_url: @core.custom_url,
222+
export_session: @core.export_session,
223+
export_session_path: @core.export_session_path,
224+
default_wait: @core.default_wait,
225+
sauce_username: @sauce.username,
226+
sauce_access_key: @sauce.access_key,
227+
sauce_endpoint: @sauce.endpoint,
228+
port: @core.port,
229+
device: @core.device,
230+
debug: @appium_debug,
231+
listener: @listener,
232+
wait_timeout: @core.wait_timeout,
233+
wait_interval: @core.wait_interval
231234
}
232235
end
233236

0 commit comments

Comments
 (0)