teuton 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/docs/CHANGELOG.md +2 -0
  3. data/docs/changelog/todo.md +2 -0
  4. data/docs/changelog/v2.6.md +4 -0
  5. data/docs/diagram.md +54 -0
  6. data/docs/learn/02-target.md +37 -12
  7. data/docs/learn/03-remote_hosts.md +1 -1
  8. data/docs/learn/04-config.md +1 -1
  9. data/docs/learn/06-cmd_check.md +1 -4
  10. data/docs/learn/07-target_weight.md +1 -3
  11. data/docs/learn/README.md +1 -1
  12. data/lib/teuton/{case_manager/case → case}/case.rb +9 -12
  13. data/lib/teuton/{case_manager/case → case}/config.rb +1 -1
  14. data/lib/teuton/{case_manager/case → case}/dsl/macro.rb +1 -1
  15. data/lib/teuton/case/dsl.rb +10 -0
  16. data/lib/teuton/{case_manager/case → case}/play.rb +5 -8
  17. data/lib/teuton/case_manager/case_manager.rb +9 -32
  18. data/lib/teuton/case_manager/dsl.rb +1 -1
  19. data/lib/teuton/case_manager/export_manager.rb +18 -4
  20. data/lib/teuton/case_manager/send_manager.rb +17 -0
  21. data/lib/teuton/case_manager/utils.rb +9 -4
  22. data/lib/teuton/check/laboratory.rb +1 -1
  23. data/lib/teuton/readme/readme.rb +1 -1
  24. data/lib/teuton/{case_manager/case/result → result}/ext_array.rb +5 -5
  25. data/lib/teuton/{case_manager/case/result → result}/result.rb +1 -1
  26. data/lib/teuton/version.rb +1 -1
  27. data/lib/teuton.rb +15 -15
  28. metadata +32 -29
  29. data/lib/teuton/case_manager/case/dsl/main.rb +0 -10
  30. data/lib/teuton/case_manager/case/main.rb +0 -7
  31. data/lib/teuton/case_manager/main.rb +0 -3
  32. /data/lib/teuton/{case_manager/case → case}/builtin/main.rb +0 -0
  33. /data/lib/teuton/{case_manager/case → case}/builtin/package.rb +0 -0
  34. /data/lib/teuton/{case_manager/case → case}/builtin/service.rb +0 -0
  35. /data/lib/teuton/{case_manager/case → case}/builtin/teuton_file.rb +0 -0
  36. /data/lib/teuton/{case_manager/case → case}/builtin/teuton_host.rb +0 -0
  37. /data/lib/teuton/{case_manager/case → case}/builtin/user.rb +0 -0
  38. /data/lib/teuton/{case_manager/case → case}/close.rb +0 -0
  39. /data/lib/teuton/{case_manager/case → case}/dsl/expect.rb +0 -0
  40. /data/lib/teuton/{case_manager/case → case}/dsl/getset.rb +0 -0
  41. /data/lib/teuton/{case_manager/case → case}/dsl/goto.rb +0 -0
  42. /data/lib/teuton/{case_manager/case → case}/dsl/log.rb +0 -0
  43. /data/lib/teuton/{case_manager/case → case}/dsl/send.rb +0 -0
  44. /data/lib/teuton/{case_manager/case → case}/dsl/target.rb +0 -0
  45. /data/lib/teuton/{case_manager/case → case}/dsl/unique.rb +0 -0
  46. /data/lib/teuton/{case_manager/case → case}/runner.rb +0 -0
  47. /data/lib/teuton/{report/show.rb → case_manager/show_report.rb} +0 -0
  48. /data/lib/teuton/{case_manager/case/result → result}/ext_compare.rb +0 -0
  49. /data/lib/teuton/{case_manager/case/result → result}/ext_filter.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f53359ed5f8eae1b3a798630c5d56ae46076073bface7d3788de57b245a80cb
4
- data.tar.gz: 366afd9ccee6db9bdf5756fe5954050231681763489bab11b1841e9279998c08
3
+ metadata.gz: 8d4dba357b30b42efc7a32e8389bd6c7dfa98e835f46907d2f4a3dbe7e5942e8
4
+ data.tar.gz: 0bb5add96b17f02f791568d02e2fc8ca698cc9138c9e25e9075d2e686fb6ba88
5
5
  SHA512:
