inferno_core 0.4.7.pre → 0.4.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/inferno/apps/cli/suite.rb +38 -0
- data/lib/inferno/apps/cli/suites.rb +13 -5
- data/lib/inferno/apps/web/controllers/test_sessions/create.rb +1 -1
- data/lib/inferno/apps/web/controllers/test_sessions/session_data/apply_preset.rb +1 -1
- data/lib/inferno/dsl/input_output_handling.rb +2 -1
- data/lib/inferno/dsl/oauth_credentials.rb +1 -1
- data/lib/inferno/entities/test_group.rb +0 -1
- data/lib/inferno/public/bundle.js +9 -9
- data/lib/inferno/repositories/test_sessions.rb +4 -3
- data/lib/inferno/repositories.rb +13 -7
- data/lib/inferno/utils/preset_processor.rb +49 -0
- data/lib/inferno/utils/preset_template_generator.rb +6 -2
- data/lib/inferno/version.rb +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9fb2c95aa9d590f9c05ceb25a236f0552ae2a94e91c49de3a116dbe970e62de
|
4
|
+
data.tar.gz: e81873f6d4c4a4b620fa2831298ce089567d07df5e2ca93b70cec127c2f67fbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5195ed44f0fb45fa7688e5dd3f4c74cc5012a689205cf39f27ab08a1ca25713cc4ce7a2c1351a281c311b38e38c28b72b5e09cf1771f88a220ebd6735ff87fd
|
7
|
+
data.tar.gz: 96b4316208dd689aad2e1205ac29c15e452d0086f72bbe1dff8ee349eccf5c579165bf7610196dfdb1cfcd2e959ad8d536e2978d8a00c60e598551a619447a34
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'tty-markdown'
|
2
|
+
|
1
3
|
require_relative 'suite_input_template'
|
2
4
|
|
3
5
|
module Inferno
|
@@ -12,8 +14,44 @@ module Inferno
|
|
12
14
|
LONGDESC
|
13
15
|
option :filename, banner: '<filename>', aliases: [:f]
|
14
16
|
def input_template(suite_id)
|
17
|
+
ENV['NO_DB'] = 'true'
|
15
18
|
SuiteInputTemplate.new.run(suite_id, options)
|
16
19
|
end
|
20
|
+
|
21
|
+
desc 'describe SUITE_ID', 'Show information about a suite'
|
22
|
+
long_desc <<~LONGDESC
|
23
|
+
Display a suite's description and available options.
|
24
|
+
LONGDESC
|
25
|
+
def describe(suite_id)
|
26
|
+
ENV['NO_DB'] = 'true'
|
27
|
+
Inferno::Application.start(:suites)
|
28
|
+
|
29
|
+
suite = Inferno::Repositories::TestSuites.new.find(suite_id)
|
30
|
+
|
31
|
+
if suite.blank?
|
32
|
+
message = "No suite found with id `#{suite_id}`. Run `inferno suites` to see a list of available suites"
|
33
|
+
|
34
|
+
puts TTY::Markdown.parse(message)
|
35
|
+
return
|
36
|
+
end
|
37
|
+
|
38
|
+
description = ''
|
39
|
+
description += "# #{suite.title}\n"
|
40
|
+
description += "#{suite.description}\n" if suite.description
|
41
|
+
|
42
|
+
if suite.suite_options.present?
|
43
|
+
description += "***\n\n"
|
44
|
+
description += "# Suite Options\n\n"
|
45
|
+
suite.suite_options.each do |option|
|
46
|
+
description += "* `#{option.id}`: #{option.title}\n"
|
47
|
+
option.list_options.each do |list_option|
|
48
|
+
description += " * `#{list_option[:value]}`: #{list_option[:label]}\n"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
puts TTY::Markdown.parse(description)
|
54
|
+
end
|
17
55
|
end
|
18
56
|
end
|
19
57
|
end
|
@@ -1,7 +1,11 @@
|
|
1
|
+
require 'tty-markdown'
|
2
|
+
|
1
3
|
module Inferno
|
2
4
|
module CLI
|
3
5
|
class Suites
|
4
6
|
def run
|
7
|
+
ENV['NO_DB'] = 'true'
|
8
|
+
|
5
9
|
require_relative '../../../inferno'
|
6
10
|
|
7
11
|
Inferno::Application.start(:suites)
|
@@ -9,14 +13,18 @@ module Inferno
|
|
9
13
|
suites = Inferno::Repositories::TestSuites.new.all
|
10
14
|
suite_hash = suites.each_with_object({}) { |suite, hash| hash[suite.id] = suite.title }
|
11
15
|
|
12
|
-
id_column_length = suite_hash.keys.map(&:length).max +
|
13
|
-
title_column_length = suite_hash.values.map(&:length).max
|
16
|
+
id_column_length = suite_hash.keys.map(&:length).max + 2
|
17
|
+
title_column_length = suite_hash.values.map(&:length).max + 1
|
18
|
+
|
19
|
+
output = ''
|
20
|
+
output += "| #{'Title'.ljust(title_column_length)}| #{'ID'.ljust(id_column_length)}|\n"
|
21
|
+
output += "|-#{'-' * title_column_length}|-#{'-' * id_column_length}|\n"
|
14
22
|
|
15
|
-
puts "#{'ID'.ljust(id_column_length)}| Title"
|
16
|
-
puts "#{'-' * id_column_length}+-#{'-' * title_column_length}"
|
17
23
|
suite_hash.each do |id, title|
|
18
|
-
|
24
|
+
output += "| #{title.ljust(title_column_length)}| #{id.ljust(id_column_length)}|\n"
|
19
25
|
end
|
26
|
+
|
27
|
+
puts TTY::Markdown.parse(output)
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -14,7 +14,7 @@ module Inferno
|
|
14
14
|
|
15
15
|
session = repo.create(create_params(params))
|
16
16
|
|
17
|
-
repo.apply_preset(session
|
17
|
+
repo.apply_preset(session, params[:preset_id]) if params[:preset_id].present?
|
18
18
|
|
19
19
|
res.body = serialize(session)
|
20
20
|
rescue Sequel::ValidationFailed, Sequel::ForeignKeyConstraintViolation => e
|
@@ -8,9 +8,10 @@ module Inferno
|
|
8
8
|
# @param input_params [Hash] options for input such as type, description, or title
|
9
9
|
# @option input_params [String] :title Human readable title for input
|
10
10
|
# @option input_params [String] :description Description for the input
|
11
|
-
# @option input_params [String] :type text | textarea | radio
|
11
|
+
# @option input_params [String] :type text | textarea | radio | oauth_credentials
|
12
12
|
# @option input_params [String] :default The default value for the input
|
13
13
|
# @option input_params [Boolean] :optional Set to true to not require input for test execution
|
14
|
+
# @option input_params [Boolean] :locked If true, the user can not alter the value
|
14
15
|
# @option input_params [Hash] :options Possible input option formats based on input type
|
15
16
|
# @option options [Array] :list_options Array of options for input formats that require a list of possible values
|
16
17
|
# @return [void]
|
@@ -121,7 +121,7 @@ module Inferno
|
|
121
121
|
expires_in = token_response_body['expires_in'].is_a?(Numeric) ? token_response_body['expires_in'] : nil
|
122
122
|
|
123
123
|
self.access_token = token_response_body['access_token']
|
124
|
-
self.refresh_token = token_response_body['refresh_token']
|
124
|
+
self.refresh_token = token_response_body['refresh_token'] if token_response_body['refresh_token'].present?
|
125
125
|
self.expires_in = expires_in
|
126
126
|
self.token_retrieval_time = DateTime.now
|
127
127
|
|