mumukit 2.43.0 → 2.45.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e040afd28d4d12898e0c213d39b5f5404c7ba05cda3f05875700fb418fc33ddd
4
- data.tar.gz: be2b5fe4e2240b8056dbb7147a2a6def7a7dfaf7c8d2a0b2b23475f4a5fed83e
3
+ metadata.gz: 4c4daef670d7b72e6a88cea099905e870f6534ba9d7da574323efc941e8e991e
4
+ data.tar.gz: 7293bd7160ff5249f5c06f45f34c4bfb87df2ee24128aefda1dbf421ad6be9cd
5
5
  SHA512:
6
- metadata.gz: 5fe277900418f475fdfebd7eb9481503bf2f0c5cd83caa8ee6386eacca9d8321810aba13a1ae4eb48cc128a91712fe82abdac244e1b52864680008b6039769ef
7
- data.tar.gz: 5b3d7125b58decee7c8e74304444191153545f17dce74dfd190f6669aa6016ecca64df515b2ec072693e14f8aed9732b7f68c6c95a2526b82cc8a60bd0482e99
6
+ metadata.gz: 723eff33716d123138cc159cb3724e554e714bf8da1024afec1372033778488cb0f0c9ea9f3a555aa14a02610375ca4f674de79089d45ebfe8e3c8cbb234391f
7
+ data.tar.gz: b214cfcc02b1a24f81c4f34ed2d39865fe79d6a56a7fd73c79ef6902cb7218ad29b90deed1a408d58164f1d202fe088f35831a70ceb32bf6f235aaacb9a1821c
data/lib/locales/en.yml CHANGED
@@ -5,14 +5,15 @@ en:
5
5
  masked_tempfile_basename: solution
6
6
  interactive:
7
7
  check_last_query_equals: "query should be '%{expected}' but was '%{actual}'"
8
- check_last_query_fails: "query should fail but it passed"
9
- check_last_query_matches: "query does not match regexp %{regexp}"
8
+ check_last_query_fails: "query should fail but it was '%{actual}' and passed"
9
+ check_last_query_matches: "query should match regexp %{regexp}, but was '%{actual}'"
10
10
  check_last_query_outputs: "query output should be '%{expected}' but was '%{actual}'"
11
- check_last_query_includes: "query output should include '%{expected}' but was '%{actual}'"
12
- check_last_query_like: "query output should be like '%{expected}' but was '%{actual}'"
13
- check_last_query_passes: "query should pass but it failed"
11
+ check_last_query_output_includes: "query output should include '%{expected}' but was '%{actual}'"
12
+ check_last_query_output_like: "query output should be like '%{expected}' but was '%{actual}'"
13
+ check_last_query_passes: "query should pass but it was '%{actual}' and failed"
14
14
  check_query_fails: "query '%{query}' should fail but it passed"
15
15
  check_query_outputs: "query '%{query}' output should be '%{expected}' but was '%{actual}'"
16
16
  check_query_passes: "query '%{query}' should pass but it failed"
17
17
  goal_passed: "goal was met successfully"
18
18
  check_queries_match: "All the required queries must be executed"
19
+ check_queries_equal: "All the required queries must be executed"
@@ -5,14 +5,15 @@ es-CL:
5
5
  masked_tempfile_basename: solucion
6
6
  interactive:
7
7
  check_last_query_equals: "La consulta debería ser '%{expected}' pero fue '%{actual}'"
8
- check_last_query_fails: "La consulta debería fallar pero pasó"
9
- check_last_query_matches: "La consulta no cumple con la expresión regular %{regexp}"
8
+ check_last_query_fails: "La consulta debería fallar pero fue '%{actual}' y pasó"
9
+ check_last_query_matches: "La consulta debería cumplir con la expresión regular '%{regexp}' pero fue '%{actual}'"
10
10
  check_last_query_outputs: "La consulta debería devolver '%{expected}' pero devolvió '%{actual}'"
