theorem 0.0.3 → 1.0.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/bin/theorize +2 -2
- data/src/experiment.rb +2 -2
- data/src/harness.rb +0 -10
- data/src/stdout_reporter.rb +1 -1
- data/src/theorem/harness.rb +5 -3
- data/src/theorem/test.rb +2 -2
- data/src/theorem.rb +3 -3
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91647688dc2f743ee8d64461f26ee5f2265be617c82623a97e0cfd7cdec58aa8
|
4
|
+
data.tar.gz: 410086697fb9d6718c3f05a64cbac277b59fa4ced15cf679484b9eed11bb9edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f66749de7a52cee707d0c149e7e9b273d05b46248a69e7acb4f3669d400e6a833fcac9d268eb0f87acd6f5b3cbc9d8c5bfaa836491d705c8666563ae9dfe6fe8
|
7
|
+
data.tar.gz: dc737567dc4303c362f5dcb3bfa6a75474981d6b355367b6d8d711c4ad5170c8f3e0c0cf252197f4007ef16f9e403234f75277559e3d9ff8ce908cc5faff94e9
|
data/bin/theorize
CHANGED
@@ -6,7 +6,7 @@ require_relative '../src/theorem'
|
|
6
6
|
opts = Slop.parse do |o|
|
7
7
|
o.array '--require', 'files to require', delimiter: ','
|
8
8
|
o.string '-m', '--module', 'module (default: Theorem::Hypothesis)', default: 'Theorem::Hypothesis'
|
9
|
-
o.string '-h', '--harness', 'harness (default: Theorem::
|
9
|
+
o.string '-h', '--harness', 'harness (default: Theorem::Harness)', default: 'Theorem::Harness'
|
10
10
|
o.array '-p', '--publisher', 'publishers (default: Theorem::StdoutReporter)', delimiter: ',', default: ['Theorem::StdoutReporter']
|
11
11
|
o.string '-d', '--directory', 'directory to load tests (default: ".")', default: '.'
|
12
12
|
o.on '--help' do
|
@@ -15,4 +15,4 @@ opts = Slop.parse do |o|
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
Theorem.run! opts
|
18
|
+
Theorem.run! opts
|
data/src/experiment.rb
CHANGED
@@ -9,9 +9,9 @@ module Theorem
|
|
9
9
|
@tests << { name: name, block: block }
|
10
10
|
end
|
11
11
|
|
12
|
-
def tests(**opts)
|
12
|
+
def tests(_experiment_namespace: to_s, **opts)
|
13
13
|
@tests.map do |hash|
|
14
|
-
Control::Test.new(hash[:name],
|
14
|
+
Control::Test.new(hash[:name], _experiment_namespace, **opts, &hash[:block])
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
data/src/harness.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './theorem/harness'
|
4
|
-
require 'parallel'
|
5
4
|
|
6
5
|
# harness
|
7
6
|
module Theorem
|
@@ -10,15 +9,6 @@ module Theorem
|
|
10
9
|
include Control::Harness
|
11
10
|
end
|
12
11
|
|
13
|
-
# parallel harness
|
14
|
-
module ParallelHarness
|
15
|
-
include Control::Harness
|
16
|
-
|
17
|
-
on_run do |tests|
|
18
|
-
Parallel.map(tests, in_threads: 6, &:run!).flatten
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
12
|
# module retry harness
|
23
13
|
module RetryHarness
|
24
14
|
include Control::Harness
|
data/src/stdout_reporter.rb
CHANGED
@@ -63,7 +63,7 @@ module Theorem
|
|
63
63
|
|
64
64
|
def report_failures(tests)
|
65
65
|
tests.each do |failure|
|
66
|
-
puts "Failure in #{failure.full_name}\nError: #{failure.error.to_s.red}\nBacktrace:\n------\n#{failure.error.backtrace.map(&:red).join("\n")}"
|
66
|
+
puts "Failure in #{failure.full_name}\nError: #{failure.error.message.to_s.red}\nBacktrace:\n------\n#{failure.error.backtrace.map(&:red).join("\n")}"
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
data/src/theorem/harness.rb
CHANGED
@@ -9,8 +9,8 @@ module Theorem
|
|
9
9
|
def self.included(mod)
|
10
10
|
mod.extend(ClassMethods)
|
11
11
|
mod.define_singleton_method :included do |inner|
|
12
|
-
inner.define_singleton_method :run! do |
|
13
|
-
tests = inner.instance_exec
|
12
|
+
inner.define_singleton_method :run! do |options: {}|
|
13
|
+
tests = inner.instance_exec options, &mod.test_loader
|
14
14
|
results = inner.instance_exec tests, options, &mod.run_loader
|
15
15
|
inner.completed_suite_subscribers.each do |subscriber|
|
16
16
|
subscriber.call(results)
|
@@ -22,7 +22,9 @@ module Theorem
|
|
22
22
|
|
23
23
|
# harness helpers
|
24
24
|
module ClassMethods
|
25
|
-
DEFAULT_LOADER = ->(
|
25
|
+
DEFAULT_LOADER = ->(options) do
|
26
|
+
directory = options[:directory] || '.'
|
27
|
+
|
26
28
|
ExtendedDir.require_all("./#{directory}")
|
27
29
|
|
28
30
|
registry
|
data/src/theorem/test.rb
CHANGED
@@ -67,8 +67,8 @@ module Theorem
|
|
67
67
|
obj = Class.new
|
68
68
|
obj.include(control)
|
69
69
|
obj.instance_eval &block if block
|
70
|
-
obj.instance_exec klass, opts do |experiment_klass, params|
|
71
|
-
@tests.concat experiment_klass.tests(**params)
|
70
|
+
obj.instance_exec self, klass, opts do |consumer, experiment_klass, params|
|
71
|
+
@tests.concat experiment_klass.tests(_experiment_namespace: consumer.to_s, **params)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
data/src/theorem.rb
CHANGED
@@ -20,7 +20,7 @@ module Theorem
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.run!(
|
23
|
+
def self.run!(options)
|
24
24
|
options[:require].each do |file|
|
25
25
|
require file
|
26
26
|
end
|
@@ -40,7 +40,7 @@ module Theorem
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
mod.run!(
|
43
|
+
mod.run!(options: options)
|
44
44
|
end
|
45
45
|
|
46
46
|
module JsonReporter
|
@@ -50,7 +50,7 @@ module Theorem
|
|
50
50
|
results = results.map do |result|
|
51
51
|
{ name: result.full_name, failed: result.failed? }
|
52
52
|
end
|
53
|
-
puts results
|
53
|
+
puts results.to_json
|
54
54
|
puts "\n\n"
|
55
55
|
end
|
56
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theorem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Gregory
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: parallel
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
description: simple and extensible test library toolkit
|
98
84
|
email: sean.christopher.gregory@gmail.com
|
99
85
|
executables:
|
@@ -133,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
119
|
- !ruby/object:Gem::Version
|
134
120
|
version: '0'
|
135
121
|
requirements: []
|
136
|
-
rubygems_version: 3.2.
|
122
|
+
rubygems_version: 3.2.31
|
137
123
|
signing_key:
|
138
124
|
specification_version: 4
|
139
125
|
summary: simple and extensible test library toolkit
|