theorem 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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