11
- check_last_query_includes: "La consulta debería incluir '%{expected}' pero devolvió '%{actual}'"
12
- check_last_query_like: "La consulta debería ser como '%{expected}' pero devolvió '%{actual}'"
13
- check_last_query_passes: "La consulta debería pasar pero falló"
11
+ check_last_query_output_includes: "El retorno de la consulta debería incluir '%{expected}' pero devolvió '%{actual}'"
12
+ check_last_query_output_like: "El retorno de la consulta debería ser como '%{expected}' pero devolvió '%{actual}'"
13
+ check_last_query_passes: "La consulta debería pasar pero fue '%{actual}' y falló"
14
14
  check_query_fails: "La consulta '%{query}' debería fallar pero pasó"
15
15
  check_query_outputs: "La consulta '%{query}' debería devolver '%{expected}' pero devolvió '%{actual}'"
16
16
  check_query_passes: "La consulta '%{query}' debería pasar pero falló"
17
17
  goal_passed: "El objetivo se cumplió exitosamente"
18
18
  check_queries_match: "Se deben realizar todas las consultas solicitadas"
19
+ check_queries_equal: "Se deben realizar todas las consultas solicitadas"
data/lib/locales/es.yml CHANGED
@@ -5,14 +5,15 @@ es:
5
5
  masked_tempfile_basename: solucion
6
6
  interactive:
7
7
  check_last_query_equals: "La consulta debería ser '%{expected}' pero fue '%{actual}'"
8
- check_last_query_fails: "La consulta debería fallar pero pasó"
9
- check_last_query_matches: "La consulta no cumple con la expresión regular %{regexp}"
8
+ check_last_query_fails: "La consulta debería fallar pero fue '%{actual}' y pasó"
9
+ check_last_query_matches: "La consulta debería cumplir con la expresión regular '%{regexp}' pero fue '%{actual}'"
10
10
  check_last_query_outputs: "La consulta debería devolver '%{expected}' pero devolvió '%{actual}'"
11
- check_last_query_includes: "La consulta debería incluir '%{expected}' pero devolvió '%{actual}'"
12
- check_last_query_like: "La consulta debería ser como '%{expected}' pero devolvió '%{actual}'"
13
- check_last_query_passes: "La consulta debería pasar pero falló"
11
+ check_last_query_output_includes: "El retorno de la consulta debería incluir '%{expected}' pero devolvió '%{actual}'"
12
+ check_last_query_output_like: "El retorno de la consulta debería ser como '%{expected}' pero devolvió '%{actual}'"
13
+ check_last_query_passes: "La consulta debería pasar pero fue '%{actual}' y falló"
14
14
  check_query_fails: "La consulta '%{query}' debería fallar pero pasó"
15
15
  check_query_outputs: "La consulta '%{query}' debería devolver '%{expected}' pero devolvió '%{actual}'"
16
16
  check_query_passes: "La consulta '%{query}' debería pasar pero falló"
17
- check_queries_match: "Se deben realizar todas las consultas solicitadas"
18
17
  goal_passed: "El objetivo se cumplió exitosamente"
18
+ check_queries_match: "Se deben realizar todas las consultas solicitadas"
19
+ check_queries_equal: "Se deben realizar todas las consultas solicitadas"
data/lib/locales/pt.yml CHANGED
@@ -5,14 +5,15 @@ pt:
5
5
  masked_tempfile_basename: solução
6
6
  interactive:
7
7
  check_last_query_equals: "a consulta deve ser '%{expected}' mas foi '%{actual}'"
8
- check_last_query_fails: "a consulta deve falhar, mas passou"
9
- check_last_query_matches: "A consulta não corresponde a regex %{regexp}"
8
+ check_last_query_fails: "a consulta deve falhar, mas foi '%{actual}' e passou"
9
+ check_last_query_matches: "A consulta deve corresponder a regex %{regexp} mas foi '%{actual}'"
10
10
  check_last_query_outputs: "O resultado da consulta deve ser '%{expected}', mas foi '%{actual}'"
11
- check_last_query_includes: "O resultado da consulta deve incluir '%{expected}', mas foi '%{actual}'"
12
- check_last_query_like: "O resultado da consulta deve ser como '%{expected}', mas foi '%{actual}'"
13
- check_last_query_passes: "A consulta deve passar, mas falhou"
11
+ check_last_query_output_includes: "O resultado da consulta deve incluir '%{expected}', mas foi '%{actual}'"
12
+ check_last_query_output_like: "O resultado da consulta deve ser como '%{expected}', mas foi '%{actual}'"
13
+ check_last_query_passes: "A consulta deve passar, mas foi '%{actual}' e falhou"
14
14
  check_query_fails: "a consulta '%{query}' deve falhar, mas passou"
