teuton 2.1.8 → 2.1.9

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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -8
  3. data/bin/check_teuton +43 -0
  4. data/docs/changelog/contributions.md +32 -0
  5. data/docs/changelog/v2.1.md +22 -0
  6. data/docs/changelog/v2.2.md +29 -0
  7. data/docs/commands/README.md +105 -7
  8. data/docs/commands/example_check.md +54 -0
  9. data/docs/commands/example_run.md +112 -0
  10. data/docs/dsl/README.md +11 -9
  11. data/docs/dsl/definition/expect.md +25 -21
  12. data/docs/dsl/definition/group.md +5 -1
  13. data/docs/dsl/definition/result.md +45 -34
  14. data/docs/dsl/definition/run_local.md +34 -0
  15. data/docs/dsl/definition/run_remote.md +119 -0
  16. data/docs/dsl/definition/target.md +6 -0
  17. data/docs/dsl/execution/export.md +27 -19
  18. data/docs/dsl/execution/play.md +4 -0
  19. data/docs/dsl/execution/send.md +21 -2
  20. data/docs/dsl/execution/show.md +13 -8
  21. data/docs/dsl/setting/get.md +24 -8
  22. data/docs/dsl/setting/set.md +8 -3
  23. data/docs/install/README.md +19 -26
  24. data/docs/install/modes_of_use.md +27 -26
  25. data/docs/install/scripts.md +53 -36
  26. data/docs/install/vagrant_docker.md +56 -0
  27. data/docs/learn/README.md +13 -6
  28. data/docs/learn/example-01-target.md +78 -61
  29. data/docs/learn/example-02-config.md +152 -0
  30. data/docs/learn/example-03-remote-hosts.md +31 -25
  31. data/docs/learn/example-04-use.md +23 -17
  32. data/docs/learn/example-05-debug.md +24 -17
  33. data/docs/learn/example-06-log.md +70 -0
  34. data/lib/teuton/application.rb +7 -4
  35. data/lib/teuton/case_manager/case/case.rb +4 -1
  36. data/lib/teuton/case_manager/case/dsl/expect.rb +3 -1
  37. data/lib/teuton/case_manager/case/dsl/goto.rb +12 -7
  38. data/lib/teuton/case_manager/case/dsl/macro.rb +38 -0
  39. data/lib/teuton/case_manager/case/dsl/main.rb +1 -2
  40. data/lib/teuton/case_manager/case/dsl/target.rb +1 -1
  41. data/lib/teuton/case_manager/case/runner.rb +7 -7
  42. data/lib/teuton/case_manager/case_manager.rb +1 -20
  43. data/lib/teuton/case_manager/check_cases.rb +12 -2
  44. data/lib/teuton/case_manager/dsl.rb +4 -6
  45. data/lib/teuton/case_manager/export_manager.rb +29 -3
  46. data/lib/teuton/case_manager/report.rb +29 -8
  47. data/lib/teuton/case_manager/show.rb +8 -4
  48. data/lib/teuton/cli.rb +1 -0
  49. data/lib/teuton/cli/play.rb +1 -0
  50. data/lib/teuton/cli/version.rb +1 -4
  51. data/lib/teuton/files/config.yaml +0 -1
  52. data/lib/teuton/files/start.rb +1 -1
  53. data/lib/teuton/files/template/case.html +135 -0
  54. data/lib/teuton/files/template/resume.html +115 -0
  55. data/lib/teuton/project/laboratory/builtin.rb +2 -1
  56. data/lib/teuton/project/laboratory/dsl.rb +13 -15
  57. data/lib/teuton/project/laboratory/laboratory.rb +5 -1
  58. data/lib/teuton/project/laboratory/show.rb +21 -13
  59. data/lib/teuton/project/name_file_finder.rb +6 -1
  60. data/lib/teuton/project/project.rb +7 -3
  61. data/lib/teuton/project/readme/dsl.rb +3 -1
  62. data/lib/teuton/project/readme/readme.rb +37 -26
  63. data/lib/teuton/project/skeleton.rb +20 -4
  64. data/lib/teuton/report/close.rb +15 -11
  65. data/lib/teuton/report/formatter/formatter_factory.rb +10 -6
  66. data/lib/teuton/report/formatter/html_formatter.rb +16 -79
  67. data/lib/teuton/report/formatter/resume_html_formatter.rb +39 -0
  68. data/lib/teuton/report/formatter/resume_yaml_formatter.rb +7 -1
  69. data/lib/teuton/report/report.rb +5 -4
  70. data/lib/teuton/report/show.rb +55 -26
  71. metadata +26 -39
  72. data/docs/changelog/todo.md +0 -46
  73. data/docs/commands/create_skeleton.md +0 -31
  74. data/docs/commands/help.md +0 -13
  75. data/docs/commands/revise_test.md +0 -46
  76. data/docs/commands/run_test_unit.md +0 -78
  77. data/docs/commands/show_version.md +0 -9
  78. data/docs/developers/01-telnet.md +0 -121
  79. data/docs/developers/02-ssh.md +0 -93
  80. data/docs/developers/03-encoding.md +0 -153
  81. data/docs/developers/comparative.md +0 -17
  82. data/docs/dsl/_Sidebar.md +0 -30
  83. data/docs/dsl/definition/goto.md +0 -112
  84. data/docs/dsl/definition/run.md +0 -23
  85. data/docs/install/tested_os.md +0 -25
  86. data/docs/install/vagrant.md +0 -9
  87. data/docs/learn/example-02-configfile.md +0 -174
  88. data/docs/learn/quick-demo.md +0 -170
  89. data/lib/teuton/case_manager/case/dsl/check.rb +0 -24
  90. data/lib/teuton/case_manager/case/dsl/missing.rb +0 -12
  91. data/lib/teuton/files/gitignore +0 -2