6
- metadata.gz: a40866560ec0d622b48322c0689dfe36cb9820cf565ce4258a8b71d38a1a3cc88e57f68e208c0d2a6c1a0787b7a2698af0446757bb2167fdf04d2bcd8002178f
7
- data.tar.gz: 288e6105576a15ac25eb20d298bb552b77347b65a3a2df6632d0ef26063061c77c32ef02af88a6f7244790df9573b6e79d7e9fee8b0606006a41b0cd171a51c5
6
+ metadata.gz: 694a956fde1cb64e76d78bf4513df7f011001654aef7d305c9ac54ea0df6748b945d8b0b69514c7172c2e56404093824dd59636f54e647b33d0b068d9d3ef5eb
7
+ data.tar.gz: 4a8d0fa96fdc396d2da7cd129b1458525abe0d6acb15944f965a3facc692980cd76c33d2321a4997a5e03e3af087eea020054ff308b62d37a9b848778d6c8b79
data/docs/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ * [version 2.5](changelog/v2.5.md)
6
+ * [version 2.4](changelog/v2.4.md)
5
7
  * [version 2.3](changelog/v2.3.md)
6
8
  * [version 2.2](changelog/v2.2.md)
7
9
  * [version 2.1](changelog/v2.1.md)
@@ -1,10 +1,12 @@
1
1
 
2
+
2
3
  ## TO-DO
3
4
 
4
5
  New features:
5
6
  - Parse new input format, and detect parse errors
6
7
  - Teuton readme --lang=es
7
8
  - Export files with other langs
9
+ - Snode Dockerfile
8
10
 
9
11
  Revise:
10
12
  * verify get(:key) and get('key') works fine!
@@ -0,0 +1,4 @@
1
+
2
+ ## [2.6.0]
3
+
4
+ - [ADD] When running local or SSH commands, stdout and stderr are captured and readed by "expect" sentence.
data/docs/diagram.md ADDED
@@ -0,0 +1,54 @@
1
+ [<<back](../README.md)
2
+
3
+ # Diagram
4
+
5
+ ```mermaid
6
+ flowchart TB
7
+
8
+ subgraph user
9
+ CLI --> Teuton
10
+ end
11
+
12
+ subgraph "create\nnew\nproject"
13
+ Teuton -- create --> Skeleton("Sekeleton\nFiles")
14
+ end
15
+
16
+ subgraph "check\nproject files"
17
+ Teuton -- check --> Laboratory("Laboratory\nDSL\nShow\nBuiltin!")
18
+ end
19
+
20
+ subgraph "create readme\nfrom project"
21
+ Teuton -- readme --> Readme("Readme\nDSL\nLang!")
22
+ end
23
+
24
+ subgraph manager
25
+ Teuton -- require --> manager/DSL
26
+ manager/DSL -- play --> CaseManager("CaseManager\ncheck_cases\nExportManager\nSendManager\nShowReport")
27
+ ReportManager --> HallOfFame
28
+ end
29
+
30
+ subgraph utils
31
+ manager/DSL -- use/macros/groups --> Application("Application\nNameFileFinder")
32
+ Readme --> ConfigFileReader
33
+ Laboratory --> ConfigFileReader
34
+ CaseManager --> ConfigFileReader
35
+ Verbose
36
+ end
37
+
38
+ subgraph "case folder"
39
+ CaseManager --> Case("Case\nConfig\nClose\nPlay\nRunner")
40
+ Case --> case/DSL
41
+ end
42
+
43
+ subgraph "result class"
44
+ Laboratory --> Result
45
+ Readme --> Result("Result\next_array\next_compare\next_filter")
46
+ Case --> Result
47
+ end
48
+
49
+ subgraph report
50
+ CaseManager --> Report
51
+ Report --> Formatter
52
+ Formatter --> files/template
53
+ end
54
+ ```
@@ -15,13 +15,31 @@ group "Learn about targets" do
15
15
 
16
16
  target "Create user david"
17
17
  run "id david"
18
- expect "david"
18
+ expect ["uid=", "(david)", "gid="]
19
+
20
+ target "Delete user vader"
21
+ run "id vader"
22
+ expect ["id:", "vader", "no exist"]
19
23
 
20
24
  end
