sus 0.29.1 → 0.30.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -2
- data/bin/sus +1 -0
- data/bin/sus-host +1 -0
- data/bin/sus-parallel +1 -0
- data/bin/sus-tree +1 -0
- data/lib/sus/context.rb +52 -0
- data/lib/sus/include_context.rb +5 -0
- data/lib/sus/it_behaves_like.rb +2 -2
- data/lib/sus/shared.rb +9 -1
- data/lib/sus/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1b91ed35726c8afcbc97fd2c73ea28d433874f7976958b26beebd9f4ed1dfe4
|
4
|
+
data.tar.gz: 2295e4817295a52265e94c4eadf708f15b4502ecd40e42b76a44570c3f7c5f2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 821e42e75cb7628974b6e10b036eb222aa35adfbafb25dc7b773b7b2ba8714c1a292c9ab539763567e1a1010f814aeada965b406eb77969a2f78c6dbf59c82e1
|
7
|
+
data.tar.gz: 44a648f339a1a947037bdfde3a5e84f875dc9fb5b018133b8e269c572f33ff90dd05c9bfe86f233df60b6ae7357b08ec62523841dddc1cd137327c445d13258e
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
2.�g��R���V9Cǹ��D�^���<�
|
2
|
+
��)ͫ�P�;3�K?���R�t2ϛ$�ǜ�G�J҂=�|��g�,����<@������zKt\5�hG�A,l�)�d��$ժ֟��{�oU���q�F�{Jz�H�щ"a��3�YB
|
data/bin/sus
CHANGED
data/bin/sus-host
CHANGED
data/bin/sus-parallel
CHANGED
data/bin/sus-tree
CHANGED
data/lib/sus/context.rb
CHANGED
@@ -75,5 +75,57 @@ module Sus
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
|
+
|
79
|
+
# Include an around method to the context class, that invokes the given block before running the test.
|
80
|
+
#
|
81
|
+
# Before hooks are called in the reverse order they are defined, in other words the last defined before hook is called first.
|
82
|
+
#
|
83
|
+
# @parameter hook [Proc] The block to execute before each test.
|
84
|
+
def before(&hook)
|
85
|
+
wrapper = Module.new
|
86
|
+
|
87
|
+
wrapper.define_method(:around) do |&block|
|
88
|
+
instance_exec(&hook)
|
89
|
+
super(&block)
|
90
|
+
end
|
91
|
+
|
92
|
+
self.include(wrapper)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Include an around method to the context class, that invokes the given block after running the test.
|
96
|
+
#
|
97
|
+
# After hooks are called in the order they are defined, in other words the last defined after hook is called last.
|
98
|
+
#
|
99
|
+
# @parameter hook [Proc] The block to execute after each test. An `error` argument is passed if the test failed with an exception.
|
100
|
+
def after(&hook)
|
101
|
+
wrapper = Module.new
|
102
|
+
|
103
|
+
wrapper.define_method(:around) do |&block|
|
104
|
+
error = nil
|
105
|
+
|
106
|
+
super(&block)
|
107
|
+
rescue => error
|
108
|
+
raise
|
109
|
+
ensure
|
110
|
+
instance_exec(error, &hook)
|
111
|
+
end
|
112
|
+
|
113
|
+
self.include(wrapper)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Add an around hook to the context class.
|
117
|
+
#
|
118
|
+
# Around hooks are called in the reverse order they are defined.
|
119
|
+
#
|
120
|
+
# The top level `around` implementation invokes before and after hooks.
|
121
|
+
#
|
122
|
+
# @paremeter block [Proc] The block to execute around each test.
|
123
|
+
def around(&block)
|
124
|
+
wrapper = Module.new
|
125
|
+
|
126
|
+
wrapper.define_method(:around, &block)
|
127
|
+
|
128
|
+
self.include(wrapper)
|
129
|
+
end
|
78
130
|
end
|
79
131
|
end
|
data/lib/sus/include_context.rb
CHANGED
@@ -7,6 +7,11 @@ require_relative 'context'
|
|
7
7
|
|
8
8
|
module Sus
|
9
9
|
module Context
|
10
|
+
# Include a shared context into the current context, along with any arguments or options.
|
11
|
+
#
|
12
|
+
# @parameter shared [Sus::Shared] The shared context to include.
|
13
|
+
# @parameter arguments [Array] The arguments to pass to the shared context.
|
14
|
+
# @parameter options [Hash] The options to pass to the shared context.
|
10
15
|
def include_context(shared, *arguments, **options)
|
11
16
|
self.class_exec(*arguments, **options, &shared.block)
|
12
17
|
end
|
data/lib/sus/it_behaves_like.rb
CHANGED
@@ -18,12 +18,12 @@ module Sus
|
|
18
18
|
base.description = shared.name
|
19
19
|
base.identity = Identity.nested(parent.identity, base.description, unique: unique)
|
20
20
|
base.set_temporary_name("#{self}[#{base.description}]")
|
21
|
-
|
21
|
+
|
22
22
|
# User provided block is evaluated first, so that it can provide default behaviour for the shared context:
|
23
23
|
if block_given?
|
24
24
|
base.class_exec(*arguments, &block)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
base.class_exec(*arguments, &shared.block)
|
28
28
|
return base
|
29
29
|
end
|
data/lib/sus/shared.rb
CHANGED
@@ -11,13 +11,21 @@ module Sus
|
|
11
11
|
attr_accessor :block
|
12
12
|
|
13
13
|
def self.build(name, block)
|
14
|
-
base =
|
14
|
+
base = Module.new
|
15
15
|
base.extend(Shared)
|
16
16
|
base.name = name
|
17
17
|
base.block = block
|
18
18
|
|
19
19
|
return base
|
20
20
|
end
|
21
|
+
|
22
|
+
def included(base)
|
23
|
+
base.class_exec(&self.block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def prepended(base)
|
27
|
+
base.class_exec(&self.block)
|
28
|
+
end
|
21
29
|
end
|
22
30
|
|
23
31
|
def self.Shared(name, &block)
|
data/lib/sus/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
39
39
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
40
40
|
-----END CERTIFICATE-----
|
41
|
-
date: 2024-07-
|
41
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
42
42
|
dependencies: []
|
43
43
|
description:
|
44
44
|
email:
|
metadata.gz.sig
CHANGED
Binary file
|