superbot-cloud 0.1.14 → 0.1.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0aa4ee337444ceb27e938f8b42315650fc64b385d9c885e22b09e56aef614962
4
- data.tar.gz: 55c34d3ba848b5a986b927d6754d81719114146b8f32adf483c86286587e49c9
3
+ metadata.gz: 1d1b40002f08217e0ca4388dd5dd84e00035aabc76ac16d47fa318d96ae23770
4
+ data.tar.gz: 6d5b75d177154480ee22ef295b1de8c86f8fd19a028db382e7854d2df5d62fa7
5
5
  SHA512:
6
- metadata.gz: e450daded01a72904e921d5f70620ca814b0dcbd53640f03c256b9b9e1e5d0c37e79add35fc0eec12362e5fe96cbace41b885b34764f24370ab0f92e19c60fff
7
- data.tar.gz: 9e8505d9576a01fb3e32e54af65934e772a00a05a956ffd05cc165e9f04a9100cbdcd0e5df11a7cd73453b970b710d6422f3ddb7bb364619bcccd016c991d99e
6
+ metadata.gz: e50da0fead65be52a49954d90ded6b9d997aa21cb1bd7e43a2127ca62d5a64cec6d889524d267367a81d20b14d3b0a7ca891c14b1b4e0c447e94502bb4f99448
7
+ data.tar.gz: 8392a6b5fa3f880bb0495b89e779cdbe625befb32eb5c1e648e8f2d3c2987e3addc4921cfbf7a632647a8d7cfb0a681503e2e5f22020bef71dde21d3d7698eac
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- superbot-cloud (0.1.14)
4
+ superbot-cloud (0.1.15)
5
5
  marcel (= 0.3.3)
6
6
  multipart-post (= 2.0.0)
7
7
 
@@ -11,8 +11,11 @@ GEM
11
11
  addressable (2.5.2)
12
12
  public_suffix (>= 2.0.2, < 4.0)
13
13
  ast (2.4.0)
14
+ childprocess (0.9.0)
15
+ ffi (~> 1.0, >= 1.0.11)
14
16
  clamp (1.2.1)
15
17
  diff-lcs (1.3)
18
+ ffi (1.9.25)
16
19
  jaro_winkler (1.5.1)
17
20
  kommando (0.1.2)
18
21
  launchy (2.4.3)
@@ -54,19 +57,24 @@ GEM
54
57
  ruby-progressbar (~> 1.7)
55
58
  unicode-display_width (~> 1.0, >= 1.0.1)
56
59
  ruby-progressbar (1.10.0)
60
+ rubyzip (1.2.2)
61
+ selenium-webdriver (3.141.0)
62
+ childprocess (~> 0.5)
63
+ rubyzip (~> 1.2, >= 1.2.2)
57
64
  sinatra (2.0.3)
58
65
  mustermann (~> 1.0)
59
66
  rack (~> 2.0)
60
67
  rack-protection (= 2.0.3)
61
68
  tilt (~> 2.0)
62
69
  sinatra-silent (0.0.1)
63
- superbot (0.1.18)
70
+ superbot (0.1.20)
64
71
  clamp (= 1.2.1)
65
72
  kommando (~> 0.1)
66
73
  launchy (= 2.4.3)
74
+ selenium-webdriver (~> 3.14, >= 3.14.0)
67
75
  sinatra (= 2.0.3)
68
76
  sinatra-silent (= 0.0.1)
69
- superbot-cloud (~> 0.1.13)
77
+ superbot-cloud (~> 0.1.14)
70
78
  zaru (= 0.2.0)
71
79
  tilt (2.0.8)
72
80
  unicode-display_width (1.4.0)
@@ -80,7 +88,7 @@ DEPENDENCIES
80
88
  rake (~> 10.0)
81
89
  rspec (~> 3.0)
82
90
  rubocop (~> 0.53)
83
- superbot (~> 0.1.18)
91
+ superbot (~> 0.1.20)
84
92
  superbot-cloud!
85
93
 
86
94
  BUNDLED WITH
@@ -7,12 +7,14 @@ module Superbot
7
7
  module Api
8
8
  BASE_URI = "#{Superbot::URI_SCHEME}://#{Superbot::DOMAIN}/api/v1"
9
9
  ENDPOINT_MAP = {
10
- login: { method: :post, endpoint: 'sessions' },
11
- token: { method: :post, endpoint: 'token' },
12
- organization_list: { method: :get, endpoint: 'organizations' },
13
- test_list: { method: :get, endpoint: 'tests' },
14
- test_upload: { method: :post_multipart, endpoint: 'tests' },
15
- delete_test: { method: :delete, endpoint: 'tests', required_param: :name }
10
+ login: { method: :post, endpoint: 'sessions' },
11
+ token: { method: :post, endpoint: 'token' },
12
+ organization_list: { method: :get, endpoint: 'organizations' },
13
+ test_list: { method: :get, endpoint: 'tests' },
14
+ test_upload: { method: :post_multipart, endpoint: 'tests' },
15
+ delete_test: { method: :delete, endpoint: 'tests', required_param: :name },
16
+ webdriver_session_list: { method: :get, endpoint: 'webdriver_sessions' },
17
+ delete_webdriver_session: { method: :delete, endpoint: 'webdriver_sessions', required_param: :session_id }
16
18
  }.freeze
