teuton 2.1.8 → 2.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -8
- data/bin/check_teuton +43 -0
- data/docs/changelog/contributions.md +32 -0
- data/docs/changelog/v2.1.md +22 -0
- data/docs/changelog/v2.2.md +29 -0
- data/docs/commands/README.md +105 -7
- data/docs/commands/example_check.md +54 -0
- data/docs/commands/example_run.md +112 -0
- data/docs/dsl/README.md +11 -9
- data/docs/dsl/definition/expect.md +25 -21
- data/docs/dsl/definition/group.md +5 -1
- data/docs/dsl/definition/result.md +45 -34
- data/docs/dsl/definition/run_local.md +34 -0
- data/docs/dsl/definition/run_remote.md +119 -0
- data/docs/dsl/definition/target.md +6 -0
- data/docs/dsl/execution/export.md +27 -19
- data/docs/dsl/execution/play.md +4 -0
- data/docs/dsl/execution/send.md +21 -2
- data/docs/dsl/execution/show.md +13 -8
- data/docs/dsl/setting/get.md +24 -8
- data/docs/dsl/setting/set.md +8 -3
- data/docs/install/README.md +19 -26
- data/docs/install/modes_of_use.md +27 -26
- data/docs/install/scripts.md +53 -36
- data/docs/install/vagrant_docker.md +56 -0
- data/docs/learn/README.md +13 -6
- data/docs/learn/example-01-target.md +78 -61
- data/docs/learn/example-02-config.md +152 -0
- data/docs/learn/example-03-remote-hosts.md +31 -25
- data/docs/learn/example-04-use.md +23 -17
- data/docs/learn/example-05-debug.md +24 -17
- data/docs/learn/example-06-log.md +70 -0
- data/lib/teuton/application.rb +7 -4
- data/lib/teuton/case_manager/case/case.rb +4 -1
- data/lib/teuton/case_manager/case/dsl/expect.rb +3 -1
- data/lib/teuton/case_manager/case/dsl/goto.rb +12 -7
- data/lib/teuton/case_manager/case/dsl/macro.rb +38 -0
- data/lib/teuton/case_manager/case/dsl/main.rb +1 -2
- data/lib/teuton/case_manager/case/dsl/target.rb +1 -1
- data/lib/teuton/case_manager/case/runner.rb +7 -7
- data/lib/teuton/case_manager/case_manager.rb +1 -20
- data/lib/teuton/case_manager/check_cases.rb +12 -2
- data/lib/teuton/case_manager/dsl.rb +4 -6
- data/lib/teuton/case_manager/export_manager.rb +29 -3
- data/lib/teuton/case_manager/report.rb +29 -8
- data/lib/teuton/case_manager/show.rb +8 -4
- data/lib/teuton/cli.rb +1 -0
- data/lib/teuton/cli/play.rb +1 -0
- data/lib/teuton/cli/version.rb +1 -4
- data/lib/teuton/files/config.yaml +0 -1
- data/lib/teuton/files/start.rb +1 -1
- data/lib/teuton/files/template/case.html +135 -0
- data/lib/teuton/files/template/resume.html +115 -0
- data/lib/teuton/project/laboratory/builtin.rb +2 -1
- data/lib/teuton/project/laboratory/dsl.rb +13 -15
- data/lib/teuton/project/laboratory/laboratory.rb +5 -1
- data/lib/teuton/project/laboratory/show.rb +21 -13
- data/lib/teuton/project/name_file_finder.rb +6 -1
- data/lib/teuton/project/project.rb +7 -3
- data/lib/teuton/project/readme/dsl.rb +3 -1
- data/lib/teuton/project/readme/readme.rb +37 -26
- data/lib/teuton/project/skeleton.rb +20 -4
- data/lib/teuton/report/close.rb +15 -11
- data/lib/teuton/report/formatter/formatter_factory.rb +10 -6
- data/lib/teuton/report/formatter/html_formatter.rb +16 -79
- data/lib/teuton/report/formatter/resume_html_formatter.rb +39 -0
- data/lib/teuton/report/formatter/resume_yaml_formatter.rb +7 -1
- data/lib/teuton/report/report.rb +5 -4
- data/lib/teuton/report/show.rb +55 -26
- metadata +26 -39
- data/docs/changelog/todo.md +0 -46
- data/docs/commands/create_skeleton.md +0 -31
- data/docs/commands/help.md +0 -13
- data/docs/commands/revise_test.md +0 -46
- data/docs/commands/run_test_unit.md +0 -78
- data/docs/commands/show_version.md +0 -9
- data/docs/developers/01-telnet.md +0 -121
- data/docs/developers/02-ssh.md +0 -93
- data/docs/developers/03-encoding.md +0 -153
- data/docs/developers/comparative.md +0 -17
- data/docs/dsl/_Sidebar.md +0 -30
- data/docs/dsl/definition/goto.md +0 -112
- data/docs/dsl/definition/run.md +0 -23
- data/docs/install/tested_os.md +0 -25
- data/docs/install/vagrant.md +0 -9
- data/docs/learn/example-02-configfile.md +0 -174
- data/docs/learn/quick-demo.md +0 -170
- data/lib/teuton/case_manager/case/dsl/check.rb +0 -24
- data/lib/teuton/case_manager/case/dsl/missing.rb +0 -12
- data/lib/teuton/files/gitignore +0 -2
data/docs/learn/quick-demo.md
DELETED
@@ -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
|
data/lib/teuton/files/gitignore
DELETED