teuton 2.1.8 → 2.1.9

Sign up to get free protection for your applications and to get access to all the features.
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