21
25
  ```
22
26
 
23
27
  > In this example, our localhost's OS is GNU/Linux (or any other compatible OS) because the command executed is `id david`.
24
28
 
29
+ When the user exists, we expect this words: `uid=, (david), gid=`.
30
+
31
+ ```
32
+ ❯ id david
33
+ uid=1000(david) gid=1000(david) grupos=1000(david)
34
+ ```
35
+
36
+ But when user does not exist, we expect different words: `id:, vader, no exist`.
37
+
38
+ ```
39
+ ❯ id vader
40
+ id: «vader»: no existe ese usuario
41
+ ```
42
+
25
43
  ## Execution section
26
44
 
27
45
  When we run this teuton test, the execution section (`play`) is processed. This seccion now contains this:
@@ -41,7 +59,7 @@ end
41
59
  Execute this command to run the test:
42
60
 
43
61
  ```console
44
- > teuton run examples/01-target
62
+ > teuton run examples/02-target
45
63
 
46
64
  CASE RESULTS
47
65
  +------+-----------+-------+-------+
@@ -54,7 +72,7 @@ Report files are created into `var/02-target/` folder:
54
72
 
55
73
  ```console
56
74
  var
57
- └── 01-target
75
+ └── 02-target
58
76
  ├── case-01.txt
59
77
  ├── moodle.csv
60
78
  └── resume.txt
@@ -63,35 +81,42 @@ var
63
81
  Let's see one report:
64
82
 
65
83
  ```
66
- > more var/02-target/case-01.txt
67
-
84
+ cat var/02-target/case-01.txt
68
85
  CONFIGURATION
69
86
  +-------------+-----------+
70
87
  | tt_members | anonymous |
71
88
  | tt_sequence | false |
72
89
  | tt_skip | false |
73
- | tt_testname | 01-target |
90
+ | tt_testname | 02-target |
74
91
  +-------------+-----------+
75
92
 
93
+
76
94
  GROUPS
77
95
  - Learn about targets
78
96
  01 (1.0/1.0)
79
97
  Description : Create user david
80
98
  Command : id david
81
99
  Duration : 0.002 (local)
82
- Alterations : find(david) & count
100
+ Alterations : find(uid=) & find((david)) & find(gid=) & count
101
+ Expected : Greater than 0 (String)
102
+ Result : 1 (Integer)
103
+ 02 (1.0/1.0)
104
+ Description : Delete user vader
105
+ Command : id vader
106
+ Duration : 0.002 (local)
107
+ Alterations : find(id:) & find(vader) & find(no exist) & count
83
108
  Expected : Greater than 0 (String)
84
109
  Result : 1 (Integer)
85
110
 
86
111
  RESULTS
87
112
  +--------------+---------------------------+
88
113
  | case_id | 01 |
89
- | start_time | 2022-12-24 13:31:28 +0000 |
90
- | finish_time | 2022-12-24 13:31:28 +0000 |
91
- | duration | 0.001880141 |
114
+ | start_time | 2023-04-10 09:09:30 +0100 |
115
+ | finish_time | 2023-04-10 09:09:30 +0100 |
116
+ | duration | 0.003863242 |
92
117
  | unique_fault | 0 |
93
- | max_weight | 1.0 |
94
- | good_weight | 1.0 |
118
+ | max_weight | 2.0 |
119
+ | good_weight | 2.0 |
95
120
  | fail_weight | 0.0 |
96
121
  | fail_counter | 0 |
97
122
  | grade | 100 |
@@ -43,7 +43,7 @@ Define 1 target (item to be checked):
43
43
  group "Remote hosts" do
44
44
  target "Create user david"
45
45
  run "id david", on: :host1
46
- expect "david"
46
+ expect [ "uid=", "(david)", "gid=" ]
47
47
  end
48
48
  ```
49
49
 
@@ -24,7 +24,7 @@ group "Reading params from config file" do
24
24
 
25
25
  target "Create user #{get(:username)}"
26
26
  run "id #{get(:username)}"
27
- expect get(:username)
27
+ expect [ "uid=", "("+get(:username)+")", "gid=" ]
28
28
 
29
29
  end
30
30
  ```
@@ -14,7 +14,7 @@ Check Teuton test syntax and show statistics.
14
14
  (001) target Create user get(username)
