appium_lib 15.2.0 → 15.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/functional-test.yml +77 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/appium_lib.gemspec +2 -2
- data/lib/appium_lib/driver.rb +38 -15
- data/lib/appium_lib/version.rb +2 -2
- data/release_notes.md +14 -0
- metadata +13 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0bfdc2987c36a4f05fe4f64017e6928aac4e418aeaabbf02499ecf8fd353c6a
|
4
|
+
data.tar.gz: 7955dffc472ed16de2d1f763be2c18c607444543ac92d3d6e5c219a81f2d6676
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35a484c99f93a7f2462eb67c2dbdf91875b8d0a122d27232700e8fd68f62ef4d473a6bee769d8d580c54f7c21d2c63dbd08c6bd23f28b1eb3eb412203c411332
|
7
|
+
data.tar.gz: 43803e6084b7bffb9fc1282acef6429829a7019e323f9887176d1534809d458525bbf30ccbb8967ca3b8da8876ff64e0f868a614041d7b3b297ee24bfabc3191
|
@@ -0,0 +1,77 @@
|
|
1
|
+
name: Functional Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
# Run by manual at this time
|
5
|
+
workflow_dispatch:
|
6
|
+
push:
|
7
|
+
branches: [ master ]
|
8
|
+
pull_request:
|
9
|
+
branches: [ master ]
|
10
|
+
|
11
|
+
concurrency:
|
12
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
13
|
+
cancel-in-progress: true
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
ios_test:
|
17
|
+
runs-on: macos-14
|
18
|
+
env:
|
19
|
+
XCODE_VERSION: 15.3
|
20
|
+
IOS_VERSION: 17.4
|
21
|
+
IOS_DEVICE_NAME: iPhone 15 Plus
|
22
|
+
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v3
|
25
|
+
|
26
|
+
- name: Install Node.js
|
27
|
+
uses: actions/setup-node@v3
|
28
|
+
with:
|
29
|
+
node-version: 'lts/*'
|
30
|
+
|
31
|
+
- name: Select Xcode
|
32
|
+
uses: maxim-lobanov/setup-xcode@v1
|
33
|
+
with:
|
34
|
+
xcode-version: ${{ env.XCODE_VERSION }}
|
35
|
+
- run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
|
36
|
+
|
37
|
+
- uses: futureware-tech/simulator-action@v3
|
38
|
+
with:
|
39
|
+
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
|
40
|
+
model: ${{ env.IOS_DEVICE_NAME }}
|
41
|
+
os_version: ${{ env.IOS_VERSION }}
|
42
|
+
|
43
|
+
- name: Preparing other environment
|
44
|
+
run: |
|
45
|
+
brew install ffmpeg
|
46
|
+
brew tap wix/brew
|
47
|
+
brew install applesimutils
|
48
|
+
|
49
|
+
# Start Appium
|
50
|
+
- name: Install appium and mjpeg-consumer
|
51
|
+
run: |
|
52
|
+
npm install -g appium
|
53
|
+
npm install -g mjpeg-consumer
|
54
|
+
- run: |
|
55
|
+
appium driver install xcuitest
|
56
|
+
appium plugin install images@2.1.8
|
57
|
+
appium plugin install execute-driver
|
58
|
+
nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors --base-path=/wd/hub > appium.log &
|
59
|
+
|
60
|
+
- name: Set up Ruby
|
61
|
+
uses: ruby/setup-ruby@v1
|
62
|
+
with:
|
63
|
+
ruby-version: 3.2
|
64
|
+
- run: |
|
65
|
+
bundle install
|
66
|
+
rake ios
|
67
|
+
name: Run tests
|
68
|
+
working-directory: ios_tests
|
69
|
+
|
70
|
+
- name: Save server output
|
71
|
+
if: ${{ always() }}
|
72
|
+
uses: actions/upload-artifact@master
|
73
|
+
with:
|
74
|
+
name: appium-ios_test_with_other_deps.log
|
75
|
+
path: |
|
76
|
+
appium.log
|
77
|
+
test/report/
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,13 @@ Commit based release not is [release_notes.md](./release_notes.md)
|
|
3
3
|
|
4
4
|
Release tags are https://github.com/appium/ruby_lib/releases .
|
5
5
|
|
6
|
+
## 15.2.2 - 2024-08-06
|
7
|
+
- Fix non `app` capability behavior
|
8
|
+
|
9
|
+
## 15.2.1 - 2024-08-03
|
10
|
+
- Fix client side timeout in the default http client
|
11
|
+
- Bump appium_lib_core 9.2.1+ to apply the fix
|
12
|
+
|
6
13
|
## 15.2.0 - 2024-07-20
|
7
14
|
- Raise defined errors instead of Ruby general errors by appium_lib's own errors
|
8
15
|
|
data/appium_lib.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.homepage = 'https://github.com/appium/ruby_lib' # published as appium_lib
|
14
14
|
s.require_paths = ['lib']
|
15
15
|
|
16
|
-
s.add_runtime_dependency 'appium_lib_core', '~> 9.
|
16
|
+
s.add_runtime_dependency 'appium_lib_core', '~> 9.2', '>= 9.2.1'
|
17
17
|
s.add_runtime_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
|
18
18
|
s.add_runtime_dependency 'tomlrb', '>= 1.1', '< 3.0'
|
19
19
|
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency 'minitest-reporters', '~> 1.1'
|
25
25
|
s.add_development_dependency 'pry'
|
26
26
|
s.add_development_dependency 'rake', '~> 13.0'
|
27
|
-
s.add_development_dependency 'rubocop', '1.65.
|
27
|
+
s.add_development_dependency 'rubocop', '1.65.1'
|
28
28
|
s.add_development_dependency 'yard', '~> 0.9.11'
|
29
29
|
|
30
30
|
s.files = `git ls-files`.split("\n").reject { |v| v.match(/\A^(ios_tests|android_tests|grid|test_apps)\/.+/) }
|
data/lib/appium_lib/driver.rb
CHANGED
@@ -40,6 +40,26 @@ require 'uri'
|
|
40
40
|
|
41
41
|
module Appium
|
42
42
|
class Driver
|
43
|
+
# @private
|
44
|
+
class << self
|
45
|
+
def convert_to_symbol(value)
|
46
|
+
if value.nil?
|
47
|
+
value
|
48
|
+
else
|
49
|
+
value.to_sym
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# @private
|
54
|
+
def get_cap(caps, name)
|
55
|
+
name_with_prefix = "#{::Appium::Core::Base::Bridge::APPIUM_PREFIX}#{name}"
|
56
|
+
caps[convert_to_symbol name] ||
|
57
|
+
caps[name] ||
|
58
|
+
caps[convert_to_symbol name_with_prefix] ||
|
59
|
+
caps[name_with_prefix]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
43
63
|
# attr readers are promoted to global scope. To avoid clobbering, they're
|
44
64
|
# made available via the driver_attributes method
|
45
65
|
#
|
@@ -248,15 +268,11 @@ module Appium
|
|
248
268
|
return unless @core.caps
|
249
269
|
|
250
270
|
# return the path exists on the local
|
251
|
-
|
252
|
-
return if
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
@core.caps['app'] = self.class.absolute_app_path opts
|
257
|
-
elsif !@core.caps[:app].nil?
|
258
|
-
@core.caps[:app] = self.class.absolute_app_path opts
|
259
|
-
end
|
271
|
+
app_path = Driver.get_cap(@core.caps, 'app')
|
272
|
+
return if app_path.nil?
|
273
|
+
return if File.exist?(app_path)
|
274
|
+
|
275
|
+
@core.caps['app'] = self.class.absolute_app_path opts
|
260
276
|
end
|
261
277
|
|
262
278
|
# @private
|
@@ -386,9 +402,8 @@ module Appium
|
|
386
402
|
def self.absolute_app_path(opts)
|
387
403
|
raise ArgumentError, 'opts must be a hash' unless opts.is_a? Hash
|
388
404
|
|
389
|
-
|
390
|
-
|
391
|
-
app_path = caps[:app] || caps['app']
|
405
|
+
caps = opts[:caps] || opts['caps'] || {}
|
406
|
+
app_path = get_cap(caps, 'app')
|
392
407
|
raise ArgumentError, 'absolute_app_path invoked and app is not set!' if app_path.nil? || app_path.empty?
|
393
408
|
# Sauce storage API. http://saucelabs.com/docs/rest#storage
|
394
409
|
return app_path if app_path.start_with? 'sauce-storage:'
|
@@ -521,8 +536,11 @@ module Appium
|
|
521
536
|
# @option http_client_ops [Hash] :open_timeout Custom open timeout for http client.
|
522
537
|
# @option http_client_ops [Hash] :read_timeout Custom read timeout for http client.
|
523
538
|
# @return [Selenium::WebDriver] the new global driver
|
524
|
-
def start_driver(http_client_ops =
|
525
|
-
|
539
|
+
def start_driver(http_client_ops = { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
|
540
|
+
if http_client_ops[:http_client].nil?
|
541
|
+
http_client = ::Appium::Http::Default.new(open_timeout: http_client_ops[:open_timeout],
|
542
|
+
read_timeout: http_client_ops[:read_timeout])
|
543
|
+
end
|
526
544
|
|
527
545
|
# TODO: do not kill the previous session in the future version.
|
528
546
|
if $driver.nil?
|
@@ -535,7 +553,12 @@ module Appium
|
|
535
553
|
# starting driver.
|
536
554
|
automation_name = @core.automation_name
|
537
555
|
|
538
|
-
@driver = @core.start_driver(server_url: server_url,
|
556
|
+
@driver = @core.start_driver(server_url: server_url,
|
557
|
+
http_client_ops: {
|
558
|
+
http_client: http_client,
|
559
|
+
open_timeout: 999_999,
|
560
|
+
read_timeout: 999_999
|
561
|
+
})
|
539
562
|
@http_client = @core.http_client
|
540
563
|
|
541
564
|
# if automation_name was nil before start_driver, then re-extend driver specific methods
|
data/lib/appium_lib/version.rb
CHANGED
@@ -14,6 +14,6 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
# Version and Date are defined on the 'Appium' module, not 'Appium::Common'
|
17
|
-
VERSION = '15.2.
|
18
|
-
DATE = '2024-
|
17
|
+
VERSION = '15.2.2' unless defined? ::Appium::VERSION
|
18
|
+
DATE = '2024-08-06' unless defined? ::Appium::DATE
|
19
19
|
end
|
data/release_notes.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
#### v15.2.2 2024-08-06
|
2
|
+
|
3
|
+
- [08ac85a](https://github.com/appium/ruby_lib/commit/08ac85ace5a451886431f10367f544708a792954) Release 15.2.2
|
4
|
+
- [b741383](https://github.com/appium/ruby_lib/commit/b74138352b7f274d89e0af36efe3d65a574ed502) fix: non-app capability handling (#1039)
|
5
|
+
|
6
|
+
|
7
|
+
#### v15.2.1 2024-08-03
|
8
|
+
|
9
|
+
- [693dc16](https://github.com/appium/ruby_lib/commit/693dc167cbbcbe1ab08d1142958207d635c480a3) Release 15.2.1
|
10
|
+
- [d98126c](https://github.com/appium/ruby_lib/commit/d98126c47e04d7d152f85a2a75c3fdcb3011ae96) ci: add ci (#1037)
|
11
|
+
- [fd2e639](https://github.com/appium/ruby_lib/commit/fd2e639b62e9b5c533915e7e860621391479c4aa) chore: modify rubocop.yml a bit
|
12
|
+
- [0d1c2b8](https://github.com/appium/ruby_lib/commit/0d1c2b87b8f2ac456372bf4cbb2441fffae5cf27) chore: Update rubocop requirement from = 1.65.0 to = 1.65.1 (#1036)
|
13
|
+
|
14
|
+
|
1
15
|
#### v15.2.0 2024-07-20
|
2
16
|
|
3
17
|
- [d73525e](https://github.com/appium/ruby_lib/commit/d73525eec584c3c31690dcd55a6c52d641d43f9f) Release 15.2.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appium_lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 15.2.
|
4
|
+
version: 15.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- code@bootstraponline.com
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: appium_lib_core
|
@@ -17,14 +17,20 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '9.
|
20
|
+
version: '9.2'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 9.2.1
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
28
|
- - "~>"
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: '9.
|
30
|
+
version: '9.2'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 9.2.1
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: nokogiri
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -169,14 +175,14 @@ dependencies:
|
|
169
175
|
requirements:
|
170
176
|
- - '='
|
171
177
|
- !ruby/object:Gem::Version
|
172
|
-
version: 1.65.
|
178
|
+
version: 1.65.1
|
173
179
|
type: :development
|
174
180
|
prerelease: false
|
175
181
|
version_requirements: !ruby/object:Gem::Requirement
|
176
182
|
requirements:
|
177
183
|
- - '='
|
178
184
|
- !ruby/object:Gem::Version
|
179
|
-
version: 1.65.
|
185
|
+
version: 1.65.1
|
180
186
|
- !ruby/object:Gem::Dependency
|
181
187
|
name: yard
|
182
188
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,6 +209,7 @@ files:
|
|
203
209
|
- ".github/ISSUE_TEMPLATE.md"
|
204
210
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
205
211
|
- ".github/dependabot.yml"
|
212
|
+
- ".github/workflows/functional-test.yml"
|
206
213
|
- ".github/workflows/rubocop.yml"
|
207
214
|
- ".gitignore"
|
208
215
|
- ".rubocop.yml"
|