15
15
  check_query_outputs: "a consulta '%{query}' deve ser '%{expected}', mas foi '%{actual}'"
16
16
  check_query_passes: "a consulta '%{query}' deve passar, mas falhou"
17
17
  check_queries_match: "Todas as consultas solicitadas devem ser feitas"
18
+ check_queries_equal: "Todas as consultas solicitadas devem ser feitas"
18
19
  goal_passed: "O objetivo foi alcançado com sucesso"
@@ -8,15 +8,19 @@ class Mumukit::Explainer
8
8
  private
9
9
 
10
10
  def explanations(content, test_results)
11
+ eval_explain_methods(content, test_results)
12
+ .map { |explain| I18n.t(explain[:key], **explain[:binding]) }
13
+ end
14
+
15
+ def eval_explain_methods(content, test_results)
11
16
  explain_methods
12
17
  .map { |selector, key| eval_explain(selector, key, content, test_results) }
13
18
  .compact
14
- .map { |explain| I18n.t(explain[:key], explain[:binding]) }
15
19
  end
16
20
 
17
21
  def eval_explain(selector, key, content, test_results)
18
22
  send(selector, content, test_results).try do |it|
19
- {key: key, binding: it}
23
+ {key: key, binding: it.is_a?(Hash) ? it : {}}
20
24
  end
21
25
  end
22
26
 
data/lib/mumukit/hook.rb CHANGED
@@ -7,8 +7,8 @@ class Mumukit::Hook
7
7
  @config = (config||{}).with_indifferent_access
8
8
  end
9
9
 
10
- def t(*args)
11
- I18n.t(*args)
10
+ def t(*args, **kwargs)
11
+ I18n.t(*args, **kwargs)
12
12
  end
13
13
 
14
14
  def method_missing(name, *args, &block)
@@ -14,15 +14,22 @@ module Mumukit::Metatest
14
14
 
15
15
  def check_last_query_matches(_result, goal)
16
16
  regexp = goal[:regexp]
17
- fail_t :check_last_query_matches, regexp: regexp.inspect unless query.match?(regexp)
17
+ actual = query
18
+ fail_t :check_last_query_matches, regexp: regexp.inspect, actual: actual unless query.match?(regexp)
18
19
  end
19
20
 
20
21
  def check_last_query_fails(result, _goal)
21
- fail_t :check_last_query_fails unless result[:query][:status].failed?
22
+ actual = query
23
+ fail_t :check_last_query_fails, actual: actual unless result[:query][:status].failed?
24
+ end
25
+
26
+ def check_queries_equal(result, goal)
27
+ fail_t :check_queries_equal unless goal[:values].all? do |regexp|
28
+ queries.any? { |query| query == regexp }
29
+ end
22
30
  end
23
31
 
24
32
  def check_queries_match(result, goal)
25
- queries = [query] + @request.cookie.to_a
26
33
  fail_t :check_queries_match unless goal[:regexps].all? do |regexp|
27
34
  queries.any? { |query| query.match? regexp }
28
35
  end
@@ -47,7 +54,8 @@ module Mumukit::Metatest
47
54
  end
48
55
 
49
56
  def check_last_query_passes(result, _goal)
50
- fail_t :check_last_query_passes unless result[:query][:status].passed?
57
+ actual = query
58
+ fail_t :check_last_query_passes, actual: actual unless result[:query][:status].passed?
51
59
  end
52
60
 
53
61
  def check_query_passes(result, goal)
@@ -68,8 +76,8 @@ module Mumukit::Metatest
68
76
  I18n.t locale(:goal_passed)
69
77
  end
70
78
 
71
- def fail_t(sym, *args)
72
- fail I18n.t locale(sym), *args
79
+ def fail_t(sym, **kwargs)
80
+ fail I18n.t(locale(sym), **kwargs)
73
81
  end
74
82
 
75
83
  def locale(sym)
@@ -83,8 +91,30 @@ module Mumukit::Metatest
83
91
  private
84
92
 
85
93
  def query