15
15
  weight 1.0
16
16
  run 'id get(username)' on host1
17
- expect get(username) (String)
17
+ expect ["uid=", "(get(username))", "gid="] (Array)
18
18
 
19
19
  +----------------------------+
20
20
  | GROUP: Using file: network |
@@ -44,7 +44,4 @@ Check Teuton test syntax and show statistics.
44
44
  | * hostname | 2 |
45
45
  | Sets | 0 |
46
46
  +-------------+-------+
47
- +----------------------+
48
- | Revising CONFIG file |
49
- +----------------------+
50
47
  ```
@@ -19,15 +19,13 @@ end
19
19
  ```
20
20
 
21
21
  ```
22
- ❯ teuton check examples/07-target_weight
23
-
24
22
  +--------------------------+
25
23
  | GROUP: Using file: users |
26
24
  +--------------------------+
27
25
  (001) target Create user get(username)
28
26
  weight 1.0
29
27
  run 'id get(username)' on host1
30
- expect get(username) (String)
28
+ expect ["uid=", "(get(username))", "gid="] (Array)
31
29
 
32
30
  +----------------------------+
33
31
  | GROUP: Using file: network |
data/docs/learn/README.md CHANGED
@@ -17,7 +17,7 @@ Learn how write your own Teuton tests:
17
17
  1. [Export other FORMATS](11-export.md)
18
18
  1. [PRESERVE old reports](12-preserve.md)
19
19
  1. [Hide FEEDBACK from reports](13-feedback.md)
20
- 1. [MOODLE ID](14-moodle_id.md)
20
+ 1. [MOODLE](14-moodle_id.md)
21
21
  1. [Build README from test](15-readme.md)
22
22
  1. [INCLUDE more configuration files](16-include.md)
23
23
  1. [ALIAS](17-alias.md)
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../../application"
4
- require_relative "../../report/report"
5
- require_relative "../../report/show"
6
- require_relative "../utils"
7
- require_relative "main"
8
- require_relative "result/result"
3
+ require_relative "../application"
4
+ require_relative "../report/report"
5
+ require_relative "../case_manager/utils"
6
+ require_relative "../result/result"
7
+ require_relative "dsl"
8
+ require_relative "config"
9
+ require_relative "close"
10
+ require_relative "play"
11
+ require_relative "runner"
9
12
  require_relative "builtin/main"
10
13
 
11
- # TODO: split Case class into several classes:
12
- # * Case, Action?, Session?, RunCommand class
13
-
14
14
  # Case class
15
15
  # * initialize
16
16
  # * export
@@ -29,9 +29,6 @@ class Case
29
29
  attr_reader :skip
30
30
  @@id = "01" # First case ID value
31
31
 
32
- ##
33
- # Initialize case from specified config
34
- # @param config (Hash)
35
32
  def initialize(config)
36
33
  app = Application.instance
37
34
  @config = Case::Config.new(local: config, global: app.global)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../../application"
3
+ require_relative "../application"
4
4
 
5
5
  # Class Case::Config
6
6
  # * get
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../../../application"
3
+ require_relative "../../application"
4
4
 
5
5
  # DSL module methods: assert, missing_method
6
6
  module DSL
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "dsl/expect"
4
+ require_relative "dsl/getset"
5
+ require_relative "dsl/goto"
6
+ require_relative "dsl/log"
7
+ require_relative "dsl/macro"
8
+ require_relative "dsl/send"
9
+ require_relative "dsl/target"
10
+ require_relative "dsl/unique"
@@ -13,15 +13,11 @@ class Case
13
13
  return false
14
14
  end
15
15
  start_time = Time.now
16
- if get(:tt_sequence) == true
17
- play_in_sequence
18
- else
19
- play_in_parallel
20
- end
16
+ play_groups_in_sequence
21
17
  fill_report(start_time, Time.now)
22
18
  close_opened_sessions
23
19
  end
24
- alias start play
20
+ alias_method :start, :play
25
21
 
26
22
  def close_opened_sessions
27
23
  @sessions.each_value do |s|
@@ -31,14 +27,15 @@ class Case
31
27
 
32
28
  private
33
29
 
34
- def play_in_parallel
30
+ def play_groups_in_sequence
31
+ verboseln "\n=> Starting case [#{@config.get(:tt_members)}]" if get(:tt_sequence) == true
35
32
  @groups.each do |t|
36
33
  @action[:groupname] = t[:name]
37
34
  instance_eval(&t[:block])
38
35
  end
39
36
  end
40
37
 
41
- def play_in_sequence
38
+ def play_groups_in_parallel
42
39
  verboseln "Starting case [#{@config.get(:tt_members)}]"
43
40
  @groups.each do |t|
44
41
  verbose "* Processing [#{t[:name]}] "
@@ -1,12 +1,13 @@
1
- require "rainbow"
2
- require "singleton"
3
1
  require_relative "../application"
2
+ require_relative "../case/case"
4
3
  require_relative "../report/report"
5
- require_relative "../report/show"
6
4
  require_relative "../utils/configfile_reader"
7
- require_relative "case/case"
8
5
  require_relative "export_manager"
9
- require_relative "main"
6
+ require_relative "send_manager"
7
+ require_relative "show_report"
8
+ require_relative "check_cases"
9
+ require_relative "report"
10
+ require_relative "utils"
10
11
 
11
12
  # This class does all the job
12
13
  # Organize the hole job, sending orders to others classes
@@ -18,7 +19,6 @@ require_relative "main"
18
19
  # * case_manager/hall_of_fame
19
20
  # * case_manager/report
20
21
  class CaseManager
21
- include Singleton
22
22
  include Utils
23
23
  attr_reader :report, :cases
24
24
 
@@ -30,7 +30,6 @@ class CaseManager
30
30
 
31
31
  ##
32
32
  # Execute "play" order: Start every single case test
33
- # @param block (Block)
34
33
  def play(&block)
35
34
  check_cases!
36
35
  instance_eval(&block)
@@ -42,37 +41,15 @@ class CaseManager
42
41
  export(format: i.to_sym) unless i.nil?
43
42
  end
44
43
 
45
- ##
46
- # Execute "export" order: Export every case report
47
- # @param args (Hash) Export options
48
44
  def export(args = {})
49
- if args.class != Hash
50
- puts Rainbow("[ERROR] Argument error with 'export'!").red
51
- puts Rainbow(" Code : CaseManager#export").red
52
- puts Rainbow(" Line : export #{args}").red
53
- puts Rainbow(" Use : export format: 'txt'").red
54
- puts ""
55
- exit 1
56
- end
57
- ExportManager.run(@report, @cases, args)
45
+ ExportManager.new.call(@report, @cases, args)
58
46
  end
59
47
 
60
- ##
61
- # Execute "send" order: Send every case report
62
- # @param args (Hash) Send options
63
48
  def send(args = {})
64
- threads = []
65
- puts ""
66
- puts Rainbow("-" * 50).green
67
- puts Rainbow("Sending files...#{args}").color(:green)
68
- @cases.each { |c| threads << Thread.new { c.send(args) } }
69
- threads.each(&:join)
70
- puts Rainbow("Sending finished!").color(:green)
71
- puts Rainbow("-" * 50).green
49
+ SendManager.new.call(@cases, args)
72
50
  end
73
51
 
74
52
  def show(options = {verbose: 1})
75
- verbose = options[:verbose]
76
- ShowReport.new(@report).call(verbose)
53
+ ShowReport.new(@report).call(options[:verbose])
77
54
  end
78
55
  end
@@ -35,6 +35,6 @@ alias task group
35
35
  # Start test
36
36
  # @param block (Block) Extra code executed at the end.
37
37
  def play(&block)
38
- CaseManager.instance.play(&block)
38
+ CaseManager.new.play(&block)
39
39
  end
40
40
  alias start play
@@ -1,14 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "rainbow"
3
4
  require_relative "../application"
4
5
 
5
- module ExportManager
6
+ ##
7
+ # Execute "export" order: Export every case report
8
+ # @param args (Hash) Export options
9
+ class ExportManager
6
10
  ##
7
11
  # Run export function
8
12
  # @param main_report (Report)
9
13
  # @param cases (Array)
10
14
  # @param input (Hash) Selected export options
11
- def self.run(main_report, cases, args)
15
+ def call(main_report, cases, args)
16
+ if args.class != Hash
17
+ puts Rainbow("[ERROR] Export argument error!").red
18
+ puts Rainbow(" Revise: export #{args}").red
19
+ puts Rainbow(" Use : export format: 'txt'").red
20
+ puts ""
21
+ exit 1
22
+ end
23
+
12
24
  options = strings2symbols(args)
13
25
  if options[:format].nil?
14
26
  options[:format] = Application.instance.default[:format]
@@ -26,10 +38,12 @@ module ExportManager
26
38
  preserve_files if options[:preserve] == true
27
39
  end
28
40
 
41
+ private
42
+
29
43
  ##
30
44
  # Convert Hash String values into Symbol values
31
45
  # @param input (Hash)
32
- private_class_method def self.strings2symbols(input)
46
+ def strings2symbols(input)
33
47
  args = {}
34
48
  input.each_pair do |key, value|
35
49
  args[key] = if value.instance_of? String
@@ -43,7 +57,7 @@ module ExportManager
43
57
 
44
58
  ##
45
59
  # Preserve output files for current project execution
46
- private_class_method def self.preserve_files
60
+ def preserve_files
47
61
  app = Application.instance
48
62
  t = Time.now
49
63
  data = {year: t.year, month: t.month, day: t.day, hour: t.hour, min: t.min, sec: t.sec}
@@ -0,0 +1,17 @@
1
+ require "rainbow"
2
+
3
+ class SendManager
4
+ ##
5
+ # Execute "send" order: Send every case report
6
+ # @param args (Hash) Send options
7
+ def call(cases, args)
8
+ threads = []
9
+ puts ""
10
+ puts Rainbow("-" * 50).green
11
+ puts Rainbow("Sending files...#{args}").color(:green)
12
+ cases.each { |c| threads << Thread.new { c.send(args) } }
13
+ threads.each(&:join)
14
+ puts Rainbow("Sending finished!").color(:green)
15
+ puts Rainbow("-" * 50).green
16
+ end
17
+ end
@@ -1,5 +1,7 @@
1
1
  require_relative "../application"
2
2
  require "fileutils"
3
+ require "open3"
4
+ require "rainbow"
3
5
 
4
6
  module Utils
5
7
  def ensure_dir(dirname)
@@ -33,11 +35,14 @@ module Utils
33
35
  return {exitstatus: 0, content: ""} if Application.instance.debug
34
36
 
35
37
  begin
36
- text = `#{cmd}`
37
- exitstatus = $CHILD_STATUS.exitstatus
38
+ # text = `#{cmd}`
39
+ # exitstatus = $CHILD_STATUS.exitstatus
40
+ text, status = Open3.capture2e(cmd)
41
+ exitstatus = status.exitstatus
38
42
  rescue => e
