mumukit 2.7.0 → 2.8.0
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/lib/mumukit/runner.rb +18 -0
- data/lib/mumukit/server/test_server.rb +1 -14
- data/lib/mumukit/templates/file_hook.rb +7 -0
- data/lib/mumukit/templates/with_metatest.rb +14 -0
- data/lib/mumukit/templates/with_metatest_results.rb +31 -0
- data/lib/mumukit/templates/with_structured_results.rb +6 -2
- data/lib/mumukit/templates.rb +2 -0
- data/lib/mumukit/version.rb +1 -1
- data/lib/mumukit.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b1423fda205b081b91b0561d56e411b8939a3725
|
|
4
|
+
data.tar.gz: c86cfd9ad3ba565a0edb82f69aaaa54c65bf70bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 957d17aa5282ab203ee13d5a988ba736db8f9cda15592fc4f3be26fde2ed69fd2584040fc0e2ce3786ff2476ffe6feb226bb5a0624be379c2c25eed7aa276799
|
|
7
|
+
data.tar.gz: 1fd89515534bd0e4fd1a06204c03ffe8249f4816b5b779129ac8c253324e27def6a6b994bace145baf02aa20b69102c4fe28ff299f79b18dd61e040b8b9e3243
|
data/lib/mumukit/runner.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
class Mumukit::Runner
|
|
2
3
|
attr_reader :name, :runtime
|
|
3
4
|
|
|
@@ -22,6 +23,23 @@ class Mumukit::Runner
|
|
|
22
23
|
name.camelize
|
|
23
24
|
end
|
|
24
25
|
|
|
26
|
+
def directives_pipeline
|
|
27
|
+
@pipeline ||= new_directives_pipeline
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def new_directives_pipeline
|
|
31
|
+
if config.preprocessor_enabled
|
|
32
|
+
Mumukit::Directives::Pipeline.new(
|
|
33
|
+
[Mumukit::Directives::Sections.new,
|
|
34
|
+
Mumukit::Directives::Interpolations.new('test'),
|
|
35
|
+
Mumukit::Directives::Interpolations.new('extra'),
|
|
36
|
+
Mumukit::Directives::Flags.new],
|
|
37
|
+
config.comment_type)
|
|
38
|
+
else
|
|
39
|
+
Mumukit::Directives::NullPipeline
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
25
43
|
def self.default_config
|
|
26
44
|
@default_config
|
|
27
45
|
end
|
|
@@ -87,20 +87,7 @@ class Mumukit::Server::TestServer
|
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
def preprocess(request)
|
|
90
|
-
|
|
91
|
-
directives_pipeline.transform(request)
|
|
92
|
-
else
|
|
93
|
-
request
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def directives_pipeline
|
|
98
|
-
@pipeline ||= Mumukit::Directives::Pipeline.new(
|
|
99
|
-
[Mumukit::Directives::Sections.new,
|
|
100
|
-
Mumukit::Directives::Interpolations.new('test'),
|
|
101
|
-
Mumukit::Directives::Interpolations.new('extra'),
|
|
102
|
-
Mumukit::Directives::Flags.new],
|
|
103
|
-
Mumukit.config.comment_type)
|
|
90
|
+
Mumukit.directives_pipeline.transform(request)
|
|
104
91
|
end
|
|
105
92
|
|
|
106
93
|
def validate_request!(request)
|
|
@@ -22,6 +22,13 @@ module Mumukit
|
|
|
22
22
|
|
|
23
23
|
required :run_file!, 'Wrong configuration. You must include an environment mixin'
|
|
24
24
|
|
|
25
|
+
def self.metatested(value=true)
|
|
26
|
+
if value
|
|
27
|
+
include Mumukit::Templates::WithMetatest
|
|
28
|
+
include Mumukit::Templates::WithMetatestResults
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
25
32
|
def self.structured(value=true)
|
|
26
33
|
if value
|
|
27
34
|
include Mumukit::Templates::WithStructuredResults
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Mumukit::Templates::WithMetatest
|
|
2
|
+
def metatest
|
|
3
|
+
Mumukit::Metatest::Framework.new checker: metatest_checker,
|
|
4
|
+
runner: metatest_runner
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def metatest_runner
|
|
8
|
+
Mumukit::Metatest::IdentityRunner.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def run_metatest!(target, examples)
|
|
12
|
+
metatest.test target, examples
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Mumukit::Templates::WithMetatestResults
|
|
2
|
+
def compile_file_content(request)
|
|
3
|
+
@examples = compile_metatest_examples(request)
|
|
4
|
+
compile_metatest_file_content(request)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def compile_metatest_examples(request)
|
|
8
|
+
YAML.load(request.test).deep_symbolize_keys[:examples]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def post_process_file(file, result, status)
|
|
12
|
+
if status == :passed
|
|
13
|
+
run_metatest! to_metatest_compilation(result), @examples
|
|
14
|
+
else
|
|
15
|
+
post_process_unsuccessful_result(file, result, status)
|
|
16
|
+
end
|
|
17
|
+
rescue JSON::ParserError
|
|
18
|
+
[result, :errored]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def post_process_unsuccessful_result(_file, result, status)
|
|
22
|
+
[result, status]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def to_metatest_compilation(result)
|
|
26
|
+
JSON.pretty_parse(result).deep_symbolize_keys
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
@@ -3,13 +3,17 @@ module Mumukit::Templates::WithStructuredResults
|
|
|
3
3
|
if [:passed, :failed].include? status
|
|
4
4
|
[to_structured_result(result)]
|
|
5
5
|
else
|
|
6
|
-
|
|
6
|
+
post_process_unstructured_result(file, result, status)
|
|
7
7
|
end
|
|
8
8
|
rescue JSON::ParserError
|
|
9
9
|
[result, :errored]
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
+
def post_process_unstructured_result(_file, result, status)
|
|
13
|
+
[result, status]
|
|
14
|
+
end
|
|
15
|
+
|
|
12
16
|
def to_structured_result(result)
|
|
13
17
|
JSON.pretty_parse(result)
|
|
14
18
|
end
|
|
15
|
-
end
|
|
19
|
+
end
|
data/lib/mumukit/templates.rb
CHANGED
|
@@ -5,6 +5,8 @@ end
|
|
|
5
5
|
|
|
6
6
|
require_relative './templates/file_hook'
|
|
7
7
|
require_relative './templates/with_structured_results'
|
|
8
|
+
require_relative './templates/with_metatest'
|
|
9
|
+
require_relative './templates/with_metatest_results'
|
|
8
10
|
require_relative './templates/with_mashup_file_content'
|
|
9
11
|
require_relative './templates/with_embedded_environment'
|
|
10
12
|
require_relative './templates/with_isolated_environment'
|
data/lib/mumukit/version.rb
CHANGED
data/lib/mumukit.rb
CHANGED
|
@@ -27,7 +27,7 @@ module Mumukit
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
class << self
|
|
30
|
-
delegate :prefix, :config, :configure, :runtime, :configure_runtime, to: :current_runner
|
|
30
|
+
delegate :prefix, :config, :configure, :runtime, :configure_runtime, :directives_pipeline, to: :current_runner
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
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.
|
|
4
|
+
version: 2.8.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:
|
|
11
|
+
date: 2017-05-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -184,14 +184,14 @@ dependencies:
|
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0.
|
|
187
|
+
version: '0.2'
|
|
188
188
|
type: :runtime
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0.
|
|
194
|
+
version: '0.2'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: mumukit-content-type
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -254,6 +254,8 @@ files:
|
|
|
254
254
|
- lib/mumukit/templates/with_embedded_environment.rb
|
|
255
255
|
- lib/mumukit/templates/with_isolated_environment.rb
|
|
256
256
|
- lib/mumukit/templates/with_mashup_file_content.rb
|
|
257
|
+
- lib/mumukit/templates/with_metatest.rb
|
|
258
|
+
- lib/mumukit/templates/with_metatest_results.rb
|
|
257
259
|
- lib/mumukit/templates/with_structured_results.rb
|
|
258
260
|
- lib/mumukit/version.rb
|
|
259
261
|
- lib/mumukit/with_command_line.rb
|