theorem 1.0.0 → 1.1.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 +4 -1
- data/src/harness.rb +8 -0
- data/src/theorem/registry.rb +16 -0
- data/src/theorem/test.rb +7 -6
- data/src/theorem.rb +2 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 561cfd58d73936664ce10aad722bab0fc21d97a28b421a5cc0e154bbf8f14bfa
|
4
|
+
data.tar.gz: 9e392733f121689bb139d908730ad2e7008f263e713d5193ede30d31f2309612
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7980418d3772ed5c314893f44cec5cd3cc166d3cf4e193580a0f1c65484e7020119c32db80ebba07e2a53e880e9f3ad5d83e45d6910dd3b3a08561642071abba
|
7
|
+
data.tar.gz: 25e8132963cab65e4d5822e15c1aa3dc5a8f28f225330a06f9a08bcff8d64a273bcdc86ed42035429e0bd1ac8e79676e0677061d898ba7ad460c781c6e16d7a4
|
data/bin/theorize
CHANGED
@@ -9,10 +9,13 @@ opts = Slop.parse do |o|
|
|
9
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
|
+
o.array '-i', '--include', 'tags to specify what tests should be included (default: wont filter)', default: []
|
13
|
+
o.array '-e', '--exclude', 'tags the specify what tests should be excluded (default: wont filter)', default: []
|
14
|
+
o.string '--meta', 'string of metadata to pass to the harness', default: ''
|
12
15
|
o.on '--help' do
|
13
16
|
puts o
|
14
17
|
exit
|
15
18
|
end
|
16
19
|
end
|
17
20
|
|
18
|
-
Theorem.run! opts
|
21
|
+
Theorem.run! opts.to_h
|
data/src/harness.rb
CHANGED
@@ -7,6 +7,14 @@ module Theorem
|
|
7
7
|
# default test harness
|
8
8
|
module Harness
|
9
9
|
include Control::Harness
|
10
|
+
|
11
|
+
load_tests do |options|
|
12
|
+
directory = options[:directory] || '.'
|
13
|
+
|
14
|
+
ExtendedDir.require_all("./#{directory}")
|
15
|
+
|
16
|
+
filtered_registry(options)
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
# module retry harness
|
data/src/theorem/registry.rb
CHANGED
@@ -8,6 +8,22 @@ module Theorem
|
|
8
8
|
@registry ||= []
|
9
9
|
end
|
10
10
|
|
11
|
+
def filtered_registry(options)
|
12
|
+
registry.each do |test_class|
|
13
|
+
if options[:include]&.any?
|
14
|
+
test_class.tests.select! do |test|
|
15
|
+
test.metadata[:tags]&.intersection(options[:include])&.any?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
next unless options[:exclude]&.any?
|
20
|
+
|
21
|
+
test_class.tests.reject! do |test|
|
22
|
+
test.metadata[:tags]&.intersection(options[:include])&.any?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
11
27
|
def add_to_registry(klass)
|
12
28
|
registry << klass
|
13
29
|
end
|
data/src/theorem/test.rb
CHANGED
@@ -5,14 +5,15 @@ module Theorem
|
|
5
5
|
module Control
|
6
6
|
# test new
|
7
7
|
class Test
|
8
|
-
def initialize(name, namespace, **
|
8
|
+
def initialize(name, namespace, arguments: {}, **metadata, &block)
|
9
9
|
@name = name
|
10
10
|
@namespace = namespace
|
11
11
|
@block = block
|
12
|
-
@arguments =
|
12
|
+
@arguments = arguments
|
13
|
+
@metadata = metadata
|
13
14
|
end
|
14
15
|
|
15
|
-
attr_reader :block, :name, :arguments, :namespace
|
16
|
+
attr_reader :block, :name, :arguments, :namespace, :metadata
|
16
17
|
|
17
18
|
def full_name
|
18
19
|
"#{namespace} #{name}"
|
@@ -68,7 +69,7 @@ module Theorem
|
|
68
69
|
obj.include(control)
|
69
70
|
obj.instance_eval &block if block
|
70
71
|
obj.instance_exec self, klass, opts do |consumer, experiment_klass, params|
|
71
|
-
@tests.concat experiment_klass.tests(_experiment_namespace: consumer.to_s,
|
72
|
+
@tests.concat experiment_klass.tests(_experiment_namespace: consumer.to_s, arguments: params)
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
@@ -92,8 +93,8 @@ module Theorem
|
|
92
93
|
@after_all
|
93
94
|
end
|
94
95
|
|
95
|
-
def test(name, &block)
|
96
|
-
@tests << Test.new(name, to_s, &block)
|
96
|
+
def test(name, **hargs, &block)
|
97
|
+
@tests << Test.new(name, to_s, **hargs, &block)
|
97
98
|
end
|
98
99
|
|
99
100
|
def run!
|
data/src/theorem.rb
CHANGED