39
- verbose "!"
40
- puts("[ERROR] #{e}: Local exec: #{cmd}")
43
+ verbose Rainbow("!").green
44
+ text = e.to_s
45
+ exitstatus = 1
41
46
  end
42
47
  content = encode_and_split(encoding, text)
43
48
  {exitstatus: exitstatus, content: content}
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../application"
4
- require_relative "../case_manager/case/result/result"
4
+ require_relative "../result/result"
5
5
  require_relative "show"
6
6
  require_relative "dsl"
7
7
  require_relative "builtin"
@@ -1,6 +1,6 @@
1
1
  require_relative "../application"
2
2
  require_relative "../utils/configfile_reader"
3
- require_relative "../case_manager/case/result/result"
3
+ require_relative "../result/result"
4
4
  require_relative "../version"
5
5
  require_relative "dsl"
6
6
  require_relative "lang"
@@ -35,9 +35,9 @@ class Result
35
35
  @content.empty
36
36
  end
37
37
 
38
- alias count! count
39
- alias length count
40
- alias len count
41
- alias size count
42
- alias empty? empty
38
+ alias_method :count!, :count
39
+ alias_method :length, :count
40
+ alias_method :len, :count
41
+ alias_method :size, :count
42
+ alias_method :empty?, :empty
43
43
  end
