Merge pull request #346 from tphoney/MODULES-3958
(MODULES-3958) use rspec-mock and add coverage
This commit is contained in:
@@ -1 +1 @@
|
|||||||
--relative
|
|
||||||
|
|||||||
14
.sync.yml
14
.sync.yml
@@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
.gitlab-ci.yml:
|
||||||
|
unmanaged: true
|
||||||
|
|
||||||
.travis.yml:
|
.travis.yml:
|
||||||
docker_sets:
|
docker_sets:
|
||||||
- set: docker/centos-7
|
- set: docker/centos-7
|
||||||
@@ -9,6 +12,9 @@
|
|||||||
branches:
|
branches:
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
appveyor.yml:
|
||||||
|
delete: true
|
||||||
|
|
||||||
Gemfile:
|
Gemfile:
|
||||||
optional:
|
optional:
|
||||||
':development':
|
':development':
|
||||||
@@ -26,8 +32,6 @@ Gemfile:
|
|||||||
- mingw
|
- mingw
|
||||||
- x64_mingw
|
- x64_mingw
|
||||||
|
|
||||||
appveyor.yml:
|
spec/spec_helper.rb:
|
||||||
delete: true
|
mock_with: ':rspec'
|
||||||
|
coverage_report: true
|
||||||
.gitlab-ci.yml:
|
|
||||||
unmanaged: true
|
|
||||||
|
|||||||
@@ -79,5 +79,5 @@
|
|||||||
],
|
],
|
||||||
"template-url": "https://github.com/puppetlabs/pdk-templates/",
|
"template-url": "https://github.com/puppetlabs/pdk-templates/",
|
||||||
"template-ref": "1.9.0-0-g7281db5",
|
"template-ref": "1.9.0-0-g7281db5",
|
||||||
"pdk-version": "1.9.0"
|
"pdk-version": "1.7.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
RSpec.configure do |c|
|
||||||
|
c.mock_with :rspec
|
||||||
|
end
|
||||||
|
|
||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
require 'rspec-puppet-facts'
|
require 'rspec-puppet-facts'
|
||||||
|
|
||||||
@@ -34,6 +38,7 @@ RSpec.configure do |c|
|
|||||||
end
|
end
|
||||||
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
|
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
|
||||||
c.after(:suite) do
|
c.after(:suite) do
|
||||||
|
RSpec::Puppet::Coverage.report!(0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
28
spec/spec_helper_local.rb
Normal file
28
spec/spec_helper_local.rb
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
if ENV['COVERAGE'] == 'yes'
|
||||||
|
require 'simplecov'
|
||||||
|
require 'simplecov-console'
|
||||||
|
require 'codecov'
|
||||||
|
|
||||||
|
SimpleCov.formatters = [
|
||||||
|
SimpleCov::Formatter::HTMLFormatter,
|
||||||
|
SimpleCov::Formatter::Console,
|
||||||
|
SimpleCov::Formatter::Codecov,
|
||||||
|
]
|
||||||
|
SimpleCov.start do
|
||||||
|
track_files 'lib/**/*.rb'
|
||||||
|
|
||||||
|
add_filter '/spec'
|
||||||
|
|
||||||
|
# do not track vendored files
|
||||||
|
add_filter '/vendor'
|
||||||
|
add_filter '/.vendor'
|
||||||
|
|
||||||
|
# do not track gitignored files
|
||||||
|
# this adds about 4 seconds to the coverage check
|
||||||
|
# this could definitely be optimized
|
||||||
|
add_filter do |f|
|
||||||
|
# system returns true if exit status is 0, which with git-check-ignore means file is ignored
|
||||||
|
system("git check-ignore --quiet #{f.filename}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -15,15 +15,15 @@ end
|
|||||||
|
|
||||||
def symlink_and_test(symlink_path, java_home)
|
def symlink_and_test(symlink_path, java_home)
|
||||||
File.symlink(symlink_path, './java_test')
|
File.symlink(symlink_path, './java_test')
|
||||||
Facter::Util::Resolution.expects(:which).with('java').returns('./java_test')
|
expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('./java_test')
|
||||||
File.expects(:realpath).with('./java_test').returns(symlink_path)
|
expect(File).to receive(:realpath).with('./java_test').and_return(symlink_path)
|
||||||
expect(Facter.value(:java_default_home)).to eql java_home
|
expect(Facter.value(:java_default_home)).to eql java_home
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'java_default_home' do
|
describe 'java_default_home' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when java found in PATH' do
|
context 'when java found in PATH' do
|
||||||
@@ -46,8 +46,8 @@ describe 'java_default_home' do
|
|||||||
|
|
||||||
context 'when java not present, return nil' do
|
context 'when java not present, return nil' do
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.stubs(:exec)
|
allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls
|
||||||
Facter::Util::Resolution.expects(:which).with('java').at_least(1).returns(false)
|
expect(Facter::Util::Resolution).to receive(:which).with('java').at_least(1).and_return(false)
|
||||||
expect(Facter.value(:java_default_home)).to be_nil
|
expect(Facter.value(:java_default_home)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ require 'spec_helper'
|
|||||||
describe 'java_libjvm_path' do
|
describe 'java_libjvm_path' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.clear
|
Facter.clear
|
||||||
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
allow(Facter.fact(:kernel)).to receive(:value).once.and_return('Linux')
|
||||||
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
|
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
|
||||||
Facter.fact(:java_default_home).stubs(:value).returns(java_default_home)
|
allow(Facter.fact(:java_default_home)).to receive(:value).once.and_return(java_default_home)
|
||||||
Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
allow(Dir).to receive(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").and_return(['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when on Linux, return libjvm path' do
|
context 'when on Linux, return libjvm path' do
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ describe 'java_major_version' do
|
|||||||
|
|
||||||
context 'when java_version fact present, returns major version' do
|
context 'when java_version fact present, returns major version' do
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
allow(Facter.fact(:java_version)).to receive(:value).and_return('1.7.0_71')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_major_version).value).to eq('7')
|
expect(Facter.fact(:java_major_version).value).to eq('7')
|
||||||
@@ -16,7 +16,7 @@ describe 'java_major_version' do
|
|||||||
|
|
||||||
context 'when java not present, returns nil' do
|
context 'when java not present, returns nil' do
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
allow(Facter.fact(:java_version)).to receive(:value).and_return('nil')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_major_version).value).to be_nil
|
expect(Facter.fact(:java_major_version).value).to be_nil
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ describe 'java_patch_level' do
|
|||||||
|
|
||||||
context 'when java is installed returns java patch version extracted from java_version fact' do
|
context 'when java is installed returns java patch version extracted from java_version fact' do
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
|
allow(Facter.fact(:java_version)).to receive(:value).and_return('1.7.0_71')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_patch_level).value).to eq('71')
|
expect(Facter.fact(:java_patch_level).value).to eq('71')
|
||||||
@@ -16,7 +16,7 @@ describe 'java_patch_level' do
|
|||||||
|
|
||||||
context 'when java is not installed returns nil' do
|
context 'when java is not installed returns nil' do
|
||||||
before :each do
|
before :each do
|
||||||
Facter.fact(:java_version).stubs(:value).returns(nil)
|
allow(Facter.fact(:java_version)).to receive(:value).and_return('nil')
|
||||||
end
|
end
|
||||||
it do
|
it do
|
||||||
expect(Facter.fact(:java_patch_level).value).to be_nil
|
expect(Facter.fact(:java_patch_level).value).to be_nil
|
||||||
|
|||||||
@@ -18,37 +18,37 @@ describe 'java_version' do
|
|||||||
context 'when java present, returns java version' do
|
context 'when java present, returns java version' do
|
||||||
context 'on OpenBSD', with_env: true do
|
context 'on OpenBSD', with_env: true do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:which).with('java').returns('/usr/local/jdk-1.7.0/jre/bin/java')
|
expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/usr/local/jdk-1.7.0/jre/bin/java')
|
||||||
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(openjdk_7_output)
|
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(openjdk_7_output)
|
||||||
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'when on Darwin' do
|
context 'when on Darwin' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:exec).with('/usr/libexec/java_home --failfast 2>&1').returns('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
|
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
|
||||||
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
|
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output)
|
||||||
expect(Facter.value(:java_version)).to eql '1.7.0_71'
|
expect(Facter.value(:java_version)).to eql '1.7.0_71'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'when on other systems' do
|
context 'when on other systems' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'MyOS' } }
|
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java')
|
expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/path/to/java')
|
||||||
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
|
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output)
|
||||||
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
expect(Facter.value(:java_version)).to eq('1.7.0_71')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -57,34 +57,34 @@ describe 'java_version' do
|
|||||||
context 'when java not present, returns nil' do
|
context 'when java not present, returns nil' do
|
||||||
context 'on OpenBSD', with_env: true do
|
context 'on OpenBSD', with_env: true do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
let(:facts) { { operatingsystem: 'OpenBSD' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.stubs(:exec)
|
allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'when on Darwin' do
|
context 'when on Darwin' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'Darwin' } }
|
let(:facts) { { operatingsystem: 'Darwin' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".')
|
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".')
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
context 'when on other systems' do
|
context 'when on other systems' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
|
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS')
|
||||||
end
|
end
|
||||||
let(:facts) { { operatingsystem: 'MyOS' } }
|
let(:facts) { { operatingsystem: 'MyOS' } }
|
||||||
|
|
||||||
it do
|
it do
|
||||||
Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false)
|
expect(Facter::Util::Resolution).to receive(:which).at_least(1).with('java').and_return(false)
|
||||||
expect(Facter.value(:java_version)).to be_nil
|
expect(Facter.value(:java_version)).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user