puppetlabs_spec_helper 2.7.0 → 2.8.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/CHANGELOG.md +12 -1
- data/README.md +2 -2
- data/lib/puppetlabs_spec_helper/rake_tasks.rb +13 -4
- data/lib/puppetlabs_spec_helper/tasks/fixtures.rb +30 -6
- data/lib/puppetlabs_spec_helper/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 560988fc4b9b6843571dd84cb9950ed4e7183b13
|
4
|
+
data.tar.gz: c0a9ecd1c637521bcbb2376e0db81805ed9c908c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12dd845bdcfafb01e7e81d6c4d603abc1b235d175711883cdc0e73fd59cb53f6901bfe45e9b52d65333e704f7bf47a29e4d729a881f4eb91ddd5115d7739f081
|
7
|
+
data.tar.gz: 23fa34f17299df694322d9f8402fa95e4f39d7b7eb10c513022431145f709e64167fb190287afd39f96f744dd67529c24db7afe3cd4fc5a4cf294ea0f6c3fe55
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [2.8.0]
|
6
|
+
### Summary
|
7
|
+
This feature release adds a new rake task `parallel_spec_standalone` which is a parallel version of `spec_standalone`
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- `parallel_spec_standalone` rake task
|
11
|
+
- `spec_clean_symlinks` rake task to just clean symlink fixtures, not all fixtures
|
12
|
+
- Leave downloaded fixtures on test failure to speed up test runs.
|
13
|
+
- Update already-existing fixtures instead of doing nothing to them.
|
14
|
+
|
5
15
|
## [2.7.0]
|
6
16
|
### Summary
|
7
17
|
Feature release to begin moving away from mocha as a testing (specifically, mocking) framework for modules.
|
@@ -442,7 +452,8 @@ compatible yet.
|
|
442
452
|
### Added
|
443
453
|
* Initial release
|
444
454
|
|
445
|
-
[unreleased]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.
|
455
|
+
[unreleased]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.8.0...master
|
456
|
+
[2.8.0]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.7.0...v2.8.0
|
446
457
|
[2.7.0]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.6.2...v2.7.0
|
447
458
|
[2.6.2]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.6.1...v2.6.2
|
448
459
|
[2.6.1]: https://github.com/puppetlabs/puppetlabs_spec_helper/compare/v2.5.1...v2.6.1
|
data/README.md
CHANGED
@@ -466,7 +466,7 @@ The following links may give you some insight into why...
|
|
466
466
|
mock_with
|
467
467
|
=========
|
468
468
|
|
469
|
-
There are two major mocking frameworks in modules test suites today: [mocha](https://rubygems.org/gems/mocha) and [rspec-mocks](https://rubygems.org/gems/rspec-mocks).
|
469
|
+
There are two major mocking frameworks in modules test suites today: [mocha](https://rubygems.org/gems/mocha) and [rspec-mocks](https://rubygems.org/gems/rspec-mocks). We recommend that you choose rspec-mocks explicitly by specifying `mock_with`, either in your `spec_helper.rb` like so:
|
470
470
|
|
471
471
|
```
|
472
472
|
RSpec.configure do |c|
|
@@ -475,7 +475,7 @@ end
|
|
475
475
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
476
476
|
```
|
477
477
|
|
478
|
-
or by using
|
478
|
+
or by using Puppet Development Kit's [`mock_with` option in `.sync.yml`](https://github.com/puppetlabs/pdk-templates#specspec_helperrb) and `pdk update`.
|
479
479
|
|
480
480
|
You can also continue to use mocha by explicitly specifying `:mocha`, following the [mocha documentation](http://gofreerange.com/mocha/docs/).
|
481
481
|
|
@@ -60,13 +60,25 @@ task :spec do |t, args|
|
|
60
60
|
begin
|
61
61
|
Rake::Task[:spec_prep].invoke
|
62
62
|
Rake::Task[:spec_standalone].invoke(*args.extras)
|
63
|
+
Rake::Task[:spec_clean].invoke
|
63
64
|
ensure
|
65
|
+
Rake::Task[:spec_clean_symlinks].invoke
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
desc "Run spec tests in parallel and clean the fixtures directory if successful"
|
70
|
+
task :parallel_spec do |t, args|
|
71
|
+
begin
|
72
|
+
Rake::Task[:spec_prep].invoke
|
73
|
+
Rake::Task[:parallel_spec_standalone].invoke(*args.extras)
|
64
74
|
Rake::Task[:spec_clean].invoke
|
75
|
+
ensure
|
76
|
+
Rake::Task[:spec_clean_symlinks].invoke
|
65
77
|
end
|
66
78
|
end
|
67
79
|
|
68
80
|
desc "Parallel spec tests"
|
69
|
-
task :
|
81
|
+
task :parallel_spec_standalone do |t, args|
|
70
82
|
raise 'Add the parallel_tests gem to Gemfile to enable this task' unless parallel_tests_loaded
|
71
83
|
if Rake::FileList[pattern].to_a.empty?
|
72
84
|
warn "No files for parallel_spec to run against"
|
@@ -76,10 +88,7 @@ task :parallel_spec do
|
|
76
88
|
args.push('--').concat(ENV['CI_SPEC_OPTIONS'].strip.split(' ')).push('--') unless ENV['CI_SPEC_OPTIONS'].nil? || ENV['CI_SPEC_OPTIONS'].strip.empty?
|
77
89
|
args.concat(Rake::FileList[pattern].to_a)
|
78
90
|
|
79
|
-
Rake::Task[:spec_prep].invoke
|
80
91
|
ParallelTests::CLI.new.run(args)
|
81
|
-
ensure
|
82
|
-
Rake::Task[:spec_clean].invoke
|
83
92
|
end
|
84
93
|
end
|
85
94
|
end
|
@@ -117,6 +117,20 @@ module PuppetlabsSpecHelper::Tasks::FixtureHelpers
|
|
117
117
|
result
|
118
118
|
end
|
119
119
|
|
120
|
+
def update_repo(scm, target)
|
121
|
+
args = case scm
|
122
|
+
when 'hg'
|
123
|
+
['pull']
|
124
|
+
when 'git'
|
125
|
+
['fetch']
|
126
|
+
else
|
127
|
+
fail "Unfortunately #{scm} is not supported yet"
|
128
|
+
end
|
129
|
+
Dir.chdir(target) do
|
130
|
+
system("#{scm} #{args.flatten.join(' ')}")
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
120
134
|
def revision(scm, target, ref)
|
121
135
|
args = []
|
122
136
|
case scm
|
@@ -239,7 +253,11 @@ task :spec_prep do
|
|
239
253
|
logger.debug "New Thread started for #{remote}"
|
240
254
|
# start up a new thread and store it in the opts hash
|
241
255
|
opts[:thread] = Thread.new do
|
242
|
-
|
256
|
+
if File.directory?(target)
|
257
|
+
update_repo(scm, target)
|
258
|
+
else
|
259
|
+
clone_repo(scm, remote, target, subdir, ref, branch, flags)
|
260
|
+
end
|
243
261
|
revision(scm, target, ref) if ref
|
244
262
|
remove_subdirectory(target, subdir) if subdir
|
245
263
|
end
|
@@ -283,7 +301,8 @@ task :spec_prep do
|
|
283
301
|
ref = " --version #{opts['ref']}" if not opts['ref'].nil?
|
284
302
|
flags = " #{opts['flags']}" if opts['flags']
|
285
303
|
end
|
286
|
-
|
304
|
+
|
305
|
+
next if File.directory?(target)
|
287
306
|
|
288
307
|
working_dir = module_working_directory
|
289
308
|
target_dir = File.expand_path('spec/fixtures/modules')
|
@@ -317,12 +336,17 @@ task :spec_clean do
|
|
317
336
|
|
318
337
|
FileUtils::rm_rf(module_working_directory)
|
319
338
|
|
320
|
-
|
321
|
-
target = opts["target"]
|
322
|
-
FileUtils::rm_f(target)
|
323
|
-
end
|
339
|
+
Rake::Task[:spec_clean_symlinks].invoke
|
324
340
|
|
325
341
|
if File.zero?("spec/fixtures/manifests/site.pp")
|
326
342
|
FileUtils::rm_f("spec/fixtures/manifests/site.pp")
|
327
343
|
end
|
328
344
|
end
|
345
|
+
|
346
|
+
desc "Clean up any fixture symlinks"
|
347
|
+
task :spec_clean_symlinks do
|
348
|
+
fixtures("symlinks").each do |source, opts|
|
349
|
+
target = opts["target"]
|
350
|
+
FileUtils::rm_f(target)
|
351
|
+
end
|
352
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppetlabs_spec_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mocha
|
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
218
|
version: '0'
|
219
219
|
requirements: []
|
220
220
|
rubyforge_project:
|
221
|
-
rubygems_version: 2.6.
|
221
|
+
rubygems_version: 2.6.14
|
222
222
|
signing_key:
|
223
223
|
specification_version: 4
|
224
224
|
summary: Standard tasks and configuration for module spec tests.
|