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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e3451c37e94f11e1fed722a6ab987454f8ccaa7d52edcc906ef0635cb92d177b
4
- data.tar.gz: 544bcaef77540b26c750741bffd35ef363c331e155f1ca49c99696959ff21eae
3
+ metadata.gz: 91647688dc2f743ee8d64461f26ee5f2265be617c82623a97e0cfd7cdec58aa8
4
+ data.tar.gz: 410086697fb9d6718c3f05a64cbac277b59fa4ced15cf679484b9eed11bb9edf
5
5
  SHA512:
6
- metadata.gz: 9963c7729eeaedbf7b9ec575931d2918630d04244eecd0c6d9b5178636edc20ec1867f4bf2a33e30527481cb76ee3e56dd140124ffd279e808d977bee25edd6b
7
- data.tar.gz: c2224d035456e70630851b8f1d8acf1e4519b7310c1805ce1ec45c98689138b5ae0cea04cb582e4ec8aad67db376d42a68235394516589813c4264321aed7aa0
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::Hypothesis)', default: 'Theorem::Harness'
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[:directory], 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], to_s, **opts, &hash[:block])
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
@@ -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
@@ -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 |directory, options = {}|
13
- tests = inner.instance_exec directory, options, &mod.test_loader
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 = ->(directory, tags) do
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!(directory, options)
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!(directory, options)
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.3
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.22
122
+ rubygems_version: 3.2.31
137
123
  signing_key:
138
124
  specification_version: 4
139
125
  summary: simple and extensible test library toolkit