beaker-rspec 7.1.0 → 8.0.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/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +3 -3
- data/.github/workflows/test.yml +29 -8
- data/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +137 -0
- data/CHANGELOG.md +24 -0
- data/Gemfile +7 -7
- data/README.md +5 -5
- data/Rakefile +13 -0
- data/beaker-rspec.gemspec +20 -15
- data/lib/beaker-rspec/beaker_shim.rb +1 -2
- data/lib/beaker-rspec/helpers/serverspec.rb +53 -74
- data/lib/beaker-rspec/rake_task.rb +1 -1
- data/lib/beaker-rspec/spec_helper.rb +24 -24
- data/lib/beaker-rspec/version.rb +1 -1
- data/lib/beaker-rspec.rb +0 -1
- data/spec/acceptance/example_spec.rb +21 -22
- data/spec/spec_helper.rb +1 -1
- metadata +100 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f9a5990ade11a161760e1eb40ad4486a1c8d97cb3c063d954bc29d010d7d8e3a
|
|
4
|
+
data.tar.gz: bdf8a2f24a26fca7a345b0e77a602fa8c9eccacefffb13a7e125221688996659
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 01f162c8d641d603d49eb5bb7263da970e07686ae44eda947609c328cf2840c68168e3e1ebc6d788c65fba7c70d84ab21ec2cd61da7fd8a1a0752fb475ad0f11
|
|
7
|
+
data.tar.gz: 6cd69c2865258e9c44948324fb1cb4aed09cc49b425f36bb4665cd7e2ebbececeaad7937478ce1473ee349fe64f337f1e64d45d2baacc8d7fffa30c9d4f3ed2e
|
data/.github/dependabot.yml
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
version: 2
|
|
2
2
|
updates:
|
|
3
|
+
# raise PRs for gem updates
|
|
3
4
|
- package-ecosystem: bundler
|
|
4
5
|
directory: "/"
|
|
5
6
|
schedule:
|
|
6
7
|
interval: daily
|
|
7
8
|
time: "13:00"
|
|
8
9
|
open-pull-requests-limit: 10
|
|
10
|
+
|
|
11
|
+
# Maintain dependencies for GitHub Actions
|
|
12
|
+
- package-ecosystem: github-actions
|
|
13
|
+
directory: "/"
|
|
14
|
+
schedule:
|
|
15
|
+
interval: daily
|
|
16
|
+
time: "13:00"
|
|
17
|
+
open-pull-requests-limit: 10
|
|
@@ -10,11 +10,11 @@ jobs:
|
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
if: github.repository_owner == 'voxpupuli'
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
14
|
-
- name: Install Ruby 3.
|
|
13
|
+
- uses: actions/checkout@v3
|
|
14
|
+
- name: Install Ruby 3.2
|
|
15
15
|
uses: ruby/setup-ruby@v1
|
|
16
16
|
with:
|
|
17
|
-
ruby-version: '3.
|
|
17
|
+
ruby-version: '3.2'
|
|
18
18
|
bundler: 'none'
|
|
19
19
|
- name: Build gem
|
|
20
20
|
run: gem build *.gemspec
|
data/.github/workflows/test.yml
CHANGED
|
@@ -1,34 +1,55 @@
|
|
|
1
1
|
name: Test
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
4
|
+
pull_request: {}
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- master
|
|
5
8
|
|
|
6
9
|
env:
|
|
10
|
+
BUNDLE_WITHOUT: release
|
|
7
11
|
BEAKER_HYPERVISOR: docker
|
|
8
12
|
|
|
9
13
|
jobs:
|
|
14
|
+
rubocop:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v3
|
|
18
|
+
- name: Install Ruby ${{ matrix.ruby }}
|
|
19
|
+
uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
ruby-version: "3.2"
|
|
22
|
+
bundler-cache: true
|
|
23
|
+
- name: Run Rubocop
|
|
24
|
+
run: bundle exec rake rubocop
|
|
10
25
|
build:
|
|
11
26
|
runs-on: ubuntu-latest
|
|
12
27
|
strategy:
|
|
13
28
|
fail-fast: false
|
|
14
29
|
matrix:
|
|
15
30
|
ruby:
|
|
16
|
-
- "2.4"
|
|
17
|
-
- "2.5"
|
|
18
|
-
- "2.6"
|
|
19
31
|
- "2.7"
|
|
20
32
|
- "3.0"
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
- "3.1"
|
|
34
|
+
- "3.2"
|
|
23
35
|
name: Ruby ${{ matrix.ruby }}
|
|
24
36
|
steps:
|
|
25
|
-
- uses: actions/checkout@
|
|
37
|
+
- uses: actions/checkout@v3
|
|
26
38
|
- name: Install Ruby ${{ matrix.ruby }}
|
|
27
39
|
uses: ruby/setup-ruby@v1
|
|
28
40
|
with:
|
|
29
41
|
ruby-version: ${{ matrix.ruby }}
|
|
30
42
|
bundler-cache: true
|
|
31
43
|
- name: Verify gem builds
|
|
32
|
-
run:
|
|
44
|
+
run: gem build beaker-rspec.gemspec
|
|
33
45
|
- name: Run acceptance tests
|
|
34
46
|
run: bundle exec rake beaker
|
|
47
|
+
|
|
48
|
+
tests:
|
|
49
|
+
needs:
|
|
50
|
+
- rubocop
|
|
51
|
+
- build
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
name: Test suite
|
|
54
|
+
steps:
|
|
55
|
+
- run: echo Test suite completed
|
data/.rubocop.yml
ADDED
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2023-03-27 16:58:25 UTC using RuboCop version 1.48.1.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
+
|
|
9
|
+
# Offense count: 3
|
|
10
|
+
Lint/UselessAssignment:
|
|
11
|
+
Exclude:
|
|
12
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
13
|
+
|
|
14
|
+
# Offense count: 1
|
|
15
|
+
Naming/AccessorMethodName:
|
|
16
|
+
Exclude:
|
|
17
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
18
|
+
|
|
19
|
+
# Offense count: 1
|
|
20
|
+
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
|
21
|
+
# CheckDefinitionPathHierarchyRoots: lib, spec, test, src
|
|
22
|
+
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
|
23
|
+
Naming/FileName:
|
|
24
|
+
Exclude:
|
|
25
|
+
- 'lib/beaker-rspec.rb'
|
|
26
|
+
|
|
27
|
+
# Offense count: 1
|
|
28
|
+
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
|
29
|
+
# AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
|
|
30
|
+
Naming/MethodParameterName:
|
|
31
|
+
Exclude:
|
|
32
|
+
- 'lib/beaker-rspec/beaker_shim.rb'
|
|
33
|
+
|
|
34
|
+
# Offense count: 1
|
|
35
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
36
|
+
# Configuration parameters: EnforcedStyle.
|
|
37
|
+
# SupportedStyles: be_a, be_kind_of
|
|
38
|
+
RSpec/ClassCheck:
|
|
39
|
+
Exclude:
|
|
40
|
+
- 'spec/acceptance/example_spec.rb'
|
|
41
|
+
|
|
42
|
+
# Offense count: 3
|
|
43
|
+
# Configuration parameters: Prefixes, AllowedPatterns.
|
|
44
|
+
# Prefixes: when, with, without
|
|
45
|
+
RSpec/ContextWording:
|
|
46
|
+
Exclude:
|
|
47
|
+
- 'spec/acceptance/example_spec.rb'
|
|
48
|
+
|
|
49
|
+
# Offense count: 1
|
|
50
|
+
# Configuration parameters: IgnoredMetadata.
|
|
51
|
+
RSpec/DescribeClass:
|
|
52
|
+
Exclude:
|
|
53
|
+
- '**/spec/features/**/*'
|
|
54
|
+
- '**/spec/requests/**/*'
|
|
55
|
+
- '**/spec/routing/**/*'
|
|
56
|
+
- '**/spec/system/**/*'
|
|
57
|
+
- '**/spec/views/**/*'
|
|
58
|
+
- 'spec/acceptance/example_spec.rb'
|
|
59
|
+
|
|
60
|
+
# Offense count: 5
|
|
61
|
+
# Configuration parameters: AllowedPatterns.
|
|
62
|
+
# AllowedPatterns: ^expect_, ^assert_
|
|
63
|
+
RSpec/NoExpectationExample:
|
|
64
|
+
Exclude:
|
|
65
|
+
- 'spec/acceptance/example_spec.rb'
|
|
66
|
+
|
|
67
|
+
# Offense count: 1
|
|
68
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
69
|
+
# Configuration parameters: EnforcedStyle.
|
|
70
|
+
# SupportedStyles: always, conditionals
|
|
71
|
+
Style/AndOr:
|
|
72
|
+
Exclude:
|
|
73
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
74
|
+
|
|
75
|
+
# Offense count: 7
|
|
76
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
77
|
+
# Configuration parameters: EnforcedStyle.
|
|
78
|
+
# SupportedStyles: nested, compact
|
|
79
|
+
Style/ClassAndModuleChildren:
|
|
80
|
+
Exclude:
|
|
81
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
82
|
+
|
|
83
|
+
# Offense count: 1
|
|
84
|
+
Style/ClassVars:
|
|
85
|
+
Exclude:
|
|
86
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
87
|
+
|
|
88
|
+
# Offense count: 10
|
|
89
|
+
# Configuration parameters: AllowedConstants.
|
|
90
|
+
Style/Documentation:
|
|
91
|
+
Exclude:
|
|
92
|
+
- 'spec/**/*'
|
|
93
|
+
- 'test/**/*'
|
|
94
|
+
- 'lib/beaker-rspec.rb'
|
|
95
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
96
|
+
|
|
97
|
+
# Offense count: 10
|
|
98
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
99
|
+
# Configuration parameters: EnforcedStyle.
|
|
100
|
+
# SupportedStyles: always, always_true, never
|
|
101
|
+
Style/FrozenStringLiteralComment:
|
|
102
|
+
Exclude:
|
|
103
|
+
- 'Gemfile'
|
|
104
|
+
- 'beaker-rspec.gemspec'
|
|
105
|
+
- 'lib/beaker-rspec.rb'
|
|
106
|
+
- 'lib/beaker-rspec/beaker_shim.rb'
|
|
107
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
108
|
+
- 'lib/beaker-rspec/rake_task.rb'
|
|
109
|
+
- 'lib/beaker-rspec/spec_helper.rb'
|
|
110
|
+
- 'lib/beaker-rspec/version.rb'
|
|
111
|
+
- 'spec/acceptance/example_spec.rb'
|
|
112
|
+
- 'spec/spec_helper.rb'
|
|
113
|
+
|
|
114
|
+
# Offense count: 1
|
|
115
|
+
Style/MissingRespondToMissing:
|
|
116
|
+
Exclude:
|
|
117
|
+
- 'lib/beaker-rspec/helpers/serverspec.rb'
|
|
118
|
+
|
|
119
|
+
# Offense count: 1
|
|
120
|
+
Style/MixinUsage:
|
|
121
|
+
Exclude:
|
|
122
|
+
- 'lib/beaker-rspec/spec_helper.rb'
|
|
123
|
+
|
|
124
|
+
# Offense count: 1
|
|
125
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
126
|
+
# Configuration parameters: EnforcedStyle.
|
|
127
|
+
# SupportedStyles: literals, strict
|
|
128
|
+
Style/MutableConstant:
|
|
129
|
+
Exclude:
|
|
130
|
+
- 'lib/beaker-rspec/version.rb'
|
|
131
|
+
|
|
132
|
+
# Offense count: 1
|
|
133
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
134
|
+
# Configuration parameters: RequireEnglish.
|
|
135
|
+
# SupportedStyles: use_perl_names, use_english_names, use_builtin_english_names
|
|
136
|
+
Style/SpecialGlobalVars:
|
|
137
|
+
EnforcedStyle: use_perl_names
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [8.0.0](https://github.com/voxpupuli/beaker-rspec/tree/8.0.0) (2023-03-27)
|
|
6
|
+
|
|
7
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-rspec/compare/7.1.0...8.0.0)
|
|
8
|
+
|
|
9
|
+
**Breaking changes:**
|
|
10
|
+
|
|
11
|
+
- Drop Ruby 2.4/2.5/2.6 [\#121](https://github.com/voxpupuli/beaker-rspec/pull/121) ([bastelfreak](https://github.com/bastelfreak))
|
|
12
|
+
|
|
13
|
+
**Implemented enhancements:**
|
|
14
|
+
|
|
15
|
+
- Add Ruby 3.2 support [\#120](https://github.com/voxpupuli/beaker-rspec/pull/120) ([bastelfreak](https://github.com/bastelfreak))
|
|
16
|
+
- Introduce rubocop [\#118](https://github.com/voxpupuli/beaker-rspec/pull/118) ([bastelfreak](https://github.com/bastelfreak))
|
|
17
|
+
- Support uppercase configuration environment variables [\#117](https://github.com/voxpupuli/beaker-rspec/pull/117) ([ekohl](https://github.com/ekohl))
|
|
18
|
+
- Allow to disable debug output [\#116](https://github.com/voxpupuli/beaker-rspec/pull/116) ([jay7x](https://github.com/jay7x))
|
|
19
|
+
|
|
20
|
+
**Merged pull requests:**
|
|
21
|
+
|
|
22
|
+
- Use rubocop config from beaker [\#125](https://github.com/voxpupuli/beaker-rspec/pull/125) ([bastelfreak](https://github.com/bastelfreak))
|
|
23
|
+
- Require beaker 4.x [\#124](https://github.com/voxpupuli/beaker-rspec/pull/124) ([bastelfreak](https://github.com/bastelfreak))
|
|
24
|
+
- Rubocop: Fix Layout cops [\#123](https://github.com/voxpupuli/beaker-rspec/pull/123) ([bastelfreak](https://github.com/bastelfreak))
|
|
25
|
+
- Rubocop: Fix Style cops [\#122](https://github.com/voxpupuli/beaker-rspec/pull/122) ([bastelfreak](https://github.com/bastelfreak))
|
|
26
|
+
- Fix multiple rubocop violations [\#119](https://github.com/voxpupuli/beaker-rspec/pull/119) ([bastelfreak](https://github.com/bastelfreak))
|
|
27
|
+
- Add Ruby 3.1 to CI matrix [\#113](https://github.com/voxpupuli/beaker-rspec/pull/113) ([bastelfreak](https://github.com/bastelfreak))
|
|
28
|
+
|
|
5
29
|
## [7.1.0](https://github.com/voxpupuli/beaker-rspec/tree/7.1.0) (2022-01-14)
|
|
6
30
|
|
|
7
31
|
[Full Changelog](https://github.com/voxpupuli/beaker-rspec/compare/7.0.0...7.1.0)
|
data/Gemfile
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
source ENV['GEM_SOURCE'] ||
|
|
1
|
+
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
def location_for(place, fake_version = nil)
|
|
4
4
|
if place =~ /^(git:[^#]*)#(.*)/
|
|
5
|
-
[fake_version, { :
|
|
6
|
-
elsif place =~
|
|
7
|
-
['>= 0', { :
|
|
5
|
+
[fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact
|
|
6
|
+
elsif place =~ %r{^file://(.*)}
|
|
7
|
+
['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }]
|
|
8
8
|
else
|
|
9
|
-
[place, { :
|
|
9
|
+
[place, { require: false }]
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
if (beaker_version = ENV
|
|
13
|
+
if (beaker_version = ENV.fetch('BEAKER_VERSION', nil))
|
|
14
14
|
gem 'beaker', *location_for(beaker_version)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
case ENV
|
|
17
|
+
case ENV.fetch('BEAKER_HYPERVISOR', nil)
|
|
18
18
|
when 'docker'
|
|
19
19
|
gem 'beaker-docker'
|
|
20
20
|
when 'vagrant', 'vagrant_libvirt'
|
data/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# beaker-rspec
|
|
2
2
|
|
|
3
|
-
[](https://github.com/voxpupuli/beaker/blob/master/LICENSE)
|
|
4
|
-
[](https://github.com/voxpupuli/beaker/actions/workflows/test.yml)
|
|
5
|
-
[](https://github.com/voxpupuli/beaker/actions/workflows/release.yml)
|
|
6
|
-
[](https://rubygems.org/gems/beaker)
|
|
7
|
-
[](https://rubygems.org/gems/beaker)
|
|
3
|
+
[](https://github.com/voxpupuli/beaker-rspec/blob/master/LICENSE)
|
|
4
|
+
[](https://github.com/voxpupuli/beaker-rspec/actions/workflows/test.yml)
|
|
5
|
+
[](https://github.com/voxpupuli/beaker-rspec/actions/workflows/release.yml)
|
|
6
|
+
[](https://rubygems.org/gems/beaker-rspec)
|
|
7
|
+
[](https://rubygems.org/gems/beaker-rspec)
|
|
8
8
|
[](#transfer-notice)
|
|
9
9
|
|
|
10
10
|
beaker-rspec is a bridge between the puppet acceptance test harness ([beaker](https://github.com/voxpupuli/beaker)) and [rspec](https://github.com/rspec/rspec). It also integrates [serverspec](http://serverspec.org/).
|
data/Rakefile
CHANGED
|
@@ -18,3 +18,16 @@ else
|
|
|
18
18
|
config.future_release = Gem::Specification.load("#{config.project}.gemspec").version
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
|
+
|
|
22
|
+
begin
|
|
23
|
+
require 'rubocop/rake_task'
|
|
24
|
+
rescue LoadError
|
|
25
|
+
# RuboCop is an optional group
|
|
26
|
+
else
|
|
27
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
|
28
|
+
# These make the rubocop experience maybe slightly less terrible
|
|
29
|
+
task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
|
|
30
|
+
# Use Rubocop's Github Actions formatter if possible
|
|
31
|
+
task.formatters << 'github' if ENV['GITHUB_ACTIONS'] == 'true'
|
|
32
|
+
end
|
|
33
|
+
end
|
data/beaker-rspec.gemspec
CHANGED
|
@@ -1,35 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
|
1
|
+
$:.push File.expand_path('lib', __dir__)
|
|
3
2
|
require 'beaker-rspec/version'
|
|
4
3
|
|
|
5
4
|
Gem::Specification.new do |s|
|
|
6
|
-
s.name =
|
|
5
|
+
s.name = 'beaker-rspec'
|
|
7
6
|
s.version = BeakerRSpec::Version::STRING
|
|
8
|
-
s.authors = [
|
|
9
|
-
s.email = [
|
|
10
|
-
s.homepage =
|
|
11
|
-
s.summary =
|
|
12
|
-
s.description =
|
|
7
|
+
s.authors = ['Vox Pupuli']
|
|
8
|
+
s.email = ['voxpupuli@groups.io']
|
|
9
|
+
s.homepage = 'https://github.com/voxpupuli/beaker-rspec'
|
|
10
|
+
s.summary = 'RSpec bindings for beaker'
|
|
11
|
+
s.description = 'RSpec bindings for beaker, see https://github.com/voxpupuli/beaker'
|
|
13
12
|
s.license = 'Apache-2.0'
|
|
14
13
|
|
|
15
|
-
s.required_ruby_version = '>= 2.
|
|
14
|
+
s.required_ruby_version = '>= 2.7.0', '<4.0.0'
|
|
16
15
|
|
|
17
16
|
s.files = `git ls-files`.split("\n")
|
|
18
|
-
s.
|
|
19
|
-
s.
|
|
20
|
-
s.require_paths = ["lib"]
|
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
|
18
|
+
s.require_paths = ['lib']
|
|
21
19
|
|
|
22
20
|
# Testing dependencies
|
|
23
|
-
s.add_development_dependency 'minitest', '~> 5.4'
|
|
24
21
|
s.add_development_dependency 'fakefs', '>= 0.6', '< 2'
|
|
22
|
+
s.add_development_dependency 'minitest', '~> 5.4'
|
|
25
23
|
s.add_development_dependency 'rake', '~> 13.0'
|
|
26
24
|
|
|
25
|
+
# rubocop
|
|
26
|
+
s.add_development_dependency 'rubocop', '~> 1.48.1'
|
|
27
|
+
s.add_development_dependency 'rubocop-minitest'
|
|
28
|
+
s.add_development_dependency 'rubocop-performance'
|
|
29
|
+
s.add_development_dependency 'rubocop-rake'
|
|
30
|
+
s.add_development_dependency 'rubocop-rspec'
|
|
31
|
+
|
|
27
32
|
# Documentation dependencies
|
|
28
|
-
s.add_development_dependency 'yard'
|
|
29
33
|
s.add_development_dependency 'thin'
|
|
34
|
+
s.add_development_dependency 'yard'
|
|
30
35
|
|
|
31
36
|
# Run time dependencies
|
|
32
|
-
s.add_runtime_dependency 'beaker', '
|
|
37
|
+
s.add_runtime_dependency 'beaker', '>= 4.0', '< 6'
|
|
33
38
|
s.add_runtime_dependency 'rspec', '~> 3.0'
|
|
34
39
|
s.add_runtime_dependency 'serverspec', '~> 2'
|
|
35
40
|
s.add_runtime_dependency 'specinfra', '~> 2'
|
|
@@ -6,7 +6,6 @@ require 'specinfra/backend/powershell/script_helper'
|
|
|
6
6
|
set :backend, 'BeakerDispatch'
|
|
7
7
|
|
|
8
8
|
module Specinfra
|
|
9
|
-
|
|
10
9
|
# Accessor for current example
|
|
11
10
|
def cur_example
|
|
12
11
|
Specinfra.backend.example
|
|
@@ -15,11 +14,10 @@ module Specinfra
|
|
|
15
14
|
def get_working_node
|
|
16
15
|
example = cur_example
|
|
17
16
|
if example and example.metadata[:node]
|
|
18
|
-
|
|
17
|
+
example.metadata[:node]
|
|
19
18
|
else
|
|
20
|
-
|
|
19
|
+
default_node
|
|
21
20
|
end
|
|
22
|
-
node
|
|
23
21
|
end
|
|
24
22
|
|
|
25
23
|
# The cygwin backend
|
|
@@ -31,44 +29,39 @@ module Specinfra
|
|
|
31
29
|
def exec_backend
|
|
32
30
|
@exec_backend ||= Specinfra::Backend::BeakerExec.instance
|
|
33
31
|
end
|
|
34
|
-
|
|
35
32
|
end
|
|
36
33
|
|
|
37
|
-
|
|
38
34
|
# Override existing specinfra configuration to avoid conflicts
|
|
39
35
|
# with beaker's shell, stdout, stderr defines
|
|
40
36
|
module Specinfra
|
|
41
37
|
module Configuration
|
|
42
38
|
class << self
|
|
43
|
-
VALID_OPTIONS_KEYS = [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
VALID_OPTIONS_KEYS = %i[
|
|
40
|
+
backend
|
|
41
|
+
env
|
|
42
|
+
path
|
|
43
|
+
pre_command
|
|
44
|
+
sudo_path
|
|
45
|
+
disable_sudo
|
|
46
|
+
sudo_options
|
|
47
|
+
docker_image
|
|
48
|
+
docker_url
|
|
49
|
+
lxc
|
|
50
|
+
request_pty
|
|
51
|
+
ssh_options
|
|
52
|
+
dockerfile_finalizer
|
|
57
53
|
].freeze
|
|
58
54
|
end
|
|
59
|
-
|
|
60
55
|
end
|
|
61
56
|
end
|
|
62
57
|
|
|
63
58
|
module Specinfra::Helper::Os
|
|
64
|
-
|
|
65
59
|
@@known_nodes = {}
|
|
66
60
|
|
|
67
61
|
def os
|
|
68
62
|
working_node_name = get_working_node.to_s
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
end
|
|
63
|
+
# haven't seen this yet, better detect the os
|
|
64
|
+
@@known_nodes[working_node_name] = property[:os] = detect_os unless @@known_nodes[working_node_name]
|
|
72
65
|
@@known_nodes[working_node_name]
|
|
73
66
|
end
|
|
74
67
|
|
|
@@ -78,11 +71,11 @@ module Specinfra::Helper::Os
|
|
|
78
71
|
# when we know that we have a windows node
|
|
79
72
|
def detect_os
|
|
80
73
|
return Specinfra.configuration.os if Specinfra.configuration.os
|
|
74
|
+
|
|
81
75
|
backend = Specinfra.backend
|
|
82
76
|
node = get_working_node
|
|
83
|
-
if node['platform']
|
|
84
|
-
|
|
85
|
-
end
|
|
77
|
+
return { family: 'windows' } if node['platform'].include?('windows')
|
|
78
|
+
|
|
86
79
|
Specinfra::Helper::DetectOs.subclasses.each do |c|
|
|
87
80
|
res = c.detect
|
|
88
81
|
if res
|
|
@@ -97,36 +90,34 @@ class Specinfra::CommandFactory
|
|
|
97
90
|
class << self
|
|
98
91
|
# Force creation of a windows command
|
|
99
92
|
def get_windows_cmd(meth, *args)
|
|
100
|
-
|
|
101
93
|
action, resource_type, subaction = breakdown(meth)
|
|
102
94
|
method = action
|
|
103
95
|
method += "_#{subaction}" if subaction
|
|
104
96
|
|
|
105
97
|
common_class = Specinfra::Command
|
|
106
|
-
base_class = common_class.const_get(
|
|
107
|
-
os_class = common_class.const_get(
|
|
108
|
-
version_class = os_class.const_get(
|
|
98
|
+
base_class = common_class.const_get(:Base)
|
|
99
|
+
os_class = common_class.const_get(:Windows)
|
|
100
|
+
version_class = os_class.const_get(:Base)
|
|
109
101
|
command_class = version_class.const_get(resource_type.to_camel_case)
|
|
110
102
|
|
|
111
103
|
command_class = command_class.create
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
raise NotImplementedError.new("#{method} is not implemented in #{command_class}")
|
|
104
|
+
unless command_class.respond_to?(method)
|
|
105
|
+
raise NotImplementedError,
|
|
106
|
+
"#{method} is not implemented in #{command_class}"
|
|
116
107
|
end
|
|
117
|
-
end
|
|
118
108
|
|
|
109
|
+
command_class.send(method, *args)
|
|
110
|
+
end
|
|
119
111
|
end
|
|
120
112
|
end
|
|
121
113
|
|
|
122
114
|
module Specinfra
|
|
123
115
|
# Rewrite the runner to use the appropriate backend based upon platform information
|
|
124
116
|
class Runner
|
|
125
|
-
|
|
126
117
|
def self.method_missing(meth, *args)
|
|
127
118
|
backend = Specinfra.backend
|
|
128
119
|
node = get_working_node
|
|
129
|
-
if node['platform']
|
|
120
|
+
if !node['platform'].include?('windows')
|
|
130
121
|
processor = Specinfra::Processor
|
|
131
122
|
if processor.respond_to?(meth)
|
|
132
123
|
processor.send(meth, *args)
|
|
@@ -135,23 +126,19 @@ module Specinfra
|
|
|
135
126
|
else
|
|
136
127
|
run(meth, *args)
|
|
137
128
|
end
|
|
129
|
+
elsif backend.respond_to?(meth)
|
|
130
|
+
backend.send(meth, *args)
|
|
138
131
|
else
|
|
139
|
-
|
|
140
|
-
backend.send(meth, *args)
|
|
141
|
-
else
|
|
142
|
-
run(meth, *args)
|
|
143
|
-
end
|
|
132
|
+
run(meth, *args)
|
|
144
133
|
end
|
|
145
134
|
end
|
|
146
135
|
|
|
147
|
-
private
|
|
148
|
-
|
|
149
136
|
def self.run(meth, *args)
|
|
150
137
|
backend = Specinfra.backend
|
|
151
138
|
cmd = Specinfra.command.get(meth, *args)
|
|
152
139
|
backend = Specinfra.backend
|
|
153
140
|
ret = backend.run_command(cmd)
|
|
154
|
-
if meth.to_s
|
|
141
|
+
if meth.to_s.start_with?('check')
|
|
155
142
|
ret.success?
|
|
156
143
|
else
|
|
157
144
|
ret
|
|
@@ -168,7 +155,7 @@ module Specinfra::Backend::PowerShell
|
|
|
168
155
|
when Regexp
|
|
169
156
|
target.source
|
|
170
157
|
else
|
|
171
|
-
Regexp.escape(target.to_s.gsub
|
|
158
|
+
Regexp.escape(target.to_s.gsub('/', '\/')).gsub('\n', '(\r\n|\n)')
|
|
172
159
|
end
|
|
173
160
|
end
|
|
174
161
|
end
|
|
@@ -177,38 +164,34 @@ end
|
|
|
177
164
|
module Specinfra::Backend
|
|
178
165
|
class BeakerBase < Specinfra::Backend::Base
|
|
179
166
|
# Example accessor
|
|
180
|
-
|
|
181
|
-
@example
|
|
182
|
-
end
|
|
167
|
+
attr_reader :example
|
|
183
168
|
|
|
184
169
|
# Execute the provided ssh command
|
|
185
170
|
# @param [String] command The command to be executed
|
|
186
171
|
# @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
|
|
187
172
|
def ssh_exec!(node, command)
|
|
188
|
-
r = on node, command, { :
|
|
173
|
+
r = on node, command, { acceptable_exit_codes: (0..127) }
|
|
189
174
|
{
|
|
190
|
-
:
|
|
191
|
-
:
|
|
192
|
-
:
|
|
175
|
+
exit_status: r.exit_code,
|
|
176
|
+
stdout: r.stdout,
|
|
177
|
+
stderr: r.stderr,
|
|
193
178
|
}
|
|
194
179
|
end
|
|
195
|
-
|
|
196
180
|
end
|
|
197
181
|
end
|
|
198
182
|
|
|
199
183
|
# Used as a container for the two backends, dispatches as windows/nix depending on node platform
|
|
200
184
|
module Specinfra::Backend
|
|
201
185
|
class BeakerDispatch < BeakerBase
|
|
202
|
-
|
|
203
186
|
def dispatch_method(meth, *args)
|
|
204
|
-
if get_working_node['platform']
|
|
187
|
+
if get_working_node['platform'].include?('windows')
|
|
205
188
|
cygwin_backend.send(meth, *args)
|
|
206
189
|
else
|
|
207
190
|
exec_backend.send(meth, *args)
|
|
208
191
|
end
|
|
209
192
|
end
|
|
210
193
|
|
|
211
|
-
def run_command(cmd, opts={})
|
|
194
|
+
def run_command(cmd, opts = {})
|
|
212
195
|
dispatch_method('run_command', cmd, opts)
|
|
213
196
|
end
|
|
214
197
|
|
|
@@ -232,22 +215,22 @@ module Specinfra::Backend
|
|
|
232
215
|
# @param [String] cmd The serverspec command to executed
|
|
233
216
|
# @param [Hash] opt No currently supported options
|
|
234
217
|
# @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
|
|
235
|
-
def run_command(cmd,
|
|
218
|
+
def run_command(cmd, _opt = {})
|
|
236
219
|
node = get_working_node
|
|
237
220
|
script = create_script(cmd)
|
|
238
|
-
#when node is not cygwin rm -rf will fail so lets use native del instead
|
|
239
|
-
#There should be a better way to do this, but for now , this works
|
|
221
|
+
# when node is not cygwin rm -rf will fail so lets use native del instead
|
|
222
|
+
# There should be a better way to do this, but for now , this works
|
|
240
223
|
if node.is_cygwin?
|
|
241
|
-
delete_command =
|
|
242
|
-
redirection =
|
|
224
|
+
delete_command = 'rm -rf'
|
|
225
|
+
redirection = '< /dev/null'
|
|
243
226
|
else
|
|
244
|
-
delete_command =
|
|
245
|
-
redirection =
|
|
227
|
+
delete_command = 'del'
|
|
228
|
+
redirection = '< NUL'
|
|
246
229
|
end
|
|
247
230
|
on node, "#{delete_command} script.ps1"
|
|
248
231
|
create_remote_file(node, 'script.ps1', script)
|
|
249
|
-
#When using cmd on a pswindows node redirection should be set to < NUl
|
|
250
|
-
#when using a cygwing one, /dev/null should be fine
|
|
232
|
+
# When using cmd on a pswindows node redirection should be set to < NUl
|
|
233
|
+
# when using a cygwing one, /dev/null should be fine
|
|
251
234
|
ret = ssh_exec!(node, "powershell.exe -File script.ps1 #{redirection}")
|
|
252
235
|
|
|
253
236
|
if @example
|
|
@@ -263,13 +246,12 @@ end
|
|
|
263
246
|
# Backend for running serverspec commands on non-windows test nodes
|
|
264
247
|
module Specinfra::Backend
|
|
265
248
|
class BeakerExec < BeakerBase
|
|
266
|
-
|
|
267
249
|
# Run a unix style command using serverspec. Defaults to running on the 'default_node'
|
|
268
250
|
# test node, otherwise uses the node specified in @example.metadata[:node]
|
|
269
251
|
# @param [String] cmd The serverspec command to executed
|
|
270
252
|
# @param [Hash] opt No currently supported options
|
|
271
253
|
# @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
|
|
272
|
-
def run_command(cmd,
|
|
254
|
+
def run_command(cmd, _opt = {})
|
|
273
255
|
node = get_working_node
|
|
274
256
|
cmd = build_command(cmd)
|
|
275
257
|
cmd = add_pre_command(cmd)
|
|
@@ -289,9 +271,7 @@ module Specinfra::Backend
|
|
|
289
271
|
cmd = "#{String(useshell).shellescape} -c #{String(cmd).shellescape}"
|
|
290
272
|
|
|
291
273
|
path = Specinfra.configuration.path
|
|
292
|
-
if path
|
|
293
|
-
cmd = %Q{env PATH="#{path}" #{cmd}}
|
|
294
|
-
end
|
|
274
|
+
cmd = %(env PATH="#{path}" #{cmd}) if path
|
|
295
275
|
|
|
296
276
|
cmd
|
|
297
277
|
end
|
|
@@ -304,6 +284,5 @@ module Specinfra::Backend
|
|
|
304
284
|
cmd
|
|
305
285
|
end
|
|
306
286
|
end
|
|
307
|
-
|
|
308
287
|
end
|
|
309
288
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require 'beaker-rspec/beaker_shim'
|
|
2
|
-
require
|
|
2
|
+
require 'beaker-rspec/helpers/serverspec'
|
|
3
3
|
include BeakerRSpec::BeakerShim
|
|
4
4
|
|
|
5
5
|
RSpec.configure do |c|
|
|
@@ -7,48 +7,48 @@ RSpec.configure do |c|
|
|
|
7
7
|
c.tty = true
|
|
8
8
|
|
|
9
9
|
# Define persistant hosts setting
|
|
10
|
-
c.add_setting :hosts, :
|
|
10
|
+
c.add_setting :hosts, default: []
|
|
11
11
|
# Define persistant options setting
|
|
12
|
-
c.add_setting :options, :
|
|
12
|
+
c.add_setting :options, default: {}
|
|
13
13
|
# Define persistant metadata object
|
|
14
|
-
c.add_setting :metadata, :
|
|
14
|
+
c.add_setting :metadata, default: {}
|
|
15
15
|
# Define persistant logger object
|
|
16
|
-
c.add_setting :logger, :
|
|
16
|
+
c.add_setting :logger, default: nil
|
|
17
17
|
# Define persistant default node
|
|
18
|
-
c.add_setting :default_node, :
|
|
18
|
+
c.add_setting :default_node, default: nil
|
|
19
19
|
|
|
20
|
-
#default option values
|
|
20
|
+
# default option values
|
|
21
21
|
defaults = {
|
|
22
|
-
:
|
|
22
|
+
nodeset: 'default',
|
|
23
23
|
}
|
|
24
|
-
#read env vars
|
|
24
|
+
# read env vars
|
|
25
25
|
env_vars = {
|
|
26
|
-
:
|
|
27
|
-
:
|
|
28
|
-
:
|
|
29
|
-
:
|
|
30
|
-
:
|
|
31
|
-
:
|
|
32
|
-
:
|
|
33
|
-
:
|
|
34
|
-
:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
color: ENV['BEAKER_COLOR'] || ENV['BEAKER_color'] || ENV.fetch('RS_COLOR', nil),
|
|
27
|
+
nodeset: ENV['BEAKER_SET'] || ENV['BEAKER_set'] || ENV.fetch('RS_SET', nil),
|
|
28
|
+
nodesetdir: ENV['BEAKER_SETDIR'] || ENV['BEAKER_setdir'] || ENV.fetch('RS_SETDIR', nil),
|
|
29
|
+
nodesetfile: ENV['BEAKER_SETFILE'] || ENV['BEAKER_setfile'] || ENV.fetch('RS_SETFILE', nil),
|
|
30
|
+
provision: ENV['BEAKER_PROVISION'] || ENV['BEAKER_provision'] || ENV.fetch('RS_PROVISION', nil),
|
|
31
|
+
keyfile: ENV['BEAKER_KEYFILE'] || ENV['BEAKER_keyfile'] || ENV.fetch('RS_KEYFILE', nil),
|
|
32
|
+
debug: ENV['BEAKER_DEBUG'] || ENV['BEAKER_debug'] || ENV.fetch('RS_DEBUG', nil),
|
|
33
|
+
destroy: ENV['BEAKER_DESTROY'] || ENV['BEAKER_destroy'] || ENV.fetch('RS_DESTROY', nil),
|
|
34
|
+
optionsfile: ENV['BEAKER_OPTIONS_FILE'] || ENV['BEAKER_options_file'] || ENV.fetch('RS_OPTIONS_FILE', nil),
|
|
35
|
+
}.delete_if { |_key, value| value.nil? }
|
|
36
|
+
# combine defaults and env_vars to determine overall options
|
|
37
|
+
options = defaults.merge(env_vars)
|
|
38
38
|
|
|
39
39
|
# process options to construct beaker command string
|
|
40
40
|
nodesetdir = options[:nodesetdir] || File.join('spec', 'acceptance', 'nodesets')
|
|
41
41
|
nodesetfile = options[:nodesetfile] || File.join(nodesetdir, "#{options[:nodeset]}.yml")
|
|
42
42
|
fresh_nodes = options[:provision] == 'no' ? '--no-provision' : nil
|
|
43
43
|
keyfile = options[:keyfile] ? ['--keyfile', options[:keyfile]] : nil
|
|
44
|
-
debug = options[:debug] ? ['--log-level', 'debug'] : nil
|
|
44
|
+
debug = options[:debug] && options[:debug] != 'no' ? ['--log-level', 'debug'] : nil
|
|
45
45
|
color = options[:color] == 'no' ? ['--no-color'] : nil
|
|
46
|
-
options_file = options[:optionsfile] ? ['--options-file',options[:optionsfile]] : nil
|
|
46
|
+
options_file = options[:optionsfile] ? ['--options-file', options[:optionsfile]] : nil
|
|
47
47
|
|
|
48
48
|
# Configure all nodes in nodeset
|
|
49
49
|
c.setup([fresh_nodes, '--hosts', nodesetfile, keyfile, debug, color, options_file].flatten.compact)
|
|
50
50
|
|
|
51
|
-
trap
|
|
51
|
+
trap 'SIGINT' do
|
|
52
52
|
c.cleanup
|
|
53
53
|
exit!(1)
|
|
54
54
|
end
|
data/lib/beaker-rspec/version.rb
CHANGED
data/lib/beaker-rspec.rb
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
4
|
-
|
|
5
|
-
example "ignore" do
|
|
3
|
+
describe 'ignore' do
|
|
4
|
+
example 'ignore' do
|
|
6
5
|
hosts.each do |host|
|
|
7
6
|
on host, 'echo hello'
|
|
8
7
|
end
|
|
9
8
|
end
|
|
10
9
|
|
|
11
|
-
example
|
|
10
|
+
example 'use self.host' do
|
|
12
11
|
self.hosts = hosts
|
|
13
12
|
end
|
|
14
13
|
|
|
15
|
-
example
|
|
14
|
+
example 'use DSL method' do
|
|
16
15
|
echo_on hosts, 'Hello World!'
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
example
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
example 'access the logger' do
|
|
19
|
+
logger.debug("hi, i'm a debug message")
|
|
20
|
+
logger.notify("hi, I'm a notify message")
|
|
22
21
|
end
|
|
23
22
|
|
|
24
|
-
example
|
|
23
|
+
example 'access the options' do
|
|
25
24
|
expect(options).to be_kind_of(Hash)
|
|
26
25
|
end
|
|
27
26
|
|
|
28
|
-
example
|
|
27
|
+
example 'create a beaker dsl::step' do
|
|
29
28
|
step('testing that a step can be used')
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
context
|
|
31
|
+
context 'has serverspec support' do
|
|
33
32
|
hosts.each do |node|
|
|
34
33
|
sshd = case node['platform']
|
|
35
34
|
when /windows|el-|redhat|centos/
|
|
@@ -37,8 +36,8 @@ describe "ignore" do
|
|
|
37
36
|
else
|
|
38
37
|
'ssh'
|
|
39
38
|
end
|
|
40
|
-
describe service(sshd), :
|
|
41
|
-
it {
|
|
39
|
+
describe service(sshd), node: node do
|
|
40
|
+
it { is_expected.to be_running }
|
|
42
41
|
end
|
|
43
42
|
|
|
44
43
|
usr = case node['platform']
|
|
@@ -47,13 +46,13 @@ describe "ignore" do
|
|
|
47
46
|
else
|
|
48
47
|
'root'
|
|
49
48
|
end
|
|
50
|
-
describe user(usr), :
|
|
51
|
-
|
|
49
|
+
describe user(usr), node: node do
|
|
50
|
+
it { is_expected.to exist }
|
|
52
51
|
end
|
|
53
52
|
end
|
|
54
53
|
end
|
|
55
54
|
|
|
56
|
-
context
|
|
55
|
+
context 'serverspec: can access default node' do
|
|
57
56
|
usr = case default['platform']
|
|
58
57
|
when /windows/
|
|
59
58
|
'Administrator'
|
|
@@ -61,16 +60,16 @@ describe "ignore" do
|
|
|
61
60
|
'root'
|
|
62
61
|
end
|
|
63
62
|
describe user(usr) do
|
|
64
|
-
|
|
63
|
+
it { is_expected.to exist }
|
|
65
64
|
end
|
|
66
65
|
end
|
|
67
66
|
|
|
68
|
-
context
|
|
67
|
+
context 'serverspec: can match multiline file to multiline contents' do
|
|
69
68
|
contents = "four = five\n[one]\ntwo = three"
|
|
70
|
-
create_remote_file(default,
|
|
71
|
-
describe file(
|
|
72
|
-
it {
|
|
73
|
-
it {
|
|
69
|
+
create_remote_file(default, 'file_with_contents.txt', contents)
|
|
70
|
+
describe file('file_with_contents.txt') do
|
|
71
|
+
it { is_expected.to be_file }
|
|
72
|
+
it { is_expected.to contain(contents) }
|
|
74
73
|
end
|
|
75
74
|
end
|
|
76
75
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaker-rspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 8.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vox Pupuli
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-03-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: fakefs
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0.6'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '2'
|
|
23
|
+
type: :development
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '0.6'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '2'
|
|
13
33
|
- !ruby/object:Gem::Dependency
|
|
14
34
|
name: minitest
|
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -25,41 +45,77 @@ dependencies:
|
|
|
25
45
|
- !ruby/object:Gem::Version
|
|
26
46
|
version: '5.4'
|
|
27
47
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
48
|
+
name: rake
|
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
|
30
50
|
requirements:
|
|
31
|
-
- - "
|
|
51
|
+
- - "~>"
|
|
32
52
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0
|
|
34
|
-
|
|
53
|
+
version: '13.0'
|
|
54
|
+
type: :development
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
35
59
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: '
|
|
60
|
+
version: '13.0'
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: rubocop
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.48.1
|
|
37
68
|
type: :development
|
|
38
69
|
prerelease: false
|
|
39
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.48.1
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: rubocop-minitest
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
40
78
|
requirements:
|
|
41
79
|
- - ">="
|
|
42
80
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: '0
|
|
44
|
-
|
|
81
|
+
version: '0'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
45
87
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
88
|
+
version: '0'
|
|
47
89
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
90
|
+
name: rubocop-performance
|
|
49
91
|
requirement: !ruby/object:Gem::Requirement
|
|
50
92
|
requirements:
|
|
51
|
-
- - "
|
|
93
|
+
- - ">="
|
|
52
94
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
95
|
+
version: '0'
|
|
54
96
|
type: :development
|
|
55
97
|
prerelease: false
|
|
56
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
99
|
requirements:
|
|
58
|
-
- - "
|
|
100
|
+
- - ">="
|
|
59
101
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
102
|
+
version: '0'
|
|
61
103
|
- !ruby/object:Gem::Dependency
|
|
62
|
-
name:
|
|
104
|
+
name: rubocop-rake
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
type: :development
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '0'
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: rubocop-rspec
|
|
63
119
|
requirement: !ruby/object:Gem::Requirement
|
|
64
120
|
requirements:
|
|
65
121
|
- - ">="
|
|
@@ -86,20 +142,40 @@ dependencies:
|
|
|
86
142
|
- - ">="
|
|
87
143
|
- !ruby/object:Gem::Version
|
|
88
144
|
version: '0'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: yard
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - ">="
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0'
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - ">="
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0'
|
|
89
159
|
- !ruby/object:Gem::Dependency
|
|
90
160
|
name: beaker
|
|
91
161
|
requirement: !ruby/object:Gem::Requirement
|
|
92
162
|
requirements:
|
|
93
|
-
- - "
|
|
163
|
+
- - ">="
|
|
94
164
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
165
|
+
version: '4.0'
|
|
166
|
+
- - "<"
|
|
167
|
+
- !ruby/object:Gem::Version
|
|
168
|
+
version: '6'
|
|
96
169
|
type: :runtime
|
|
97
170
|
prerelease: false
|
|
98
171
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
172
|
requirements:
|
|
100
|
-
- - "
|
|
173
|
+
- - ">="
|
|
101
174
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
175
|
+
version: '4.0'
|
|
176
|
+
- - "<"
|
|
177
|
+
- !ruby/object:Gem::Version
|
|
178
|
+
version: '6'
|
|
103
179
|
- !ruby/object:Gem::Dependency
|
|
104
180
|
name: rspec
|
|
105
181
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -153,6 +229,8 @@ files:
|
|
|
153
229
|
- ".github/workflows/release.yml"
|
|
154
230
|
- ".github/workflows/test.yml"
|
|
155
231
|
- ".gitignore"
|
|
232
|
+
- ".rubocop.yml"
|
|
233
|
+
- ".rubocop_todo.yml"
|
|
156
234
|
- CHANGELOG.md
|
|
157
235
|
- Gemfile
|
|
158
236
|
- HISTORY.md
|
|
@@ -180,7 +258,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
180
258
|
requirements:
|
|
181
259
|
- - ">="
|
|
182
260
|
- !ruby/object:Gem::Version
|
|
183
|
-
version: 2.
|
|
261
|
+
version: 2.7.0
|
|
184
262
|
- - "<"
|
|
185
263
|
- !ruby/object:Gem::Version
|
|
186
264
|
version: 4.0.0
|
|
@@ -190,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
190
268
|
- !ruby/object:Gem::Version
|
|
191
269
|
version: '0'
|
|
192
270
|
requirements: []
|
|
193
|
-
rubygems_version: 3.
|
|
271
|
+
rubygems_version: 3.4.6
|
|
194
272
|
signing_key:
|
|
195
273
|
specification_version: 4
|
|
196
274
|
summary: RSpec bindings for beaker
|