17
19
 
18
20
  def self.request(type, params: {})
@@ -31,7 +33,6 @@ module Superbot
31
33
  end
32
34
 
33
35
  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
34
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
35
36
  http.request(req)
36
37
  end
37
38
  parsed_response = response.class.body_permitted? && JSON.parse(response.body, symbolize_names: true) || {}
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Superbot
4
+ module CLI
5
+ module Cloud
6
+ module Webdriver
7
+ class DeleteCommand < Clamp::Command
8
+ include Superbot::Cloud::Validations
9
+
10
+ parameter "SESSION_ID", "webdriver session ID", required: true
11
+
12
+ def execute
13
+ require_login
14
+ delete_session
15
+ end
16
+
17
+ def delete_session
18
+ Superbot::Cloud::Api.request(
19
+ :delete_webdriver_session,
20
+ params: {
21
+ session_id: session_id
22
+ }
23
+ )
24
+
25
+ puts "Webdriver session removal has been requested."
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Superbot
4
+ module CLI
5
+ module Cloud
6
+ module Webdriver
7
+ class ListCommand < Clamp::Command
8
+ include Superbot::Cloud::Validations
9
+
10
+ def execute
11
+ require_login
12
+ list_sessions
13
+ end
14
+
15
+ def list_sessions
16
+ api_response = Superbot::Cloud::Api.request(:webdriver_session_list)
17
+ abort api_response[:error] if api_response[:error]
18
+ puts "Webdriver Sessions:"
19
+ headers = api_response[:webdriver_sessions].first&.keys
20
+ puts headers.map { |field| field.to_s.upcase.ljust(35) }.join
21
+ puts ''.ljust(35 * headers.length, '-')
22
+ api_response[:webdriver_sessions].each do |webdriver_session|
23
+ puts webdriver_session.values.map { |v| v.to_s.ljust(35) }.join
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'webdriver/list_command'
4
+ require_relative 'webdriver/delete_command'
5
+
6
+ module Superbot
7
+ module CLI
8
+ module Cloud
9
+ class WebdriverCommand < Clamp::Command
10
+ subcommand ['list'], "List all webdriver sessions", Cloud::Webdriver::ListCommand
11
+ subcommand ['delete'], "Terminate and finish specific session", Cloud::Webdriver::DeleteCommand
12
+
13
+ def self.run
14
+ super
15
+ rescue StandardError => exc
16
+ warn exc.message
17
+ warn exc.backtrace.join("\n")
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -5,6 +5,7 @@ require_relative 'cloud/login_command'
5
5
  require_relative 'cloud/version_command'
6
6
  require_relative 'cloud/organization_command'
7
7
  require_relative 'cloud/test_command'
8
+ require_relative 'cloud/webdriver_command'
8
9
 
9
10
  module Superbot
10
11
  module CLI
@@ -13,6 +14,7 @@ module Superbot
13
14
  subcommand ['login'], 'Login to superbot cloud', Cloud::LoginCommand
14
15
  subcommand(['org'], 'Manage your organizations', Cloud::OrganizationCommand)
15
16
  subcommand ['test'], "Manage your tests", Cloud::TestCommand
17
+ subcommand ['webdriver'], "Manage your webdriver sessions", Cloud::WebdriverCommand
16
18
 
17
19
  option ['-v', '--version'], :flag, "Show version information" do
18
20
  puts Superbot::Cloud::VERSION
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Superbot
4
4
  module Cloud
5
- VERSION = "0.1.14"
5
+ VERSION = "0.1.15"
6
6
  end
7
7
  end
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_runtime_dependency "multipart-post", "2.0.0"
37
37
  spec.add_runtime_dependency "marcel", "0.3.3"
38
38
 
39
- spec.add_development_dependency "superbot", "~> 0.1.18"
39
+ spec.add_development_dependency "superbot", "~> 0.1.20"
40
40
  spec.add_development_dependency "bundler", "~> 1.16"
41
41
  spec.add_development_dependency "rake", "~> 10.0"
42
42
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superbot-cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Superbots
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-20 00:00:00.000000000 Z
11
+ date: 2018-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multipart-post
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.18
47
+ version: 0.1.20
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.18
54
+ version: 0.1.20
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -143,6 +143,9 @@ files:
143
143
  - lib/superbot/cloud/cli/cloud/test_command.rb
144
144
  - lib/superbot/cloud/cli/cloud/validations.rb
145
145
  - lib/superbot/cloud/cli/cloud/version_command.rb
146
+ - lib/superbot/cloud/cli/cloud/webdriver/delete_command.rb
147
+ - lib/superbot/cloud/cli/cloud/webdriver/list_command.rb
148
+ - lib/superbot/cloud/cli/cloud/webdriver_command.rb
146
149
  - lib/superbot/cloud/cli/cloud_command.rb
147
150
  - lib/superbot/cloud/cli/root_command.rb
148
151
  - lib/superbot/cloud/version.rb