simmer 1.0.0.pre.alpha.3 → 1.0.0.pre.alpha.4
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/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/lib/simmer.rb +103 -9
- data/lib/simmer/configuration.rb +7 -17
- data/lib/simmer/database.rb +10 -0
- data/lib/simmer/{util → database}/fixture.rb +7 -3
- data/lib/simmer/{util → database}/fixture_set.rb +10 -4
- data/lib/simmer/externals/aws_file_system.rb +30 -23
- data/lib/simmer/externals/mysql_database.rb +17 -10
- data/lib/simmer/externals/spoon_client.rb +5 -19
- data/lib/simmer/runner.rb +2 -2
- data/lib/simmer/specification/act.rb +1 -6
- data/lib/simmer/specification/assert/assertions/table.rb +1 -6
- data/lib/simmer/spoon_mock.rb +35 -0
- data/lib/simmer/suite.rb +49 -43
- data/lib/simmer/{session → suite}/reporter.rb +1 -1
- data/lib/simmer/{session → suite}/result.rb +1 -1
- data/lib/simmer/util.rb +0 -1
- data/lib/simmer/util/evaluator.rb +4 -5
- data/lib/simmer/util/record.rb +2 -0
- data/lib/simmer/util/record_set.rb +5 -1
- data/lib/simmer/util/resolver.rb +2 -2
- data/lib/simmer/util/yaml_reader.rb +9 -12
- data/lib/simmer/version.rb +1 -1
- data/spec/config/simmer.yaml.ci +7 -0
- data/spec/db/database.sql +1 -0
- data/spec/db/tables.sql +20 -0
- data/spec/db_helper.rb +26 -0
- data/spec/fixtures/agent_fixtures.yaml +14 -0
- data/spec/fixtures/configuration.yaml +11 -0
- data/spec/fixtures/noc_list.csv +3 -0
- data/spec/fixtures/specifications/load_noc_list.yaml +30 -0
- data/spec/fixtures/yaml_reader/bar.yaml +2 -0
- data/spec/fixtures/yaml_reader/baz/baz.yaml +2 -0
- data/spec/fixtures/yaml_reader/foo.yaml +2 -0
- data/spec/simmer/configuration_spec.rb +46 -0
- data/spec/simmer/database/fixture_set_spec.rb +75 -0
- data/spec/simmer/database/fixture_spec.rb +57 -0
- data/spec/simmer/externals/aws_file_system_spec.rb +75 -0
- data/spec/simmer/externals/mysql_database_spec.rb +79 -0
- data/spec/simmer/externals/spoon_client_spec.rb +67 -0
- data/spec/simmer/specification/act/params_spec.rb +38 -0
- data/spec/simmer/specification/act_spec.rb +37 -0
- data/spec/simmer/specification/assert_spec.rb +27 -0
- data/spec/simmer/specification/stage_spec.rb +32 -0
- data/spec/simmer/specification_spec.rb +28 -0
- data/spec/simmer/util/evaluator_spec.rb +82 -0
- data/spec/simmer/util/record_set_spec.rb +41 -0
- data/spec/simmer/util/record_spec.rb +218 -0
- data/spec/simmer/util/yaml_reader_spec.rb +49 -0
- data/spec/spec_helper.rb +21 -0
- metadata +60 -8
- data/lib/simmer/externals/spoon_client/mock.rb +0 -39
- data/lib/simmer/session.rb +0 -79
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Copyright (c) 2020-present, Blue Marble Payroll, LLC
|
5
|
+
#
|
6
|
+
# This source code is licensed under the MIT license found in the
|
7
|
+
# LICENSE file in the root directory of this source tree.
|
8
|
+
#
|
9
|
+
|
10
|
+
require 'spec_helper'
|
11
|
+
|
12
|
+
describe Simmer::Util::YamlReader do
|
13
|
+
specify '#read reads file and returns parsed YAML' do
|
14
|
+
path = File.join('spec', 'fixtures', 'yaml_reader', 'foo.yaml')
|
15
|
+
actual = subject.read(path)
|
16
|
+
|
17
|
+
expected = [
|
18
|
+
OpenStruct.new(
|
19
|
+
path: File.expand_path(path),
|
20
|
+
data: {
|
21
|
+
'foo' => {
|
22
|
+
'type' => 'foofy'
|
23
|
+
}
|
24
|
+
}
|
25
|
+
)
|
26
|
+
]
|
27
|
+
|
28
|
+
expect(actual).to eq(expected)
|
29
|
+
end
|
30
|
+
|
31
|
+
specify '#smash recursively combines all YAML in a directory' do
|
32
|
+
path = File.join('spec', 'fixtures', 'yaml_reader')
|
33
|
+
actual = subject.smash(path)
|
34
|
+
|
35
|
+
expected = {
|
36
|
+
'bar' => {
|
37
|
+
'type' => 'barby'
|
38
|
+
},
|
39
|
+
'baz' => {
|
40
|
+
'type' => 'bazzy'
|
41
|
+
},
|
42
|
+
'foo' => {
|
43
|
+
'type' => 'foofy'
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
expect(actual).to eq(expected)
|
48
|
+
end
|
49
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
# LICENSE file in the root directory of this source tree.
|
8
8
|
#
|
9
9
|
|
10
|
+
require 'ostruct'
|
10
11
|
require 'pry'
|
11
12
|
|
12
13
|
unless ENV['DISABLE_SIMPLECOV'] == 'true'
|
@@ -20,3 +21,23 @@ unless ENV['DISABLE_SIMPLECOV'] == 'true'
|
|
20
21
|
end
|
21
22
|
|
22
23
|
require './lib/simmer'
|
24
|
+
|
25
|
+
def fixture_path(*filename)
|
26
|
+
File.join('spec', 'fixtures', filename)
|
27
|
+
end
|
28
|
+
|
29
|
+
def fixture(*filename)
|
30
|
+
File.read(fixture_path(*filename))
|
31
|
+
end
|
32
|
+
|
33
|
+
def yaml_fixture(*filename)
|
34
|
+
YAML.safe_load(fixture(*filename))
|
35
|
+
end
|
36
|
+
|
37
|
+
def yaml_read(*filename)
|
38
|
+
YAML.safe_load(File.read(File.join(*filename)))
|
39
|
+
end
|
40
|
+
|
41
|
+
def simmer_config
|
42
|
+
yaml_read('spec', 'config', 'simmer.yaml')
|
43
|
+
end
|
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: 1.0.0.pre.alpha.
|
4
|
+
version: 1.0.0.pre.alpha.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Ruggio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: acts_as_hashable
|
@@ -218,20 +218,19 @@ files:
|
|
218
218
|
- lib/simmer.rb
|
219
219
|
- lib/simmer/configuration.rb
|
220
220
|
- lib/simmer/core_ext/hash.rb
|
221
|
+
- lib/simmer/database.rb
|
222
|
+
- lib/simmer/database/fixture.rb
|
223
|
+
- lib/simmer/database/fixture_set.rb
|
221
224
|
- lib/simmer/externals.rb
|
222
225
|
- lib/simmer/externals/aws_file_system.rb
|
223
226
|
- lib/simmer/externals/mysql_database.rb
|
224
227
|
- lib/simmer/externals/mysql_database/sql_fixture.rb
|
225
228
|
- lib/simmer/externals/spoon_client.rb
|
226
|
-
- lib/simmer/externals/spoon_client/mock.rb
|
227
229
|
- lib/simmer/externals/spoon_client/result.rb
|
228
230
|
- lib/simmer/judge.rb
|
229
231
|
- lib/simmer/judge/result.rb
|
230
232
|
- lib/simmer/runner.rb
|
231
233
|
- lib/simmer/runner/result.rb
|
232
|
-
- lib/simmer/session.rb
|
233
|
-
- lib/simmer/session/reporter.rb
|
234
|
-
- lib/simmer/session/result.rb
|
235
234
|
- lib/simmer/specification.rb
|
236
235
|
- lib/simmer/specification/act.rb
|
237
236
|
- lib/simmer/specification/act/params.rb
|
@@ -243,18 +242,45 @@ files:
|
|
243
242
|
- lib/simmer/specification/assert/assertions/table.rb
|
244
243
|
- lib/simmer/specification/stage.rb
|
245
244
|
- lib/simmer/specification/stage/input_file.rb
|
245
|
+
- lib/simmer/spoon_mock.rb
|
246
246
|
- lib/simmer/suite.rb
|
247
|
+
- lib/simmer/suite/reporter.rb
|
248
|
+
- lib/simmer/suite/result.rb
|
247
249
|
- lib/simmer/util.rb
|
248
250
|
- lib/simmer/util/evaluator.rb
|
249
|
-
- lib/simmer/util/fixture.rb
|
250
|
-
- lib/simmer/util/fixture_set.rb
|
251
251
|
- lib/simmer/util/record.rb
|
252
252
|
- lib/simmer/util/record_set.rb
|
253
253
|
- lib/simmer/util/resolver.rb
|
254
254
|
- lib/simmer/util/yaml_reader.rb
|
255
255
|
- lib/simmer/version.rb
|
256
256
|
- simmer.gemspec
|
257
|
+
- spec/config/simmer.yaml.ci
|
258
|
+
- spec/db/database.sql
|
259
|
+
- spec/db/tables.sql
|
260
|
+
- spec/db_helper.rb
|
261
|
+
- spec/fixtures/agent_fixtures.yaml
|
262
|
+
- spec/fixtures/configuration.yaml
|
263
|
+
- spec/fixtures/noc_list.csv
|
264
|
+
- spec/fixtures/specifications/load_noc_list.yaml
|
265
|
+
- spec/fixtures/yaml_reader/bar.yaml
|
266
|
+
- spec/fixtures/yaml_reader/baz/baz.yaml
|
267
|
+
- spec/fixtures/yaml_reader/foo.yaml
|
268
|
+
- spec/simmer/configuration_spec.rb
|
257
269
|
- spec/simmer/core_ext/hash_spec.rb
|
270
|
+
- spec/simmer/database/fixture_set_spec.rb
|
271
|
+
- spec/simmer/database/fixture_spec.rb
|
272
|
+
- spec/simmer/externals/aws_file_system_spec.rb
|
273
|
+
- spec/simmer/externals/mysql_database_spec.rb
|
274
|
+
- spec/simmer/externals/spoon_client_spec.rb
|
275
|
+
- spec/simmer/specification/act/params_spec.rb
|
276
|
+
- spec/simmer/specification/act_spec.rb
|
277
|
+
- spec/simmer/specification/assert_spec.rb
|
278
|
+
- spec/simmer/specification/stage_spec.rb
|
279
|
+
- spec/simmer/specification_spec.rb
|
280
|
+
- spec/simmer/util/evaluator_spec.rb
|
281
|
+
- spec/simmer/util/record_set_spec.rb
|
282
|
+
- spec/simmer/util/record_spec.rb
|
283
|
+
- spec/simmer/util/yaml_reader_spec.rb
|
258
284
|
- spec/spec_helper.rb
|
259
285
|
homepage: https://github.com/bluemarblepayroll/simmer
|
260
286
|
licenses:
|
@@ -280,5 +306,31 @@ signing_key:
|
|
280
306
|
specification_version: 4
|
281
307
|
summary: Pentaho Data Integration Automated Test Suite
|
282
308
|
test_files:
|
309
|
+
- spec/config/simmer.yaml.ci
|
310
|
+
- spec/db/database.sql
|
311
|
+
- spec/db/tables.sql
|
312
|
+
- spec/db_helper.rb
|
313
|
+
- spec/fixtures/agent_fixtures.yaml
|
314
|
+
- spec/fixtures/configuration.yaml
|
315
|
+
- spec/fixtures/noc_list.csv
|
316
|
+
- spec/fixtures/specifications/load_noc_list.yaml
|
317
|
+
- spec/fixtures/yaml_reader/bar.yaml
|
318
|
+
- spec/fixtures/yaml_reader/baz/baz.yaml
|
319
|
+
- spec/fixtures/yaml_reader/foo.yaml
|
320
|
+
- spec/simmer/configuration_spec.rb
|
283
321
|
- spec/simmer/core_ext/hash_spec.rb
|
322
|
+
- spec/simmer/database/fixture_set_spec.rb
|
323
|
+
- spec/simmer/database/fixture_spec.rb
|
324
|
+
- spec/simmer/externals/aws_file_system_spec.rb
|
325
|
+
- spec/simmer/externals/mysql_database_spec.rb
|
326
|
+
- spec/simmer/externals/spoon_client_spec.rb
|
327
|
+
- spec/simmer/specification/act/params_spec.rb
|
328
|
+
- spec/simmer/specification/act_spec.rb
|
329
|
+
- spec/simmer/specification/assert_spec.rb
|
330
|
+
- spec/simmer/specification/stage_spec.rb
|
331
|
+
- spec/simmer/specification_spec.rb
|
332
|
+
- spec/simmer/util/evaluator_spec.rb
|
333
|
+
- spec/simmer/util/record_set_spec.rb
|
334
|
+
- spec/simmer/util/record_spec.rb
|
335
|
+
- spec/simmer/util/yaml_reader_spec.rb
|
284
336
|
- spec/spec_helper.rb
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
#
|
4
|
-
# Copyright (c) 2020-present, Blue Marble Payroll, LLC
|
5
|
-
#
|
6
|
-
# This source code is licensed under the MIT license found in the
|
7
|
-
# LICENSE file in the root directory of this source tree.
|
8
|
-
#
|
9
|
-
|
10
|
-
module Simmer
|
11
|
-
module Externals
|
12
|
-
class SpoonClient
|
13
|
-
# Provides a simple mock for the underlying Pdi::Spoon class.
|
14
|
-
class Mock
|
15
|
-
attr_reader :pass
|
16
|
-
|
17
|
-
def initialize(pass = true)
|
18
|
-
@pass = pass
|
19
|
-
|
20
|
-
freeze
|
21
|
-
end
|
22
|
-
|
23
|
-
def run(*)
|
24
|
-
raise Pdi::Spoon::KitchenError, 'mocked' unless pass
|
25
|
-
|
26
|
-
Pdi::Executor::Result.new(
|
27
|
-
args: [],
|
28
|
-
status: {
|
29
|
-
code: 0,
|
30
|
-
err: 'Some error output from PDI',
|
31
|
-
out: 'Some output from PDI',
|
32
|
-
pid: 123
|
33
|
-
}
|
34
|
-
)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/lib/simmer/session.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
#
|
4
|
-
# Copyright (c) 2020-present, Blue Marble Payroll, LLC
|
5
|
-
#
|
6
|
-
# This source code is licensed under the MIT license found in the
|
7
|
-
# LICENSE file in the root directory of this source tree.
|
8
|
-
#
|
9
|
-
|
10
|
-
require_relative 'session/reporter'
|
11
|
-
require_relative 'session/result'
|
12
|
-
|
13
|
-
module Simmer
|
14
|
-
# Runs a collection of specifications and then writes down the results to disk.
|
15
|
-
class Session
|
16
|
-
def initialize(
|
17
|
-
config:,
|
18
|
-
out:,
|
19
|
-
resolver: Objectable.resolver,
|
20
|
-
results_dir:,
|
21
|
-
runner:
|
22
|
-
)
|
23
|
-
@config = config || {}
|
24
|
-
@out = out
|
25
|
-
@resolver = resolver
|
26
|
-
@results_dir = results_dir
|
27
|
-
@runner = runner
|
28
|
-
|
29
|
-
freeze
|
30
|
-
end
|
31
|
-
|
32
|
-
def run(specifications)
|
33
|
-
runner_results = run_all_specs(specifications)
|
34
|
-
|
35
|
-
Result.new(runner_results).tap do |result|
|
36
|
-
if result.pass?
|
37
|
-
out.puts('Suite ended successfully')
|
38
|
-
else
|
39
|
-
out.puts('Suite ended but was not successful')
|
40
|
-
end
|
41
|
-
|
42
|
-
Reporter.new(result).write!(results_dir)
|
43
|
-
|
44
|
-
out.puts("Results can be viewed at #{results_dir}")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
attr_reader :config, :out, :results_dir, :resolver, :runner
|
51
|
-
|
52
|
-
def run_all_specs(specifications)
|
53
|
-
out.puts('Simmer suite started')
|
54
|
-
|
55
|
-
count = specifications.length
|
56
|
-
|
57
|
-
out.puts("Running #{count} specification(s)")
|
58
|
-
print_line
|
59
|
-
|
60
|
-
specifications.map.with_index(1) do |specification, index|
|
61
|
-
run_single_spec(specification, index, count)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def run_single_spec(specification, index, count)
|
66
|
-
id = SecureRandom.uuid
|
67
|
-
|
68
|
-
out.puts("Test #{index} of #{count}: #{id}")
|
69
|
-
|
70
|
-
runner.run(specification, id: id, config: config).tap do
|
71
|
-
print_line
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def print_line
|
76
|
-
out.puts('-' * 60)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|