delta_test 1.0.3 → 1.0.4
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/README.md +6 -3
- data/lib/delta_test/configuration.rb +14 -6
- data/lib/delta_test/git.rb +10 -0
- data/lib/delta_test/related_spec_list.rb +9 -8
- data/lib/delta_test/version.rb +1 -1
- data/spec/lib/delta_test/git_spec.rb +30 -0
- data/spec/lib/delta_test/related_spec_list_spec.rb +50 -14
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d14bb0fcf07a5b5d636080569681613af4c042df
|
4
|
+
data.tar.gz: 4545cf1bb2ed91db20065b5c646697a688337adb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f707be5d9acce380728b7ae36fe87941861360a035362c8257feb343575675f78e241d744f23b5419fe005d03f96df511f28357cfa64dc8cb89a2118b4e2203
|
7
|
+
data.tar.gz: 4e0610584cca7b8e9a2c36535c7c4b8a821281811f64d2a8cd132f1a4ab16791687237dc61548f823ac69f96d374a1614a545311922e69c0b1c2461edbad1bc7
|
data/README.md
CHANGED
@@ -136,6 +136,12 @@ $ bundle exec delta_test exec parallel_test -t rspec -n 4 -- spec/features
|
|
136
136
|
stats_path: tmp/delta_test_stats
|
137
137
|
stats_life: 1000
|
138
138
|
|
139
|
+
full_test_patterns:
|
140
|
+
- Gemfile.lock
|
141
|
+
|
142
|
+
full_test_braches:
|
143
|
+
- master
|
144
|
+
|
139
145
|
patterns:
|
140
146
|
- lib/**/*.rb
|
141
147
|
- app/**/*.rb
|
@@ -143,9 +149,6 @@ patterns:
|
|
143
149
|
exclude_patterns:
|
144
150
|
- lib/batch/*.rb
|
145
151
|
|
146
|
-
full_test_patterns:
|
147
|
-
- Gemfile.lock
|
148
|
-
|
149
152
|
custom_mappings:
|
150
153
|
spec/features/i18n_spec.rb:
|
151
154
|
- config/locales/**/*.yml
|
@@ -53,9 +53,11 @@ module DeltaTest
|
|
53
53
|
|
54
54
|
files
|
55
55
|
|
56
|
+
full_test_patterns
|
57
|
+
full_test_branches
|
58
|
+
|
56
59
|
patterns
|
57
60
|
exclude_patterns
|
58
|
-
full_test_patterns
|
59
61
|
custom_mappings
|
60
62
|
])
|
61
63
|
|
@@ -88,6 +90,14 @@ module DeltaTest
|
|
88
90
|
self.files.is_a?(Array)
|
89
91
|
end
|
90
92
|
|
93
|
+
validate :full_test_patterns, 'need to be an array' do
|
94
|
+
self.full_test_patterns.is_a?(Array)
|
95
|
+
end
|
96
|
+
|
97
|
+
validate :full_test_branches, 'need to be an array' do
|
98
|
+
self.full_test_branches.is_a?(Array)
|
99
|
+
end
|
100
|
+
|
91
101
|
validate :patterns, 'need to be an array' do
|
92
102
|
self.patterns.is_a?(Array)
|
93
103
|
end
|
@@ -96,10 +106,6 @@ module DeltaTest
|
|
96
106
|
self.exclude_patterns.is_a?(Array)
|
97
107
|
end
|
98
108
|
|
99
|
-
validate :full_test_patterns, 'need to be an array' do
|
100
|
-
self.full_test_patterns.is_a?(Array)
|
101
|
-
end
|
102
|
-
|
103
109
|
validate :custom_mappings, 'need to be a hash' do
|
104
110
|
self.custom_mappings.is_a?(Hash)
|
105
111
|
end
|
@@ -116,9 +122,11 @@ module DeltaTest
|
|
116
122
|
|
117
123
|
c.files = []
|
118
124
|
|
125
|
+
c.full_test_patterns = []
|
126
|
+
c.full_test_branches = []
|
127
|
+
|
119
128
|
c.patterns = []
|
120
129
|
c.exclude_patterns = []
|
121
|
-
c.full_test_patterns = []
|
122
130
|
c.custom_mappings = {}
|
123
131
|
end
|
124
132
|
end
|
data/lib/delta_test/git.rb
CHANGED
@@ -42,6 +42,16 @@ module DeltaTest
|
|
42
42
|
s.success? ? o.strip : nil
|
43
43
|
end
|
44
44
|
|
45
|
+
###
|
46
|
+
# Get name of the current branch
|
47
|
+
#
|
48
|
+
# @return {String}
|
49
|
+
###
|
50
|
+
def current_branch
|
51
|
+
o, _, s = exec(%q{symbolic-ref --short HEAD})
|
52
|
+
s.success? ? o.strip : nil
|
53
|
+
end
|
54
|
+
|
45
55
|
###
|
46
56
|
# Compare two rev names by their commit ids
|
47
57
|
#
|
@@ -48,15 +48,16 @@ module DeltaTest
|
|
48
48
|
###
|
49
49
|
def full_tests?
|
50
50
|
return false unless @changed_files
|
51
|
+
return @full_tests if defined?(@full_tests)
|
51
52
|
|
52
|
-
@full_tests
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
53
|
+
@full_tests = false
|
54
|
+
@full_tests ||= DeltaTest.config.full_test_branches.include?(@git.current_branch)
|
55
|
+
@full_tests ||= DeltaTest.config.full_test_patterns.any? && Utils.files_grep(
|
56
|
+
@changed_files,
|
57
|
+
DeltaTest.config.full_test_patterns
|
58
|
+
).any?
|
59
|
+
|
60
|
+
@full_tests
|
60
61
|
end
|
61
62
|
|
62
63
|
###
|
data/lib/delta_test/version.rb
CHANGED
@@ -117,6 +117,36 @@ describe DeltaTest::Git do
|
|
117
117
|
|
118
118
|
end
|
119
119
|
|
120
|
+
describe '#current_branch' do
|
121
|
+
|
122
|
+
let(:subcommand) { ['symbolic-ref --short HEAD'] }
|
123
|
+
let(:out) { 'master' }
|
124
|
+
|
125
|
+
it 'should raise an error if the command is not exist' do
|
126
|
+
expect(git).to receive(:exec).with(*subcommand).and_call_original
|
127
|
+
allow(Open3).to receive(:capture3).and_raise
|
128
|
+
|
129
|
+
expect {
|
130
|
+
git.current_branch
|
131
|
+
}.to raise_error
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should return name of the current branch if success' do
|
135
|
+
expect(git).to receive(:exec).with(*subcommand).and_call_original
|
136
|
+
allow(Open3).to receive(:capture3).and_return(success_status)
|
137
|
+
|
138
|
+
expect(git.current_branch).to eq(out)
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'should return nil if error' do
|
142
|
+
expect(git).to receive(:exec).with(*subcommand).and_call_original
|
143
|
+
allow(Open3).to receive(:capture3).and_return(error_status)
|
144
|
+
|
145
|
+
expect(git.current_branch).to be_nil
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
120
150
|
describe '#same_commit?' do
|
121
151
|
|
122
152
|
let(:map) do
|
@@ -36,11 +36,20 @@ describe DeltaTest::RelatedSpecList do
|
|
36
36
|
]
|
37
37
|
end
|
38
38
|
|
39
|
+
let(:current_branch) { 'master' }
|
40
|
+
|
41
|
+
let(:full_test_branches) { [] }
|
42
|
+
let(:full_test_patterns) { [] }
|
43
|
+
|
39
44
|
before do
|
40
45
|
allow(DeltaTest::DependenciesTable).to receive(:load).with(Pathname.new(table_file_path)).and_return(table)
|
41
46
|
|
42
47
|
allow(list.git).to receive(:git_repo?).and_return(true)
|
43
48
|
allow(list.git).to receive(:changed_files).with(base_commit).and_return(changed_files)
|
49
|
+
allow(list.git).to receive(:current_branch).and_return(current_branch)
|
50
|
+
|
51
|
+
allow(DeltaTest.config).to receive(:full_test_branches).and_return(full_test_branches)
|
52
|
+
allow(DeltaTest.config).to receive(:full_test_patterns).and_return(full_test_patterns)
|
44
53
|
end
|
45
54
|
|
46
55
|
end
|
@@ -184,7 +193,46 @@ describe DeltaTest::RelatedSpecList do
|
|
184
193
|
|
185
194
|
describe '#full_tests?' do
|
186
195
|
|
187
|
-
context '
|
196
|
+
context 'full_test_branches is empty' do
|
197
|
+
|
198
|
+
it 'should return false' do
|
199
|
+
expect(list.full_tests?).to be(false)
|
200
|
+
end
|
201
|
+
|
202
|
+
end
|
203
|
+
|
204
|
+
context 'the current branch is in full_test_branches' do
|
205
|
+
|
206
|
+
let(:current_branch) { 'master' }
|
207
|
+
let(:full_test_branches) { ['master'] }
|
208
|
+
|
209
|
+
it 'should return true' do
|
210
|
+
expect(list.full_tests?).to be(true)
|
211
|
+
end
|
212
|
+
|
213
|
+
end
|
214
|
+
|
215
|
+
context 'the current branch is not in full_test_branches' do
|
216
|
+
|
217
|
+
let(:current_branch) { 'master' }
|
218
|
+
let(:full_test_branches) { ['other_branch'] }
|
219
|
+
let(:changed_files) { [] }
|
220
|
+
|
221
|
+
it 'should return false' do
|
222
|
+
expect(list.full_tests?).to be(false)
|
223
|
+
end
|
224
|
+
|
225
|
+
end
|
226
|
+
|
227
|
+
context 'full_test_patterns is empty' do
|
228
|
+
|
229
|
+
it 'should return false' do
|
230
|
+
expect(list.full_tests?).to be(false)
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
234
|
+
|
235
|
+
context 'no file in full_test_patterns is changed' do
|
188
236
|
|
189
237
|
let(:changed_files) do
|
190
238
|
[
|
@@ -198,7 +246,7 @@ describe DeltaTest::RelatedSpecList do
|
|
198
246
|
|
199
247
|
end
|
200
248
|
|
201
|
-
context '
|
249
|
+
context 'no file in full_test_patterns is changed' do
|
202
250
|
|
203
251
|
let(:full_test_patterns) do
|
204
252
|
[
|
@@ -212,18 +260,6 @@ describe DeltaTest::RelatedSpecList do
|
|
212
260
|
]
|
213
261
|
end
|
214
262
|
|
215
|
-
before do
|
216
|
-
DeltaTest.configure do |config|
|
217
|
-
config.full_test_patterns = full_test_patterns
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
after do
|
222
|
-
DeltaTest.configure do |config|
|
223
|
-
config.full_test_patterns = []
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
263
|
it 'should return true' do
|
228
264
|
expect(list.full_tests?).to be(true)
|
229
265
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delta_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuki Iwanaga
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|