86
- query_s = @request.query.to_s
87
- @strip_mode == :right_only ? query_s.rstrip : query_s.strip
94
+ strip @request.query.to_s
95
+ end
96
+
97
+ def cookie
98
+ @request.cookie.to_a.map { |it| strip it }
99
+ end
100
+
101
+ def strip(string)
102
+ case strip_mode
103
+ when :strict then string
104
+ when :right_only then string.rstrip
105
+ when :right_and_internal then string.rstrip.squeeze(' ')
106
+ when :left_and_right then string.strip
107
+ when :left_right_and_internal then string.strip.squeeze(' ')
108
+ else raise "Unsupported strip mode #{@strip_mode}"
109
+ end
110
+ end
111
+
112
+ def queries
113
+ @queries ||= [query] + cookie
114
+ end
115
+
116
+ def strip_mode
117
+ @request.dig(:settings, :interactive_strip_mode) || @strip_mode
88
118
  end
89
119
  end
90
120
  end
@@ -1,3 +1,3 @@
1
1
  module Mumukit
2
- VERSION = '2.43.0'
2
+ VERSION = '2.45.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumukit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.43.0
4
+ version: 2.45.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Leonardo Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-21 00:00:00.000000000 Z
11
+ date: 2023-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '12.3'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12.3'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -126,16 +126,22 @@ dependencies:
126
126
  name: i18n
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0.7'
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: '2'
132
135
  type: :runtime
133
136
  prerelease: false
134
137
  version_requirements: !ruby/object:Gem::Requirement
135
138
  requirements:
136
- - - "~>"
139
+ - - ">="
137
140
  - !ruby/object:Gem::Version
138
141
  version: '0.7'
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: '2'
139
145
  - !ruby/object:Gem::Dependency
140
146
  name: puma
141
147
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +162,14 @@ dependencies:
156
162
  requirements:
157
163
  - - "~>"
158
164
  - !ruby/object:Gem::Version
159
- version: '1.25'
165
+ version: '2.0'
160
166
  type: :runtime
161
167
  prerelease: false
162
168
  version_requirements: !ruby/object:Gem::Requirement
163
169
  requirements:
164
170
  - - "~>"
165
171
  - !ruby/object:Gem::Version
166
- version: '1.25'
172
+ version: '2.0'
167
173
  - !ruby/object:Gem::Dependency
168
174
  name: excon
169
175
  requirement: !ruby/object:Gem::Requirement
@@ -246,28 +252,28 @@ dependencies:
246
252
  requirements:
247
253
  - - "~>"
248
254
  - !ruby/object:Gem::Version
249
- version: '1.3'
255
+ version: '1.20'
250
256
  type: :runtime
251
257
  prerelease: false
252
258
  version_requirements: !ruby/object:Gem::Requirement
253
259
  requirements:
254
260
  - - "~>"
255
261
  - !ruby/object:Gem::Version
256
- version: '1.3'
262
+ version: '1.20'
257
263
  - !ruby/object:Gem::Dependency
258
264
  name: mumukit-directives
259
265
  requirement: !ruby/object:Gem::Requirement
260
266
  requirements:
261
267
  - - "~>"
262
268
  - !ruby/object:Gem::Version
263
- version: '0.4'
269
+ version: '0.6'
264
270
  type: :runtime
265
271
  prerelease: false
266
272
  version_requirements: !ruby/object:Gem::Requirement
267
273
  requirements:
268
274
  - - "~>"
269
275
  - !ruby/object:Gem::Version
270
- version: '0.4'
276
+ version: '0.6'
271
277
  - !ruby/object:Gem::Dependency
272
278
  name: mumukit-content-type
273
279
  requirement: !ruby/object:Gem::Requirement
@@ -368,14 +374,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
368
374
  requirements:
369
375
  - - ">="
370
376
  - !ruby/object:Gem::Version
371
- version: '0'
377
+ version: '3.0'
372
378
  required_rubygems_version: !ruby/object:Gem::Requirement
373
379
  requirements:
374
380
  - - ">="
375
381
  - !ruby/object:Gem::Version
376
382
  version: '0'
377
383
  requirements: []
378
- rubygems_version: 3.0.3
384
+ rubygems_version: 3.4.10
379
385
  signing_key:
380
386
  specification_version: 4
381
387
  summary: Mumuki Test Server Development Kit