teuton 2.3.2 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73bcbde38fc10f9c95d3ff64be195fa1edd2969faa9ffc27daf97f9e33c2f2a0
4
- data.tar.gz: b5ee720adb7e12cc6d95d2e6a157242992cc0cf459ffc85ad2e595e769ce26a2
3
+ metadata.gz: d2930c8d766aa4cf5f96346d4e411a38768efc0a359079652ba4e82cd1d0171f
4
+ data.tar.gz: faa75db9d11bf94694bda0d490fb3be350286a7603f16d77a7d62b44de19d676
5
5
  SHA512:
6
- metadata.gz: e670cbdaa78cca6e0ab16a71cbdff3c5668010856f361f4db0812cbc2f638f4f3855a87488ca538a84687389ccdf739f9cee7f3a48e864e72967e9034b37b8d1
7
- data.tar.gz: f0701cb02f7ed5210f802c51e9f81d18ad4b526f511fd665004bc74d3b8a34a41907b3f6a16b3f25d64554c550c6f1693a6e6a65d381411c1b9225c42dc3ad5a
6
+ metadata.gz: 177d70f2ab7e8dff9362da009c2b88f31e6fbaf44fd1cdb8e0ba03fa8a742d81fb6e8a1309db1c8860cf5a5348532d5f26ee8cf7b379fe14daee5a1ab1b5b971
7
+ data.tar.gz: 8b817fc56f854181418b55d619f2e279def688b03d7fbd21e0e85dacc45b0ef6b58aa8eef500b45946feab4ebb8f3e00be0661d9503b931767a26f6ff6c38d0a
@@ -22,15 +22,10 @@ class Application
22
22
  attr_accessor :hall_of_fame
23
23
  attr_accessor :project_path, :script_path, :config_path, :test_name
24
24
 
25
- ##
26
- # Initialize Application instance
27
25
  def initialize
28
26
  reset
29
27
  end
30
28
 
31
- ##
32
- # Reset param values
33
- # rubocop:disable Metrics/MethodLength
34
29
  def reset
35
30
  @letter = { good: '.', bad: 'F', error: '?', none: ' ' }
36
31
  @running_basedir = Dir.getwd
@@ -46,25 +41,15 @@ class Application
46
41
  @uses = [] # TODO
47
42
  @hall_of_fame = []
48
43
  end
49
- # rubocop:enable Metrics/MethodLength
50
44
 
51
- ##
52
- # Return debug param
53
- # @return Boolean
54
45
  def debug
55
46
  @default[:debug]
56
47
  end
57
48
 
58
- ##
59
- # Return name param
60
- # @return String
61
49
  def name
62
50
  @default[:name]
63
51
  end
64
52
 
65
- ##
66
- # Return quiet param
67
- # @return Boolean
68
53
  def quiet?
69
54
  return true if Application.instance.options['quiet']
70
55
  return true unless Application.instance.verbose
@@ -76,7 +61,6 @@ class Application
76
61
  # Preprocess input options:
77
62
  # * Convert input case options String to an Array of integers
78
63
  # * Read color input option
79
- # rubocop:disable Metrics/AbcSize
80
64
  def add_input_params(projectpath, options)
81
65
  @options.merge! options
82
66
  NameFileFinder.find_filenames_for(projectpath)
@@ -89,5 +73,4 @@ class Application
89
73
  a = @options['case'].split(',')
90
74
  @options['case'] = a.collect!(&:to_i)
91
75
  end
92
- # rubocop:enable Metrics/AbcSize
93
76
  end
@@ -16,15 +16,16 @@ class Case
16
16
  end
17
17
  # TODO: Delete old reports???
18
18
  start_time = Time.now
19
- play_in_sequence if get(:tt_sequence) == true # Play in sequence
20
- play_in_parallel if get(:tt_sequence) != true # Play in parallel
19
+ if get(:tt_sequence) == true
20
+ play_in_sequence
21
+ else
22
+ play_in_parallel
23
+ end
21
24
  fill_report(start_time, Time.now)
22
25
  close_opened_sessions
23
26
  end
24
27
  alias start play
25
28
 
