rspec-puppet-facts 1.9.5 → 1.9.6

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 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