simmer 2.0.0 → 2.1.0.pre.alpha
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -1
- data/CHANGELOG.md +8 -0
- data/lib/simmer/database/fixture_set.rb +3 -1
- data/lib/simmer/judge/result.rb +1 -1
- data/lib/simmer/runner/result.rb +28 -6
- data/lib/simmer/runner.rb +44 -9
- data/lib/simmer/suite/reporter.rb +1 -1
- data/lib/simmer/suite/result.rb +1 -0
- data/lib/simmer/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8469413b339324e3aaf45eea56f7245bed4624bd9979e238d1c8538eb1137df
|
4
|
+
data.tar.gz: cb99f6ececbf91facf3383487455c2beda0739d71c3869755f38ac2f9cbc5fd4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b77ab5434f1f1ba2ec7ad7871f988cc5b637fe7488599f445aa5c41a685053542656aeaab68188c700aa576b7dd2539bf53c9842574dee6592b5762949767988
|
7
|
+
data.tar.gz: bb69b280fa06cb96c3e7582596191fff239250cae05fb76d36c6156ee4f65b7995a5eb4f7632f70e4d115626f60b48c9222ed82dc21de2569c92564ad9cb24bd
|
data/.rubocop.yml
CHANGED
@@ -13,7 +13,7 @@ Metrics/BlockLength:
|
|
13
13
|
- define
|
14
14
|
|
15
15
|
Metrics/MethodLength:
|
16
|
-
Max:
|
16
|
+
Max: 30
|
17
17
|
|
18
18
|
AllCops:
|
19
19
|
TargetRubyVersion: 2.5
|
@@ -23,3 +23,9 @@ Metrics/AbcSize:
|
|
23
23
|
|
24
24
|
Metrics/ClassLength:
|
25
25
|
Max: 125
|
26
|
+
|
27
|
+
Style/TrailingCommaInHashLiteral:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
Style/TrailingCommaInArrayLiteral:
|
31
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# 2.1.0 (May 12th, 2020)
|
2
|
+
|
3
|
+
Additions:
|
4
|
+
|
5
|
+
* Do not make missing fixtures short-circuit the rest of the test suite.
|
6
|
+
* Do not make PDI timeouts short-circuit the rest of the test suite.
|
7
|
+
* Report PDI's exit code and execution time to the console.
|
8
|
+
|
1
9
|
# 2.0.0 (May 11th, 2020)
|
2
10
|
|
3
11
|
Breaking Changes:
|
@@ -13,6 +13,8 @@ module Simmer
|
|
13
13
|
module Database
|
14
14
|
# Hydrate a collection of Fixture instances from configuration.
|
15
15
|
class FixtureSet
|
16
|
+
class FixtureMissingError < StandardError; end
|
17
|
+
|
16
18
|
def initialize(config = {})
|
17
19
|
@fixtures_by_name = config_to_fixures_by_name(config)
|
18
20
|
|
@@ -22,7 +24,7 @@ module Simmer
|
|
22
24
|
def get!(name)
|
23
25
|
key = name.to_s
|
24
26
|
|
25
|
-
raise
|
27
|
+
raise FixtureMissingError, "fixture missing: #{name}" unless fixtures_by_name.key?(key)
|
26
28
|
|
27
29
|
fixtures_by_name[key]
|
28
30
|
end
|
data/lib/simmer/judge/result.rb
CHANGED
data/lib/simmer/runner/result.rb
CHANGED
@@ -13,23 +13,36 @@ module Simmer
|
|
13
13
|
class Result
|
14
14
|
extend Forwardable
|
15
15
|
|
16
|
-
attr_reader :id, :judge_result, :specification, :spoon_client_result
|
17
|
-
|
18
|
-
def_delegators :spoon_client_result, :time_in_seconds
|
16
|
+
attr_reader :errors, :id, :judge_result, :specification, :spoon_client_result
|
19
17
|
|
20
18
|
def_delegators :specification, :name
|
21
19
|
|
22
|
-
def initialize(
|
20
|
+
def initialize(
|
21
|
+
id:,
|
22
|
+
specification:,
|
23
|
+
judge_result: nil,
|
24
|
+
spoon_client_result: nil,
|
25
|
+
errors: []
|
26
|
+
)
|
23
27
|
@id = id.to_s
|
24
28
|
@judge_result = judge_result
|
25
29
|
@specification = specification
|
26
30
|
@spoon_client_result = spoon_client_result
|
31
|
+
@errors = Array(errors)
|
27
32
|
|
28
33
|
freeze
|
29
34
|
end
|
30
35
|
|
36
|
+
def time_in_seconds
|
37
|
+
spoon_client_result&.time_in_seconds || 0
|
38
|
+
end
|
39
|
+
|
31
40
|
def pass?
|
32
|
-
|
41
|
+
[
|
42
|
+
judge_result&.pass?,
|
43
|
+
spoon_client_result&.pass?,
|
44
|
+
errors.empty?,
|
45
|
+
].all?
|
33
46
|
end
|
34
47
|
|
35
48
|
def fail?
|
@@ -44,9 +57,18 @@ module Simmer
|
|
44
57
|
'time_in_seconds' => time_in_seconds,
|
45
58
|
'pass' => pass?,
|
46
59
|
'spoon_client_result' => spoon_client_result.to_h,
|
47
|
-
'judge_result' => judge_result.to_h
|
60
|
+
'judge_result' => judge_result.to_h,
|
61
|
+
'errors' => errors,
|
48
62
|
}
|
49
63
|
end
|
64
|
+
|
65
|
+
def execution_output
|
66
|
+
execution_result&.out
|
67
|
+
end
|
68
|
+
|
69
|
+
def execution_result
|
70
|
+
spoon_client_result&.execution_result
|
71
|
+
end
|
50
72
|
end
|
51
73
|
end
|
52
74
|
end
|
data/lib/simmer/runner.rb
CHANGED
@@ -30,18 +30,26 @@ module Simmer
|
|
30
30
|
print("Name: #{specification.name}")
|
31
31
|
print("Path: #{specification.path}")
|
32
32
|
|
33
|
-
|
34
|
-
seed_db(specification)
|
35
|
-
clean_file_system
|
36
|
-
seed_file_system(specification)
|
33
|
+
clean_and_seed(specification)
|
37
34
|
|
38
35
|
spoon_client_result = execute_spoon(specification, config)
|
39
36
|
judge_result = assert(specification, spoon_client_result)
|
40
37
|
|
41
|
-
Result.new(
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
Result.new(
|
39
|
+
id: id,
|
40
|
+
judge_result: judge_result,
|
41
|
+
specification: specification,
|
42
|
+
spoon_client_result: spoon_client_result
|
43
|
+
).tap do |result|
|
44
|
+
print_result(result)
|
45
|
+
end
|
46
|
+
rescue Database::FixtureSet::FixtureMissingError, Timeout::Error => e
|
47
|
+
Result.new(
|
48
|
+
id: id,
|
49
|
+
specification: specification,
|
50
|
+
errors: e.message
|
51
|
+
).tap do |result|
|
52
|
+
print_result(result)
|
45
53
|
end
|
46
54
|
end
|
47
55
|
|
@@ -49,6 +57,19 @@ module Simmer
|
|
49
57
|
|
50
58
|
attr_reader :database, :file_system, :fixture_set, :judge, :out
|
51
59
|
|
60
|
+
def print_result(result)
|
61
|
+
msg = pass_message(result)
|
62
|
+
print_waiting('Done', 'Final verdict')
|
63
|
+
print(msg)
|
64
|
+
end
|
65
|
+
|
66
|
+
def clean_and_seed(specification)
|
67
|
+
clean_db
|
68
|
+
seed_db(specification)
|
69
|
+
clean_file_system
|
70
|
+
seed_file_system(specification)
|
71
|
+
end
|
72
|
+
|
52
73
|
def clean_db
|
53
74
|
print_waiting('Stage', 'Cleaning database')
|
54
75
|
count = database.clean!
|
@@ -66,6 +87,9 @@ module Simmer
|
|
66
87
|
print("#{count} record(s) inserted")
|
67
88
|
|
68
89
|
count
|
90
|
+
rescue Database::FixtureSet::FixtureMissingError => e
|
91
|
+
print('Missing Fixture(s)')
|
92
|
+
raise e
|
69
93
|
end
|
70
94
|
|
71
95
|
def clean_file_system
|
@@ -86,11 +110,22 @@ module Simmer
|
|
86
110
|
|
87
111
|
def execute_spoon(specification, config)
|
88
112
|
print_waiting('Act', 'Executing Spoon')
|
113
|
+
|
89
114
|
spoon_client_result = spoon_client.run(specification, config)
|
90
|
-
|
115
|
+
time_in_seconds = spoon_client_result.time_in_seconds
|
116
|
+
code = spoon_client_result.execution_result.status.code
|
117
|
+
|
118
|
+
msg = [
|
119
|
+
pass_message(spoon_client_result),
|
120
|
+
"(Exited with code #{code} after #{time_in_seconds} seconds)"
|
121
|
+
].join(' ')
|
122
|
+
|
91
123
|
print(msg)
|
92
124
|
|
93
125
|
spoon_client_result
|
126
|
+
rescue Timeout::Error => e
|
127
|
+
print('Timed out')
|
128
|
+
raise e
|
94
129
|
end
|
95
130
|
|
96
131
|
def assert(specification, spoon_client_result)
|
@@ -58,7 +58,7 @@ module Simmer
|
|
58
58
|
runner_results.each do |runner_result|
|
59
59
|
name = runner_result.name
|
60
60
|
runner_id = runner_result.id
|
61
|
-
out_contents = runner_result.
|
61
|
+
out_contents = runner_result.execution_output
|
62
62
|
|
63
63
|
write_block(pdi_out_file, name, runner_id, out_contents)
|
64
64
|
end
|
data/lib/simmer/suite/result.rb
CHANGED
data/lib/simmer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.1.0.pre.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Ruggio
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: acts_as_hashable
|
@@ -275,9 +275,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
275
275
|
version: '2.5'
|
276
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
277
277
|
requirements:
|
278
|
-
- - "
|
278
|
+
- - ">"
|
279
279
|
- !ruby/object:Gem::Version
|
280
|
-
version:
|
280
|
+
version: 1.3.1
|
281
281
|
requirements: []
|
282
282
|
rubygems_version: 3.0.3
|
283
283
|
signing_key:
|