26
- ##
27
- # Close opened sessions for this case
28
29
  def close_opened_sessions
29
30
  @sessions.each_value do |s|
30
31
  s.close if s.class == Net::SSH::Connection::Session
@@ -46,9 +47,9 @@ class Case
46
47
  ##
47
48
  # Execute every play#group in sequence
48
49
  def play_in_sequence
49
- verboseln "Starting case <#{@config.get(:tt_members)}>"
50
+ verboseln "Starting case [#{@config.get(:tt_members)}]"
50
51
  @groups.each do |t|
51
- verbose "* Processing <#{t[:name]}> "
52
+ verbose "* Processing [#{t[:name]}] "
52
53
  @action[:groupname] = t[:name]
53
54
  instance_eval(&t[:block])
54
55
  verbose "\n"
@@ -58,7 +59,6 @@ class Case
58
59
 
59
60
  ##
60
61
  # Fill case report with time information
61
- # rubocop:disable Metrics/AbcSize
62
62
  def fill_report(start_time, finish_time)
63
63
  @report.head.merge! @config.global
64
64
  @report.head.merge! @config.local
@@ -68,5 +68,4 @@ class Case
68
68
  @report.tail[:finish_time] = finish_time
69
69
  @report.tail[:duration] = finish_time - start_time
70
70
  end
71
- # rubocop:enable Metrics/AbcSize
72
71
  end
@@ -39,12 +39,12 @@ class CaseManager
39
39
  # Run all cases
40
40
  def run_all_cases
41
41
  start_time = Time.now
42
- if Application.instance.global[:tt_sequence]
43
- verboseln Rainbow("[INFO] Running in sequence (#{start_time})").yellow.bright
42
+ if Application.instance.global[:tt_sequence] == true
43
+ verboseln Rainbow("==> Teuton: Running in sequence (#{start_time})").yellow.bright
44
44
  # Run every case in sequence
45
45
  @cases.each(&:play)
46
46
  else
47
- verboseln Rainbow("[INFO] Running in parallel (#{start_time})").yellow.bright
47
+ verboseln Rainbow("==> Teuton: Running in parallel (#{start_time})").yellow.bright
48
48
  threads = []
49
49
  # Run all cases in parallel
50
50
  @cases.each { |c| threads << Thread.new { c.play } }
@@ -78,7 +78,6 @@ class CaseManager
78
78
  @cases.each { |c| threads << Thread.new { c.close uniques } }
79
79
  threads.each(&:join)
80
80
 
81
- # Build Hall of Fame
82
81
  build_hall_of_fame
83
82
  end
84
83
  end
@@ -1,4 +1,3 @@
1
- # frozen_string_literal: true
2
1
 
3
2
  require_relative 'check_cases'
4
3
  require_relative 'hall_of_fame'
@@ -12,17 +12,13 @@ class CaseManager
12
12
  def open_main_report(config_filepath)
13
13
  app = Application.instance
14
14
 
15
- @report.head[:tt_title] = "Executing [#{app.name}] (version #{Application::VERSION})"
15
+ @report.head[:tt_title] = "Teuton (#{Teuton::VERSION})"
16
16
  @report.head[:tt_scriptname] = trim(app.script_path)
17
17
  @report.head[:tt_configfile] = trim(config_filepath)
18
18
  @report.head[:tt_pwd] = app.running_basedir
19
19
  @report.head[:tt_debug] = true if @debug
20
20
  # @report.head[:tt_uses] = app.uses.join(', ') # TO-REVISE
21
21
  @report.head.merge!(app.global)
22
-
23
- verboseln ' '
24
- verboseln '=' * @report.head[:tt_title].length
25
- verboseln Rainbow(@report.head[:tt_title]).yellow.bright
26
22
  end
27
23
 
28
24
  def close_main_report(start_time)
@@ -31,9 +27,8 @@ class CaseManager
31
27
  @report.tail[:finish_time] = finish_time
32
28
  @report.tail[:duration] = finish_time - start_time
33
29
 
