rspec-puppet-facts 1.9.5 → 1.9.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 643de41b550424eb4cf57cdb3b2c7a68ee9391b80df3eedb29f0896d0b88bd70
4
- data.tar.gz: e9db928178faccb9a8825f27a655d33d2488197985211b22ff78b48bdfd4d8bb
2
+ SHA1:
3
+ metadata.gz: a64115f0d16cfdcdc93bae297977afe14d8cc710
4
+ data.tar.gz: ae69075f4678a762b2f9974144ba275f095aac9f
5
5
  SHA512:
6
- metadata.gz: afe0f40872939558ac3112ac26c1cb2186203174d5a68247d01a8559bb9054b6f8f2f0538359f609149e95b7cac755b21c2823e12e97f86096814846855c6d5d
7
- data.tar.gz: a5d72718244ef7dd72d667660e21f7e958c2d5025d2da6818f9dde169e7a8841aa6389a281294da28dfbb0f3fe972f7e6de82db81eaa17b2c048d1b3c59f1ecc
6
+ metadata.gz: 98b7d46da60565cec886e89b78bf15dee26691d9f7060d6ad48852f19ea0fa0799a50412e16e4ee089689aa71dd7e831eff420f8e3ebd811fbe13ecca3631402
7
+ data.tar.gz: 812d53e7265c0f97af809625ca4d8f2b2a0c963d70e2aad0ae35aa6c8f2ac882138e7d6257f03b8251baf5bde0e04795af396da0bdad234359f7e8e7b05f43d6
@@ -1,3 +1,11 @@
1
+ ## 2019-07-31 - Release 1.9.6
2
+ - Suppress the warning message generated when the Augeas gem is not available.
3
+ - Searching through older Facter releases for a fact set that does not exist no
4
+ longer causes it to hang indefinitely.
5
+ - The `operatingsystemrelease` values are now correctly escaped when building
6
+ the FacterDB filters, allowing the use of `operatingsystemrelease` values
7
+ that contain special regular expression characters like parentheses.
8
+
1
9
  ## 2019-07-29 - Release 1.9.5
2
10
  - The default version of Facter to search for is now configurable with
3
11
  `RSpec.configuration.default_facter_version`.
@@ -59,7 +59,7 @@ module RspecPuppetFacts
59
59
  Array(os_sup['operatingsystemrelease']).map do |operatingsystemmajrelease|
60
60
  opts[:hardwaremodels].each do |hardwaremodel|
61
61
 
62
- os_release_filter = "/^#{operatingsystemmajrelease.split(' ')[0]}/"
62
+ os_release_filter = "/^#{Regexp.escape(operatingsystemmajrelease.split(' ')[0])}/"
63
63
  if os_sup['operatingsystem'] =~ /BSD/i
64
64
  hardwaremodel = 'amd64'
65
65
  elsif os_sup['operatingsystem'] =~ /Solaris/i
@@ -109,7 +109,7 @@ module RspecPuppetFacts
109
109
  db = FacterDB.get_facts(filter_spec.merge({ :facterversion => facter_version_filter }))
110
110
 
111
111
  version = facterversion
112
- while db.empty? && version !~ /\d+\.0($|\.\d+)/
112
+ while db.empty? && version !~ /\A\d+\.0($|\.\d+)/
113
113
  version = RspecPuppetFacts.down_facter_version(version)
114
114
  facter_version_filter = RspecPuppetFacts.facter_version_to_filter(version)
115
115
  db = FacterDB.get_facts(filter_spec.merge({ :facterversion => facter_version_filter }))
@@ -260,8 +260,7 @@ module RspecPuppetFacts
260
260
  def self.augeas?
261
261
  require 'augeas'
262
262
  true
263
- rescue LoadError => e
264
- RspecPuppetFacts.warning "Failed to retrieve Augeas version: #{e}"
263
+ rescue LoadError
265
264
  false
266
265
  end
267
266
  # :nocov:
@@ -344,8 +343,9 @@ module RspecPuppetFacts
344
343
  # @param minor_subtractor [int] the value which to subtract by
345
344
  # @api private
346
345
  def self.down_facter_version(version, minor_subtractor = 1)
347
- major, minor, z = version.split('.')
348
- minor = (minor.to_i - minor_subtractor).to_s
349
- "#{major}.#{minor}.#{z}"
346
+ major, minor, z = version.split('.')
347
+ z = '0' if z.nil?
348
+ minor = (minor.to_i - minor_subtractor).to_s
349
+ "#{major}.#{minor}.#{z}"
350
350
  end
351
351
  end
@@ -2,6 +2,6 @@ module RspecPuppetFacts
2
2
  # This module contains the current version constant
3
3
  module Version
4
4
  # The current version of this gem
5
- STRING = '1.9.5'
5
+ STRING = '1.9.6'
6
6
  end
7
7
  end
@@ -486,6 +486,43 @@ describe RspecPuppetFacts do
486
486
  end
487
487
  end
488
488
 
489
+ context 'When the operatingsystemrelease contains parens' do
490
+ subject do
491
+ on_supported_os(
492
+ {
493
+ :supported_os => [
494
+ {
495
+ 'operatingsystem' => 'IOS',
496
+ 'operatingsystemrelease' => ['12.2(25)EWA9'],
497
+ }
498
+ ],
499
+ }
500
+ )
501
+ end
502
+
503
+ before(:each) do
504
+ allow(RspecPuppetFacts).to receive(:warning).with(a_string_matching(/no facts were found/i))
505
+ allow(FacterDB).to receive(:get_facts).and_call_original
506
+ end
507
+
508
+ it 'escapes the parens in the filter' do
509
+ filter = [
510
+ include(
511
+ :operatingsystem => "IOS",
512
+ :operatingsystemrelease => "/^12\\.2\\(25\\)EWA9/",
513
+ :hardwaremodel => "x86_64",
514
+ ),
515
+ ]
516
+
517
+ expect(FacterDB).to receive(:get_facts).with(filter)
518
+ subject
519
+ end
520
+
521
+ it 'does not raise an error' do
522
+ expect { subject }.not_to raise_error
523
+ end
524
+ end
525
+
489
526
  context 'Without a custom facterversion in the options hash' do
490
527
  subject do
491
528
  on_supported_os(
@@ -753,10 +790,6 @@ describe RspecPuppetFacts do
753
790
  expect(subject.common_facts[:augeasversion]).to eq 'my_version'
754
791
  end
755
792
 
756
- it 'can output a warning message' do
757
- expect { RspecPuppetFacts.warning('test') }.to output(/test/).to_stderr_from_any_process
758
- end
759
-
760
793
  context 'when mcollective is available' do
761
794
  module MCollective_stub
762
795
  VERSION = 'my_version'
@@ -850,4 +883,17 @@ describe RspecPuppetFacts do
850
883
  end
851
884
  end
852
885
  end
886
+
887
+ describe '.down_facter_version' do
888
+ context 'with MAJOR.MINOR.PATCH version' do
889
+ it 'decrements MINOR version' do
890
+ expect(RspecPuppetFacts.down_facter_version('3.5.5')).to eq '3.4.5'
891
+ end
892
+ end
893
+ context 'with MAJOR.MINOR version' do
894
+ it 'decrements MINOR version and sets PATCH to \'0\'' do
895
+ expect(RspecPuppetFacts.down_facter_version('3.5')).to eq '3.4.0'
896
+ end
897
+ end
898
+ end
853
899
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-puppet-facts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.5
4
+ version: 1.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mickaël Canévet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-29 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -178,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
178
  version: '0'
179
179
  requirements: []
180
180
  rubyforge_project:
181
- rubygems_version: 2.7.6.2
181
+ rubygems_version: 2.6.14.1
182
182
  signing_key:
183
183
  specification_version: 4
184
184
  summary: Standard facts fixtures for Puppet