@@ -66,7 +66,7 @@ class Result
66
66
  @content_backup = temp
67
67
  @content = temp.clone
68
68
  end
69
- alias restore! restore
69
+ alias_method :restore!, :restore
70
70
 
71
71
  def value
72
72
  @content[0]
@@ -1,5 +1,5 @@
1
1
  module Teuton
2
- VERSION = "2.5.0"
2
+ VERSION = "2.6.0"
3
3
  APPNAME = "teuton"
4
4
  GEMNAME = "teuton"
5
5
  DOCKERNAME = "dvarrui/#{GEMNAME}"
data/lib/teuton.rb CHANGED
@@ -6,34 +6,34 @@ module Teuton
6
6
  Skeleton.create(path_to_new_dir)
7
7
  end
8
8
 
9
+ def self.check(projectpath, options = {})
10
+ Application.instance.add_input_params(projectpath, options)
11
+ require_dsl_and_script("teuton/check/laboratory") # Define DSL
12
+
13
+ app = Application.instance
14
+ lab = Laboratory.new(app.script_path, app.config_path)
15
+ if options[:onlyconfig]
16
+ lab.show_onlyconfig
17
+ else
18
+ lab.show
19
+ end
20
+ end
21
+
9
22
  def self.run(projectpath, options = {})