34
- verbose Rainbow("\n[INFO] Duration = #{format('%3.3f',(finish_time - start_time))}").yellow.bright
35
- verboseln Rainbow(" (#{finish_time})").yellow.bright
36
- verboseln '=' * @report.head[:tt_title].length
30
+ verbose Rainbow("\n==> Teuton: Duration=#{format('%3.3f',(finish_time - start_time))}").yellow.bright
31
+ verboseln Rainbow(" (#{finish_time})").yellow.bright
37
32
  verboseln ' '
38
33
 
39
34
  app = Application.instance
@@ -1,9 +1,9 @@
1
1
 
2
2
  group "GROUP NAME" do
3
3
 
4
- target "TARGET-1 DESCRIPTION"
5
- run "COMMAND-1"
6
- expect "TEXT-1"
4
+ target "TARGET.1 DESCRIPTION"
5
+ run "COMMAND.1"
6
+ expect "TEXT.1"
7
7
 
8
8
  end
9
9
 
@@ -1,4 +1,3 @@
1
- # frozen_string_literal: true
2
1
 
3
2
  require 'yaml'
4
3
  require 'json/pure'
@@ -29,9 +28,6 @@ module ConfigFileReader
29
28
  # Read YAML config file
30
29
  # @param filepath (String) Path to YAML config file
31
30
  # @return Hash with config data
32
- # rubocop:disable Metrics/MethodLength
33
- # rubocop:disable Metrics/AbcSize
34
- # rubocop:disable Security/YAMLLoad
35
31
  def self.read_yaml(filepath)
36
32
  begin
37
33
  data = YAML.load(File.open(filepath))
@@ -49,9 +45,6 @@ module ConfigFileReader
49
45
  read_included_files!(filepath, data)
50
46
  data
51
47
  end
52
- # rubocop:enable Metrics/MethodLength
53
- # rubocop:enable Metrics/AbcSize
54
- # rubocop:enable Security/YAMLLoad
55
48
 
56
49
  ##
57
50
  # Read JSON config file
@@ -71,7 +64,6 @@ module ConfigFileReader
71
64
  # Read all configuration files from "filepath" folder.
72
65
  # @param filepath (String) Folder with config files
73
66
  # @param data (Hash) Input configuration
74
- # rubocop:disable Security/YAMLLoad
75
67
  private_class_method def self.read_included_files!(filepath, data)
76
68
  return if data[:global][:tt_include].nil?
77
69
 
@@ -94,10 +86,7 @@ module ConfigFileReader
94
86
  end
95
87
  }
96
88
  end
97
- # rubocop:enable Security/YAMLLoad
98
89
 
99
- # rubocop:disable Metrics/MethodLength
100
- # rubocop:disable Metrics/AbcSize
101
90
  private_class_method def self.convert_string_keys_to_symbol(input)
102
91
  return input if input.class != Hash
103
92
 
@@ -116,6 +105,4 @@ module ConfigFileReader
116
105
  end
117
106
  output
118
107
  end
119
- # rubocop:enable Metrics/MethodLength
120
- # rubocop:enable Metrics/AbcSize
121
108
  end
@@ -1,4 +1,3 @@
1
- # frozen_string_literal: true
2
1
 
3
2
  require 'rainbow'
4
3
  require_relative '../application'
@@ -29,8 +28,6 @@ module NameFileFinder
29
28
  ##
30
29
  # Find project filenames from input folder path
31
30
  # @param folder_path (String)
32
- # rubocop:disable Metrics/AbcSize
33
- # rubocop:disable Metrics/MethodLength
34
31
  def self.find_filenames_from_directory(folder_path)
35
32
  # COMPLEX MODE: We use start.rb as main RB file
36
33
  script_path = File.join(folder_path, 'start.rb')
@@ -48,15 +45,10 @@ module NameFileFinder
48
45
 
49
46
  find_configfilename_from_directory(folder_path)
50
47
  end
51
- # rubocop:enable Metrics/AbcSize
52
- # rubocop:enable Metrics/MethodLength
53
48
 
54
49
  ##
55
50
  # Find project config filename from input folder path
56
51
  # @param folder_path (String)
57
- # rubocop:disable Metrics/AbcSize
58
- # rubocop:disable Metrics/MethodLength
59
- # rubocop:disable Style/IfUnlessModifier
60
52
  def self.find_configfilename_from_directory(folder_path)
