teuton 2.1.1 → 2.1.2
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.
- checksums.yaml +4 -4
- data/README.md +12 -21
- data/docs/Challenge-Server-Project.md +50 -0
- data/docs/changelog/servidor-de-retos.md +53 -0
- data/docs/changelog/todo.md +46 -0
- data/docs/changelog/v2.0.md +17 -0
- data/docs/changelog/v2.1.md +139 -0
- data/docs/commands/commands.md +10 -0
- data/docs/commands/create_skeleton.md +31 -0
- data/docs/commands/help.md +13 -0
- data/docs/commands/revise_test.md +46 -0
- data/docs/commands/run_test_unit.md +78 -0
- data/docs/commands/show_version.md +9 -0
- data/docs/developers/01-telnet.md +121 -0
- data/docs/developers/02-ssh.md +93 -0
- data/docs/developers/03-encoding.md +153 -0
- data/docs/developers/comparative.md +17 -0
- data/docs/dsl/_Sidebar.md +30 -0
- data/docs/dsl/definition/expect.md +56 -0
- data/docs/dsl/definition/goto.md +112 -0
- data/docs/dsl/definition/group.md +16 -0
- data/docs/dsl/definition/result.md +76 -0
- data/docs/dsl/definition/run.md +23 -0
- data/docs/dsl/definition/target.md +35 -0
- data/docs/dsl/execution/export.md +39 -0
- data/docs/dsl/execution/play.md +16 -0
- data/docs/dsl/execution/send.md +54 -0
- data/docs/dsl/execution/show.md +21 -0
- data/docs/dsl/keywords.md +53 -0
- data/docs/dsl/setting/get.md +36 -0
- data/docs/dsl/setting/set.md +18 -0
- data/docs/install/install.md +32 -0
- data/docs/install/manual_install.md +25 -0
- data/docs/install/modes_of_use.md +38 -0
- data/docs/install/scripts_install.md +76 -0
- data/docs/install/tested_od.md +25 -0
- data/docs/install/vagrant_install.md +15 -0
- data/docs/learn/example-01-target.md +117 -0
- data/docs/learn/example-02-configfile.md +168 -0
- data/docs/learn/example-03-remote-hosts.md +90 -0
- data/docs/learn/example-04-use.md +74 -0
- data/docs/learn/example-05-debug.md +104 -0
- data/docs/learn/example-11-first-test.md +96 -0
- data/docs/learn/learning.md +34 -0
- data/docs/learn/quick-demo.md +168 -0
- data/docs/learn/videos.md +13 -0
- data/lib/teuton/application.rb +1 -1
- data/lib/teuton/command/readme.rb +3 -0
- data/lib/teuton/command/test.rb +3 -0
- data/lib/teuton/command.rb +2 -2
- metadata +91 -5
- data/docs/logo.png +0 -0
@@ -0,0 +1,168 @@
|
|
1
|
+
|
2
|
+
# Quick demo
|
3
|
+
|
4
|
+
Every TEUTON challenge (Test Unit) consists of 2 files.
|
5
|
+
Let's look at demo `examples/learn-03-remote-hosts`:
|
6
|
+
|
7
|
+
| File | Description |
|
8
|
+
| ----------- | ----------------------------- |
|
9
|
+
| start.rb | Defines TEUTON activity (DSL) |
|
10
|
+
| config.yaml | Configuration file with every student machine |
|
11
|
+
|
12
|
+
## Running
|
13
|
+
|
14
|
+
* Run this demo with `teuton` command: `teuton examples/learn-03-remote-hosts`.
|
15
|
+
* During execution, progress is showed on screen.
|
16
|
+
|
17
|
+
```
|
18
|
+
$ teuton examples/learn-03-remote-hosts
|
19
|
+
|
20
|
+
[INFO] ScriptPath => examples/learn-03-remote-hosts/start.rb
|
21
|
+
[INFO] ConfigPath => examples/learn-03-remote-hosts/config.yaml
|
22
|
+
[INFO] TestName => learn-03-remote-hosts
|
23
|
+
|
24
|
+
==================================
|
25
|
+
Executing [teuton] (version 2.1.0)
|
26
|
+
[INFO] Running in parallel (2019-11-06 17:35:46 +0000)
|
27
|
+
Skipping case <Darth Maul>
|
28
|
+
?FFF?FFF
|
29
|
+
[INFO] Duration = 10.184 (2019-11-06 17:35:57 +0000)
|
30
|
+
==================================
|
31
|
+
|
32
|
+
CASE RESULTS
|
33
|
+
+---------+---------------+-------+-------+
|
34
|
+
| CASE ID | MEMBERS | GRADE | STATE |
|
35
|
+
| - | - | 0.0 | |
|
36
|
+
| case_02 | R2D2 | 0.0 | ? |
|
37
|
+
| case_03 | Obiwan Kenobi | 0.0 | ? |
|
38
|
+
+---------+---------------+-------+-------+
|
39
|
+
|
40
|
+
CONN ERRORS
|
41
|
+
+---------+---------------+-------+------------------+
|
42
|
+
| CASE ID | MEMBERS | HOST | ERROR |
|
43
|
+
| case_02 | R2D2 | host1 | host_unreachable |
|
44
|
+
| case_03 | Obiwan Kenobi | host1 | host_unreachable |
|
45
|
+
+---------+---------------+-------+------------------+
|
46
|
+
```
|
47
|
+
|
48
|
+
* Case is every remote host (or group of hosts) been tested.
|
49
|
+
* "case-01" has been configured "skip=true", so it hasn't been tested.
|
50
|
+
|
51
|
+
## Reports
|
52
|
+
|
53
|
+
* Detail reports are saved into `var/learn-03-remote-hosts/` output directory.
|
54
|
+
* Take a look at directory tree:
|
55
|
+
|
56
|
+
```bash
|
57
|
+
var
|
58
|
+
└── learn-03-remote-hosts
|
59
|
+
├── case-02.txt
|
60
|
+
├── case-03.txt
|
61
|
+
└── resume.txt
|
62
|
+
```
|
63
|
+
|
64
|
+
* Only "case-02" and "case-03" has been tested.
|
65
|
+
* There are TXT output reports for every tested case.
|
66
|
+
* "resume" report is a resumed list with final results.
|
67
|
+
* Let's see our example:
|
68
|
+
|
69
|
+
```
|
70
|
+
$ more var/learn-03-remote-hosts/resume.txt
|
71
|
+
|
72
|
+
CONFIGURATION
|
73
|
+
+----------------+------------------------------------------------+
|
74
|
+
| tt_title | Executing [teuton] (version 2.1.0) |
|
75
|
+
| tt_scriptname | examples/learn-03-remote-hosts/start.rb |
|
76
|
+
| tt_configfile | examples/learn-03-remote-hosts/config.yaml |
|
77
|
+
| host1_username | root |
|
78
|
+
| host1_password | profesor |
|
79
|
+
| tt_testname | learn-03-remote-hosts |
|
80
|
+
| tt_sequence | false |
|
81
|
+
+----------------+------------------------------------------------+
|
82
|
+
|
83
|
+
CASES
|
84
|
+
+---------+---------------+-------+-------+
|
85
|
+
| CASE ID | MEMBERS | GRADE | STATE |
|
86
|
+
| - | - | 0 | |
|
87
|
+
| case_02 | R2D2 | 0 | ? |
|
88
|
+
| case_03 | Obiwan Kenobi | 0 | ? |
|
89
|
+
+---------+---------------+-------+-------+
|
90
|
+
|
91
|
+
CONN ERRORS
|
92
|
+
+---------+---------------+-------+------------------+
|
93
|
+
| CASE ID | MEMBERS | HOST | ERROR |
|
94
|
+
| case_02 | R2D2 | host1 | host_unreachable |
|
95
|
+
| case_03 | Obiwan Kenobi | host1 | host_unreachable |
|
96
|
+
+---------+---------------+-------+------------------+
|
97
|
+
|
98
|
+
RESULTS
|
99
|
+
+-------------+---------------------------+
|
100
|
+
| start_time | 2019-11-06 17:35:46 +0000 |
|
101
|
+
| finish_time | 2019-11-06 17:35:57 +0000 |
|
102
|
+
| duration | 10.183650893 |
|
103
|
+
+-------------+---------------------------+
|
104
|
+
```
|
105
|
+
|
106
|
+
* Our hosts are down, so it's not posible stablish connection.
|
107
|
+
* Let's see case-02 report to read details about test process:
|
108
|
+
|
109
|
+
```
|
110
|
+
$ more var/learn-03-remote-hosts/case-02.txt
|
111
|
+
|
112
|
+
CONFIGURATION
|
113
|
+
+----------------+-----------------------+
|
114
|
+
| host1_hostname | robots |
|
115
|
+
| host1_ip | 192.168.1.202 |
|
116
|
+
| host1_password | profesor |
|
117
|
+
| host1_username | root |
|
118
|
+
| tt_members | R2D2 |
|
119
|
+
| tt_moodle_id | r2d2@robot.sw |
|
120
|
+
| tt_sequence | false |
|
121
|
+
| tt_skip | false |
|
122
|
+
| tt_testname | learn-03-remote-hosts |
|
123
|
+
| username | r2d2 |
|
124
|
+
+----------------+-----------------------+
|
125
|
+
|
126
|
+
LOGS
|
127
|
+
[17:35:50] ERROR: Host 192.168.1.202 unreachable!
|
128
|
+
|
129
|
+
GROUPS
|
130
|
+
- learn 03 remote hosts
|
131
|
+
01 (0.0/1.0)
|
132
|
+
Description : Update hostname with robots (host1_hostname)
|
133
|
+
Command : hostname
|
134
|
+
Duration : 3.078 (ssh)
|
135
|
+
Alterations : find(robots) & count
|
136
|
+
Expected : 1 (String)
|
137
|
+
Result : 0 (Integer)
|
138
|
+
02 (0.0/1.0)
|
139
|
+
Description : Ensure network DNS configuration is working
|
140
|
+
Command : nslookup www.google.es
|
141
|
+
Duration : 0.0 (ssh)
|
142
|
+
Alterations : find(Nombre:) & count
|
143
|
+
Expected : Greater than 0 (String)
|
144
|
+
Result : 0 (Integer)
|
145
|
+
03 (0.0/1.0)
|
146
|
+
Description : Create user r2d2 (username)
|
147
|
+
Command : net user
|
148
|
+
Duration : 0.0 (ssh)
|
149
|
+
Alterations : find(r2d2) & count
|
150
|
+
Expected : Greater than 0 (String)
|
151
|
+
Result : 0 (Integer)
|
152
|
+
|
153
|
+
RESULTS
|
154
|
+
+--------------+---------------------------+
|
155
|
+
| case_id | 2 |
|
156
|
+
| start_time_ | 2019-11-06 17:35:46 +0000 |
|
157
|
+
| finish_time | 2019-11-06 17:35:50 +0000 |
|
158
|
+
| duration | 3.078811848 |
|
159
|
+
| unique_fault | 0 |
|
160
|
+
| max_weight | 3.0 |
|
161
|
+
| good_weight | 0.0 |
|
162
|
+
| fail_weight | 3.0 |
|
163
|
+
| fail_counter | 3 |
|
164
|
+
| grade | 0 |
|
165
|
+
+--------------+---------------------------+
|
166
|
+
```
|
167
|
+
|
168
|
+
* Final grade is 0, because tests hasn't been verified.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
By now there are no English videos. We are sorry!
|
3
|
+
But if you want to see Spanish videos, here you are:
|
4
|
+
|
5
|
+
Teuton (v2.0):
|
6
|
+
* [CHAPI19 - Charla Teuton](https://youtu.be/KFWQDfNAFxI?t=12221)
|
7
|
+
|
8
|
+
Sysadmingame (Teuton v1.0)
|
9
|
+
* [Sysadmingame (1 de 3): Instalación del programa](https://youtu.be/dnyMq9_KDco)
|
10
|
+
* [Sysadmingame (2 de 3): Crear un caso simple](https://youtu.be/0e2g5Izvc6c)
|
11
|
+
* [Sysadmingame (3 de 3): Crear un caso complejo](https://youtu.be/ebEK6OXH8kQ)
|
12
|
+
* [CHAPI16 - Charla sysadmingame](https://youtu.be/cNJaB5xzHHQ)
|
13
|
+
|
data/lib/teuton/application.rb
CHANGED
@@ -17,6 +17,9 @@ class TeutonCommand < Thor
|
|
17
17
|
By default lang=es, but It's available lang=en too.
|
18
18
|
|
19
19
|
LONGDESC
|
20
|
+
##
|
21
|
+
# Create README from teuton test
|
22
|
+
# @param path_to_rb_file [String] Route to main rb Teuton file
|
20
23
|
def readme(path_to_rb_file)
|
21
24
|
Project.readme(path_to_rb_file, options)
|
22
25
|
end
|
data/lib/teuton/command/test.rb
CHANGED
@@ -29,6 +29,9 @@ class TeutonCommand < Thor
|
|
29
29
|
, Test content of foo.rb and demo.yaml files.
|
30
30
|
|
31
31
|
LONGDESC
|
32
|
+
##
|
33
|
+
# Verify or test Teuton test units syntax
|
34
|
+
# @param path_to_rb_file [String] Route to main rb Teuton file
|
32
35
|
def test(path_to_rb_file)
|
33
36
|
Project.test(path_to_rb_file, options)
|
34
37
|
end
|
data/lib/teuton/command.rb
CHANGED
@@ -20,11 +20,11 @@ class TeutonCommand < Thor
|
|
20
20
|
map ['c', '-c', '--create'] => 'create'
|
21
21
|
desc 'create DIRECTORY', 'Create skeleton for a new project'
|
22
22
|
long_desc <<-LONGDESC
|
23
|
-
Create files for a new project
|
23
|
+
Create files for a new project.
|
24
24
|
|
25
25
|
Example:
|
26
26
|
|
27
|
-
#{$PROGRAM_NAME} create foo
|
27
|
+
#{$PROGRAM_NAME} create dir/foo
|
28
28
|
LONGDESC
|
29
29
|
##
|
30
30
|
# Command create new Teuton project
|
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.1.
|
4
|
+
version: 2.1.2
|
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:
|
11
|
+
date: 2020-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_pure
|
@@ -151,11 +151,97 @@ executables:
|
|
151
151
|
extensions: []
|
152
152
|
extra_rdoc_files:
|
153
153
|
- README.md
|
154
|
-
- docs/
|
154
|
+
- docs/learn/example-03-remote-hosts.md
|
155
|
+
- docs/learn/example-05-debug.md
|
156
|
+
- docs/learn/example-11-first-test.md
|
157
|
+
- docs/learn/videos.md
|
158
|
+
- docs/learn/learning.md
|
159
|
+
- docs/learn/example-02-configfile.md
|
160
|
+
- docs/learn/example-04-use.md
|
161
|
+
- docs/learn/quick-demo.md
|
162
|
+
- docs/learn/example-01-target.md
|
163
|
+
- docs/changelog/v2.1.md
|
164
|
+
- docs/changelog/todo.md
|
165
|
+
- docs/changelog/servidor-de-retos.md
|
166
|
+
- docs/changelog/v2.0.md
|
167
|
+
- docs/commands/show_version.md
|
168
|
+
- docs/commands/help.md
|
169
|
+
- docs/commands/revise_test.md
|
170
|
+
- docs/commands/create_skeleton.md
|
171
|
+
- docs/commands/commands.md
|
172
|
+
- docs/commands/run_test_unit.md
|
173
|
+
- docs/dsl/definition/run.md
|
174
|
+
- docs/dsl/definition/goto.md
|
175
|
+
- docs/dsl/definition/result.md
|
176
|
+
- docs/dsl/definition/target.md
|
177
|
+
- docs/dsl/definition/group.md
|
178
|
+
- docs/dsl/definition/expect.md
|
179
|
+
- docs/dsl/keywords.md
|
180
|
+
- docs/dsl/execution/export.md
|
181
|
+
- docs/dsl/execution/play.md
|
182
|
+
- docs/dsl/execution/send.md
|
183
|
+
- docs/dsl/execution/show.md
|
184
|
+
- docs/dsl/_Sidebar.md
|
185
|
+
- docs/dsl/setting/set.md
|
186
|
+
- docs/dsl/setting/get.md
|
187
|
+
- docs/Challenge-Server-Project.md
|
188
|
+
- docs/developers/comparative.md
|
189
|
+
- docs/developers/03-encoding.md
|
190
|
+
- docs/developers/01-telnet.md
|
191
|
+
- docs/developers/02-ssh.md
|
192
|
+
- docs/install/modes_of_use.md
|
193
|
+
- docs/install/tested_od.md
|
194
|
+
- docs/install/vagrant_install.md
|
195
|
+
- docs/install/scripts_install.md
|
196
|
+
- docs/install/manual_install.md
|
197
|
+
- docs/install/install.md
|
155
198
|
files:
|
156
199
|
- README.md
|
157
200
|
- bin/teuton
|
158
|
-
- docs/
|
201
|
+
- docs/Challenge-Server-Project.md
|
202
|
+
- docs/changelog/servidor-de-retos.md
|
203
|
+
- docs/changelog/todo.md
|
204
|
+
- docs/changelog/v2.0.md
|
205
|
+
- docs/changelog/v2.1.md
|
206
|
+
- docs/commands/commands.md
|
207
|
+
- docs/commands/create_skeleton.md
|
208
|
+
- docs/commands/help.md
|
209
|
+
- docs/commands/revise_test.md
|
210
|
+
- docs/commands/run_test_unit.md
|
211
|
+
- docs/commands/show_version.md
|
212
|
+
- docs/developers/01-telnet.md
|
213
|
+
- docs/developers/02-ssh.md
|
214
|
+
- docs/developers/03-encoding.md
|
215
|
+
- docs/developers/comparative.md
|
216
|
+
- docs/dsl/_Sidebar.md
|
217
|
+
- docs/dsl/definition/expect.md
|
218
|
+
- docs/dsl/definition/goto.md
|
219
|
+
- docs/dsl/definition/group.md
|
220
|
+
- docs/dsl/definition/result.md
|
221
|
+
- docs/dsl/definition/run.md
|
222
|
+
- docs/dsl/definition/target.md
|
223
|
+
- docs/dsl/execution/export.md
|
224
|
+
- docs/dsl/execution/play.md
|
225
|
+
- docs/dsl/execution/send.md
|
226
|
+
- docs/dsl/execution/show.md
|
227
|
+
- docs/dsl/keywords.md
|
228
|
+
- docs/dsl/setting/get.md
|
229
|
+
- docs/dsl/setting/set.md
|
230
|
+
- docs/install/install.md
|
231
|
+
- docs/install/manual_install.md
|
232
|
+
- docs/install/modes_of_use.md
|
233
|
+
- docs/install/scripts_install.md
|
234
|
+
- docs/install/tested_od.md
|
235
|
+
- docs/install/vagrant_install.md
|
236
|
+
- docs/learn/example-01-target.md
|
237
|
+
- docs/learn/example-02-configfile.md
|
238
|
+
- docs/learn/example-03-remote-hosts.md
|
239
|
+
- docs/learn/example-04-use.md
|
240
|
+
- docs/learn/example-05-debug.md
|
241
|
+
- docs/learn/example-11-first-test.md
|
242
|
+
- docs/learn/learning.md
|
243
|
+
- docs/learn/quick-demo.md
|
244
|
+
- docs/learn/videos.md
|
159
245
|
- lib/teuton.rb
|
160
246
|
- lib/teuton/application.rb
|
161
247
|
- lib/teuton/case_manager/case/builtin/main.rb
|
@@ -252,7 +338,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
338
|
- !ruby/object:Gem::Version
|
253
339
|
version: '0'
|
254
340
|
requirements: []
|
255
|
-
rubygems_version: 3.
|
341
|
+
rubygems_version: 3.1.2
|
256
342
|
signing_key:
|
257
343
|
specification_version: 4
|
258
344
|
summary: Teuton (Teuton Software)
|
data/docs/logo.png
DELETED
Binary file
|