10
23
  Application.instance.add_input_params(projectpath, options)
11
- require_dsl_and_script("teuton/case_manager/dsl") # Define DSL keywords
24
+ require_dsl_and_script("teuton/case_manager/dsl") # Define DSL
12
25
  end
13
26
 
14
27
  def self.readme(projectpath, options = {})
15
28
  # Create Readme file for a teuton test
16
29
  Application.instance.add_input_params(projectpath, options)
17
- require_dsl_and_script("teuton/readme/readme") # Define DSL keywords
30
+ require_dsl_and_script("teuton/readme/readme") # Define DSL
18
31
 
19
32
  app = Application.instance
20
33
  readme = Readme.new(app.script_path, app.config_path)
21
34
  readme.show
22
35
  end
23
36
 
24
- def self.check(projectpath, options = {})
25
- Application.instance.add_input_params(projectpath, options)
26
- require_dsl_and_script("teuton/check/laboratory") # Define DSL keywords
27
-
28
- app = Application.instance
29
- lab = Laboratory.new(app.script_path, app.config_path)
30
- if options[:onlyconfig]
31
- lab.show_onlyconfig
32
- else
33
- lab.show
34
- end
35
- end
36
-
37
37
  private_class_method def self.require_dsl_and_script(dslpath)
38
38
  app = Application.instance
39
39
  require_relative dslpath
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teuton
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Vargas Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-05 00:00:00.000000000 Z
11
+ date: 2023-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -132,10 +132,12 @@ extra_rdoc_files:
132
132
  - docs/changelog/v2.3.md
133
133
  - docs/changelog/v2.4.md
134
134
  - docs/changelog/v2.5.md
135
+ - docs/changelog/v2.6.md
135
136
  - docs/changelog/version2.1.md
136
137
  - docs/commands/README.md
137
138
  - docs/commands/example_check.md
138
139
  - docs/commands/example_run.md
140
+ - docs/diagram.md
139
141
  - docs/dsl/README.md
140
142
  - docs/dsl/expect.md
141
143
  - docs/dsl/export.md
@@ -199,10 +201,12 @@ files:
199
201
  - docs/changelog/v2.3.md
200
202
  - docs/changelog/v2.4.md
201
203
  - docs/changelog/v2.5.md
204
+ - docs/changelog/v2.6.md
202
205
  - docs/changelog/version2.1.md
203
206
  - docs/commands/README.md
204
207
  - docs/commands/example_check.md
205
208
  - docs/commands/example_run.md
209
+ - docs/diagram.md
206
210
  - docs/dsl/README.md
207
211
  - docs/dsl/expect.md
208
212
  - docs/dsl/export.md
@@ -256,38 +260,34 @@ files:
256
260
  - docs/videos.md
257
261
  - lib/teuton.rb
258
262
  - lib/teuton/application.rb
