mumukit 2.18.1 → 2.19.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: 659899e2dc58610a3f7e719e40d37cec27036e9fac9efcb9faee18fbc6ea50c0
4
- data.tar.gz: ccf516286aac773ca9dc6d5bd606f02df3a9defa01831c0024393254a243ff94
3
+ metadata.gz: 95ed79f89e4fde9393a7d6399f76ec3121454fe95b12f3b985356e6639531c16
4
+ data.tar.gz: c4d389a3719496b384e18d537b9bec25620f3600ed6d1685de9250588e8ccabe
5
5
  SHA512:
6
- metadata.gz: 884a8ff595db7f16443537c457c11a160747ba3002687fbe30d1292b0cec3d237385d7c328111d423097696a040dc36ef8e330e50f5e8c9c92e7f5f80922ffa1
7
- data.tar.gz: 026858365c740fe5175791e1c7555ec249f7d8aa782b270b1590217809c2b6622bf309f7e7a1cad4bf1503e2a9c438f27aa3745968903ec027539444e1f2196e
6
+ metadata.gz: 9b326efa5b3b4583b5973aaf502b0cfc9b1279c1544df7fd1340fa1eb4d44b7ea6788ec34bc2a15ec4dd2c3160b845dc6bbe2227a10ede34e7f24d92acf9ee1e
7
+ data.tar.gz: c2f2f53456a181f928a3bfa2dd5575d5b414477d9ac6b0bf4f6e35739f52bb927469647e56c11bbc3270d63c75d9ab2c8e809874662ea42f9d8df41833efa24e
@@ -8,6 +8,8 @@ en:
8
8
  check_last_query_fails: "query should fail but it passed"
9
9
  check_last_query_matches: "query does not match regex %{regex}"
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}'"
11
13
  check_last_query_passes: "query should pass but it failed"
12
14
  check_query_fails: "query '%{query}' should fail but it passed"
13
15
  check_query_outputs: "query '%{query}' output should be '%{expected}' but was '%{actual}'"
@@ -8,6 +8,8 @@ es:
8
8
  check_last_query_fails: "La consulta debería fallar pero pasó"
9
9
  check_last_query_matches: "La consulta no cumple con la expresión regular %{regex}"
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}'"
11
13
  check_last_query_passes: "La consulta debería pasar pero falló"
12
14
  check_query_fails: "La consulta '%{query}' debería fallar pero pasó"
13
15
  check_query_outputs: "La consulta '%{query}' debería devolver '%{expected}' pero devolvió '%{actual}'"
@@ -9,5 +9,6 @@ require_relative './defaults/default_query_hook'
9
9
  require_relative './defaults/default_feedback_hook'
10
10
  require_relative './defaults/default_validation_hook'
11
11
  require_relative './defaults/default_test_hook'
12
+ require_relative './defaults/default_precompile_hook'
12
13
  require_relative './defaults/default_try_hook'
13
- require_relative './defaults/default_metadata_hook'
14
+ require_relative './defaults/default_metadata_hook'
@@ -0,0 +1,5 @@
1
+ class Mumukit::Defaults::PrecompileHook < Mumukit::Hook
2
+ def compile(request)
3
+ request
4
+ end
5
+ end
@@ -21,9 +21,21 @@ module Mumukit::Metatest
21
21
  end
22
22
 
23
23
  def check_last_query_outputs(result, goal)
24
+ compare_last_query_by(:check_last_query_outputs, result, goal) { |expected, actual| expected == actual }
25
+ end
26
+
27
+ def check_last_query_output_includes(result, goal)
28
+ compare_last_query_by(:check_last_query_output_includes, result, goal) { |expected, actual| actual.include? expected }
29
+ end
30
+
31
+ def check_last_query_output_like(result, goal)
32
+ compare_last_query_by(:check_last_query_output_like, result, goal) { |expected, actual| normalize(expected) == normalize(actual) }
33
+ end
34
+
35
+ def compare_last_query_by(sym, result, goal, &condition)
24
36
  expected = goal[:output]
25
37
  actual = result[:query][:result]
26
- fail_t :check_last_query_outputs, expected: expected, actual: actual unless expected == actual
38
+ fail_t sym, expected: expected, actual: actual unless condition.call expected, actual
27
39
  end
28
40
 
29
41
  def check_last_query_passes(result, _goal)
@@ -55,5 +67,10 @@ module Mumukit::Metatest
55
67
  def locale(sym)
56
68
  'mumukit.interactive.' + sym.to_s
57
69
  end
70
+
71
+ def normalize(a_string)
72
+ a_string.delete(" \t\r\n").downcase
73
+ end
74
+
58
75
  end
59
76
  end
@@ -10,6 +10,7 @@ module Mumukit::RuntimeInfo
10
10
  output_content_type: Mumukit.config.content_type,
11
11
  comment_type: Mumukit.config.comment_type,
12
12
  features: {
13
+ precompile: precompile_hook?,
13
14
  query: query_hook?,
14
15
  try: try_hook?,
15
16
  expectations: expectations_hook?,
@@ -91,7 +91,7 @@ class Mumukit::Server::TestServer
91
91
  end
92
92
 
93
93
  def preprocess(request)
94
- Mumukit.directives_pipeline.transform(request)
94
+ runtime.precompile_hook.compile Mumukit.directives_pipeline.transform(request)
95
95
  end
96
96
 
97
97
  def validate_request!(request)
@@ -8,7 +8,7 @@ module Mumukit
8
8
  OBJECT_ORIENTED_SMELLS = %w(DoesNullTest ReturnsNull)
9
9
  IMPERATIVE_SMELLS = %w(HasRedundantLocalVariableReturn HasAssignmentReturn)
10
10
  EXPRESSIVENESS_SMELLS = %w(HasTooShortBindings HasWrongCaseBindings HasMisspelledBindings)
11
- GENERIC_SMELLS = %w(IsLongCode HasCodeDuplication HasRedundantLambda HasRedundantIf DoesTypeTest HasRedundantBooleanComparison)
11
+ GENERIC_SMELLS = %w(IsLongCode HasCodeDuplication HasRedundantLambda HasRedundantIf DoesTypeTest HasRedundantBooleanComparison HasEmptyIfBranches)
12
12
 
13
13
  required :language, 'You have to provide a Mulang-compatible language in order to use this hook'
14
14
 
@@ -1,3 +1,3 @@
1
1
  module Mumukit
2
- VERSION = '2.18.1'
2
+ VERSION = '2.19.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.18.1
4
+ version: 2.19.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: 2017-12-19 00:00:00.000000000 Z
11
+ date: 2018-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -263,6 +263,7 @@ files:
263
263
  - lib/mumukit/defaults/default_expectations_hook.rb
264
264
  - lib/mumukit/defaults/default_feedback_hook.rb
265
265
  - lib/mumukit/defaults/default_metadata_hook.rb
266
+ - lib/mumukit/defaults/default_precompile_hook.rb
266
267
  - lib/mumukit/defaults/default_query_hook.rb
267
268
  - lib/mumukit/defaults/default_test_hook.rb
268
269
  - lib/mumukit/defaults/default_try_hook.rb
@@ -328,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
328
329
  version: '0'
329
330
  requirements: []
330
331
  rubyforge_project:
331
- rubygems_version: 2.7.3
332
+ rubygems_version: 2.7.4
332
333
  signing_key:
333
334
  specification_version: 4
334
335
  summary: Mumuki Test Server Development Kit