61
53
  # COMPLEX MODE: We use config.yaml by default
62
54
  app = Application.instance
@@ -76,12 +68,7 @@ module NameFileFinder
76
68
  end
77
69
  app.config_path = config_path
78
70
  end
79
- # rubocop:enable Metrics/AbcSize
80
- # rubocop:enable Metrics/MethodLength
81
- # rubocop:enable Style/IfUnlessModifier
82
71
 
83
- # rubocop:disable Metrics/AbcSize
84
- # rubocop:disable Metrics/MethodLength
85
72
  def self.find_filenames_from_rb(script_path)
86
73
  # SIMPLE MODE: We use script_path as main RB file
87
74
  # This must be fullpath to DSL script file
@@ -99,12 +86,7 @@ module NameFileFinder
99
86
 
100
87
  find_configfilenames_from_rb(script_path)
101
88
  end
102
- # rubocop:enable Metrics/AbcSize
103
- # rubocop:enable Metrics/MethodLength
104
89
 
105
- # rubocop:disable Metrics/MethodLength
106
- # rubocop:disable Metrics/AbcSize
107
- # rubocop:disable Style/IfUnlessModifier
108
90
  def self.find_configfilenames_from_rb(script_path)
109
91
  # SIMPLE MODE: We use script_path as main RB file
110
92
  # This must be fullpath to DSL script file
@@ -126,33 +108,6 @@ module NameFileFinder
126
108
  end
127
109
  app.config_path = config_path
128
110
  end
129
- # rubocop:enable Metrics/MethodLength
130
- # rubocop:enable Metrics/AbcSize
131
- # rubocop:enable Style/IfUnlessModifier
132
-
133
- # def self.puts_input_info_on_screen
134
- # app = Application.instance
135
- #
136
- # verbose Rainbow('[INFO] ScriptPath => ').blue
137
- # verboseln Rainbow(trim(app.script_path)).blue.bright
138
- # verbose Rainbow('[INFO] ConfigPath => ').blue
139
- # verboseln Rainbow(trim(app.config_path)).blue.bright
140
- # verbose Rainbow('[INFO] Pwd => ').blue
141
- # verboseln Rainbow(app.running_basedir).blue.bright
142
- # verbose Rainbow('[INFO] TestName => ').blue
143
- # verboseln Rainbow(trim(app.test_name)).blue.bright
144
- # end
145
-
146
- ##
147
- # Trim string text when is too long
148
- # def self.trim(input)
149
- # return input unless input.to_s.start_with? Dir.pwd.to_s
150
- #
151
- # output = input.to_s
152
- # offset = (Dir.pwd).length + 1
153
- # output = "#{input[offset, input.size]}"
154
- # output.to_s
155
- # end
156
111
 
157
112
  def self.verboseln(text)
158
113
  verbose(text + "\n")
@@ -1,7 +1,6 @@
1
1
 
2
2
  require_relative '../application'
3
3
 
4
- # Define general use methods
5
4
  module Verbose
6
5
  def verboseln(text)
7
6
  verbose(text + "\n")
@@ -9,7 +8,7 @@ module Verbose
9
8
 
10
9
  def verbose(text)
11
10
  return if Application.instance.quiet?
12
-
11
+
13
12
  print text
14
13
  end
15
14
  end
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Teuton
3
- VERSION = '2.3.2'
3
+ VERSION = '2.3.3'
4
4
  APPNAME = 'teuton'
5
5
  GEMNAME = 'teuton'
6
6
  DOCKERNAME = "dvarrui/#{GEMNAME}"
data/lib/teuton.rb CHANGED
@@ -39,7 +39,7 @@ module Teuton
39
39
  require_relative app.script_path
40
40
  rescue SyntaxError => e
41
41
  puts e.to_s
42
- puts Rainbow.new("[ FAIL ] SyntaxError into file #{app.script_path}").red
42
+ puts Rainbow.new("==> [FAIL] SyntaxError into file #{app.script_path}").red
43
43
  end
44
44
  end
45
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teuton
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Vargas Ruiz