259
- - lib/teuton/case_manager/case/builtin/main.rb
260
- - lib/teuton/case_manager/case/builtin/package.rb
261
- - lib/teuton/case_manager/case/builtin/service.rb
262
- - lib/teuton/case_manager/case/builtin/teuton_file.rb
263
- - lib/teuton/case_manager/case/builtin/teuton_host.rb
264
- - lib/teuton/case_manager/case/builtin/user.rb
265
- - lib/teuton/case_manager/case/case.rb
266
- - lib/teuton/case_manager/case/close.rb
267
- - lib/teuton/case_manager/case/config.rb
268
- - lib/teuton/case_manager/case/dsl/expect.rb
269
- - lib/teuton/case_manager/case/dsl/getset.rb
270
- - lib/teuton/case_manager/case/dsl/goto.rb
271
- - lib/teuton/case_manager/case/dsl/log.rb
272
- - lib/teuton/case_manager/case/dsl/macro.rb
273
- - lib/teuton/case_manager/case/dsl/main.rb
274
- - lib/teuton/case_manager/case/dsl/send.rb
275
- - lib/teuton/case_manager/case/dsl/target.rb
276
- - lib/teuton/case_manager/case/dsl/unique.rb
277
- - lib/teuton/case_manager/case/main.rb
278
- - lib/teuton/case_manager/case/play.rb
279
- - lib/teuton/case_manager/case/result/ext_array.rb
280
- - lib/teuton/case_manager/case/result/ext_compare.rb
281
- - lib/teuton/case_manager/case/result/ext_filter.rb
282
- - lib/teuton/case_manager/case/result/result.rb
283
- - lib/teuton/case_manager/case/runner.rb
263
+ - lib/teuton/case/builtin/main.rb
264
+ - lib/teuton/case/builtin/package.rb
265
+ - lib/teuton/case/builtin/service.rb
266
+ - lib/teuton/case/builtin/teuton_file.rb
267
+ - lib/teuton/case/builtin/teuton_host.rb
268
+ - lib/teuton/case/builtin/user.rb
269
+ - lib/teuton/case/case.rb
270
+ - lib/teuton/case/close.rb
271
+ - lib/teuton/case/config.rb
272
+ - lib/teuton/case/dsl.rb
273
+ - lib/teuton/case/dsl/expect.rb
274
+ - lib/teuton/case/dsl/getset.rb
275
+ - lib/teuton/case/dsl/goto.rb
276
+ - lib/teuton/case/dsl/log.rb
277
+ - lib/teuton/case/dsl/macro.rb
278
+ - lib/teuton/case/dsl/send.rb
279
+ - lib/teuton/case/dsl/target.rb
280
+ - lib/teuton/case/dsl/unique.rb
281
+ - lib/teuton/case/play.rb
282
+ - lib/teuton/case/runner.rb
284
283
  - lib/teuton/case_manager/case_manager.rb
285
284
  - lib/teuton/case_manager/check_cases.rb
286
285
  - lib/teuton/case_manager/dsl.rb
287
286
  - lib/teuton/case_manager/export_manager.rb
288
287
  - lib/teuton/case_manager/hall_of_fame.rb
289
- - lib/teuton/case_manager/main.rb
290
288
  - lib/teuton/case_manager/report.rb
289
+ - lib/teuton/case_manager/send_manager.rb
290
+ - lib/teuton/case_manager/show_report.rb
291
291
  - lib/teuton/case_manager/utils.rb
292
292
  - lib/teuton/check/builtin.rb
293
293
  - lib/teuton/check/dsl.rb
@@ -319,7 +319,10 @@ files:
319
319
  - lib/teuton/report/formatter/resume/txt.rb
320
320
  - lib/teuton/report/formatter/resume/yaml.rb
321
321
  - lib/teuton/report/report.rb
322
- - lib/teuton/report/show.rb
322
+ - lib/teuton/result/ext_array.rb
323
+ - lib/teuton/result/ext_compare.rb
324
+ - lib/teuton/result/ext_filter.rb
325
+ - lib/teuton/result/result.rb
323
326
  - lib/teuton/skeleton.rb
324
327
  - lib/teuton/utils/configfile_reader.rb
325
328
  - lib/teuton/utils/name_file_finder.rb
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "expect"
4
- require_relative "getset"
5
- require_relative "goto"
6
- require_relative "log"
7
- require_relative "macro"
8
- require_relative "send"
9
- require_relative "target"
10
- require_relative "unique"
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "dsl/main"
4
- require_relative "config"
5
- require_relative "close"
6
- require_relative "play"
7
- require_relative "runner"
@@ -1,3 +0,0 @@
1
- require_relative "check_cases"
2
- require_relative "report"
3
- require_relative "utils"
File without changes
File without changes
File without changes
File without changes
File without changes