@@ -1,170 +0,0 @@
1
-
2
- [<< back](README.md)
3
-
4
- # Quick demo
5
-
6
- Every TEUTON challenge (Test Unit) consists of 2 files.
7
- Let's look at example [learn-03-remote-hosts](examples/learn-03-remote-hosts):
8
-
9
- | File | Description |
10
- | ----------- | ------------------- |
11
- | start.rb | Defines TEUTON test |
12
- | config.yaml | Configuration file |
13
-
14
- ## Running
15
-
16
- * Run this demo with `teuton` command: `teuton examples/learn-03-remote-hosts`.
17
- * During execution, progress is showed on screen.
18
-
19
- ```
20
- $ teuton examples/learn-03-remote-hosts
21
-
22
- [INFO] ScriptPath => examples/learn-03-remote-hosts/start.rb
23
- [INFO] ConfigPath => examples/learn-03-remote-hosts/config.yaml
24
- [INFO] TestName => learn-03-remote-hosts
25
-
26
- ==================================
27
- Executing [teuton] (version 2.1.0)
28
- [INFO] Running in parallel (2019-11-06 17:35:46 +0000)
29
- Skipping case <Darth Maul>
30
- ?FFF?FFF
31
- [INFO] Duration = 10.184 (2019-11-06 17:35:57 +0000)
32
- ==================================
33
-
34
- CASE RESULTS
35
- +---------+---------------+-------+-------+
36
- | CASE ID | MEMBERS | GRADE | STATE |
37
- | - | - | 0.0 | |
38
- | case_02 | R2D2 | 0.0 | ? |
39
- | case_03 | Obiwan Kenobi | 0.0 | ? |
40
- +---------+---------------+-------+-------+
41
-
42
- CONN ERRORS
43
- +---------+---------------+-------+------------------+
44
- | CASE ID | MEMBERS | HOST | ERROR |
45
- | case_02 | R2D2 | host1 | host_unreachable |
46
- | case_03 | Obiwan Kenobi | host1 | host_unreachable |
47
- +---------+---------------+-------+------------------+
48
- ```
49
-
50
- * Case is every remote host (or group of hosts) been tested.
51
- * "case-01" has been configured "skip=true", so it hasn't been tested.
52
-
53
- ## Reports
54
-
55
- * Detail reports are saved into `var/learn-03-remote-hosts/` output directory.
56
- * Take a look at directory tree:
57
-
58
- ```bash
59
- var
60
- └── learn-03-remote-hosts
61
- ├── case-02.txt
62
- ├── case-03.txt
63
- └── resume.txt
64
- ```
65
-
66
- * Only "case-02" and "case-03" has been tested.
67
- * There are TXT output reports for every tested case.
68
- * "resume" report is a resumed list with final results.
69
- * Let's see our example:
70
-
71
- ```
72
- $ more var/learn-03-remote-hosts/resume.txt
73
-
74
- CONFIGURATION
75
- +----------------+------------------------------------------------+
76
- | tt_title | Executing [teuton] (version 2.1.0) |
77
- | tt_scriptname | examples/learn-03-remote-hosts/start.rb |
78
- | tt_configfile | examples/learn-03-remote-hosts/config.yaml |
79
- | host1_username | root |
80
- | host1_password | profesor |
81
- | tt_testname | learn-03-remote-hosts |
82
- | tt_sequence | false |
83
- +----------------+------------------------------------------------+
84
-
85
- CASES
86
- +---------+---------------+-------+-------+
87
- | CASE ID | MEMBERS | GRADE | STATE |
88
- | - | - | 0 | |
89
- | case_02 | R2D2 | 0 | ? |
90
- | case_03 | Obiwan Kenobi | 0 | ? |
91
- +---------+---------------+-------+-------+
92
-
93
- CONN ERRORS
94
- +---------+---------------+-------+------------------+
95
- | CASE ID | MEMBERS | HOST | ERROR |
96
- | case_02 | R2D2 | host1 | host_unreachable |
97
- | case_03 | Obiwan Kenobi | host1 | host_unreachable |
98
- +---------+---------------+-------+------------------+
99
-
100
- RESULTS
101
- +-------------+---------------------------+
102
- | start_time | 2019-11-06 17:35:46 +0000 |
103
- | finish_time | 2019-11-06 17:35:57 +0000 |
104
- | duration | 10.183650893 |
105
- +-------------+---------------------------+
106
- ```
107
-
108
- * Our hosts are down, so it's not posible stablish connection.
109
- * Let's see case-02 report to read details about test process:
110
-
111
- ```
112
- $ more var/learn-03-remote-hosts/case-02.txt
113
-
114
- CONFIGURATION
115
- +----------------+-----------------------+
116
- | host1_hostname | robots |
117
- | host1_ip | 192.168.1.202 |
118
- | host1_password | profesor |
119
- | host1_username | root |
120
- | tt_members | R2D2 |
121
- | tt_moodle_id | r2d2@robot.sw |
122
- | tt_sequence | false |
123
- | tt_skip | false |
124
- | tt_testname | learn-03-remote-hosts |
125
- | username | r2d2 |
126
- +----------------+-----------------------+
127
-
128
- LOGS
129
- [17:35:50] ERROR: Host 192.168.1.202 unreachable!
130
-
131
- GROUPS
132
- - learn 03 remote hosts
133
- 01 (0.0/1.0)
134
- Description : Update hostname with robots (host1_hostname)
135
- Command : hostname
136
- Duration : 3.078 (ssh)
137
- Alterations : find(robots) & count
138
- Expected : 1 (String)
139
- Result : 0 (Integer)
140
- 02 (0.0/1.0)
141
- Description : Ensure network DNS configuration is working
142
- Command : nslookup www.google.es
143
- Duration : 0.0 (ssh)
144
- Alterations : find(Nombre:) & count
145
- Expected : Greater than 0 (String)
146
- Result : 0 (Integer)
147
- 03 (0.0/1.0)
148
- Description : Create user r2d2 (username)
149
- Command : net user
150
- Duration : 0.0 (ssh)
151
- Alterations : find(r2d2) & count
152
- Expected : Greater than 0 (String)
153
- Result : 0 (Integer)
154
-
155
- RESULTS
156
- +--------------+---------------------------+
157
- | case_id | 2 |
158
- | start_time_ | 2019-11-06 17:35:46 +0000 |
159
- | finish_time | 2019-11-06 17:35:50 +0000 |
160
- | duration | 3.078811848 |
161
- | unique_fault | 0 |
162
- | max_weight | 3.0 |
163
- | good_weight | 0.0 |
164
- | fail_weight | 3.0 |
165
- | fail_counter | 3 |
166
- | grade | 0 |
167
- +--------------+---------------------------+
168
- ```
169
-
170
- * Final grade is 0, because tests hasn't been verified.
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative '../../../application'
3
-
4
- # DSL#call
5
- module DSL
6
- def check(name, input = {})
7
- checks = Application.instance.checks
8
- unless checks[name]
9
- log("Check #{name} not found!", :error)
10
- return
11
- end
12
- input.each_pair { |k, v| set(k, v) }
13
- errors = []
14
- checks[name][:args].each do |i|
15
- errors << i if get(i) == 'NODATA'
16
- end
17
- if errors.count > 0
18
- log("Check #{name} => required params #{errors.join(',')}",:error)
19
- else
20
- instance_eval(&checks[name][:block])
21
- end
22
- input.each_pair { |k, v| unset(k) }
23
- end
24
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # DSL#missing_method
4
- module DSL
5
- # If a method call is missing, then delegate to concept parent.
6
- def method_missing(method, args = {})
7
- a = method.to_s
8
- return instance_eval("get(:#{a[0, a.size - 1]})") if a[a.size - 1] == '?'
9
- return check a[6, a.size], args if a[0,6]=='check_'
10
- check a, args
11
- end
12
- end
@@ -1,2 +0,0 @@
1
- *.yaml
2
- *.json