forked from evolvingweb/puppet-apt
-
Notifications
You must be signed in to change notification settings - Fork 461
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit adds a facter fact for dist-upgrade, along with associated facter facts.
- Loading branch information
Will Meek
committed
Nov 8, 2017
1 parent
45a3ce3
commit ab5c977
Showing
10 changed files
with
303 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
require 'spec_helper' | ||
|
||
describe 'apt_has_dist_updates fact' do | ||
subject { Facter.fact(:apt_has_dist_updates).value } | ||
|
||
after(:each) { Facter.clear } | ||
|
||
describe 'on non-Debian distro' do | ||
before(:each) do | ||
Facter.fact(:osfamily).expects(:value).at_least(1).returns 'RedHat' | ||
end | ||
it { is_expected.to be_nil } | ||
end | ||
|
||
describe 'on Debian based distro missing apt-get' do | ||
before(:each) do | ||
Facter.fact(:osfamily).expects(:value).at_least(1).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns false | ||
end | ||
it { is_expected.to be_nil } | ||
end | ||
|
||
describe 'on Debian based distro' do | ||
before(:each) do | ||
Facter.fact(:osfamily).expects(:value).at_least(1).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
Facter::Util::Resolution.stubs(:exec) # Catch all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns 'test' | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
apt_output = "Inst extremetuxracer [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Conf extremetuxracer (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Inst planet.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Conf planet.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true dist-upgrade 2>&1').returns apt_output | ||
end | ||
it { is_expected.to be true } | ||
end | ||
end |
64 changes: 64 additions & 0 deletions
64
spec/unit/facter/apt_dist_package_security_updates_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
require 'spec_helper' | ||
|
||
describe 'apt_package_security_dist_updates fact' do | ||
subject { Facter.fact(:apt_package_security_dist_updates).value } | ||
|
||
after(:each) { Facter.clear } | ||
|
||
describe 'when apt has no updates' do | ||
before(:each) do | ||
Facter.fact(:apt_has_dist_updates).stubs(:value).returns false | ||
end | ||
it { is_expected.to be nil } | ||
end | ||
|
||
describe 'when apt has updates' do | ||
before(:each) do | ||
Facter.fact(:osfamily).stubs(:value).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
Facter::Util::Resolution.stubs(:exec) # Catch all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns 'test' | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true dist-upgrade 2>&1').returns apt_get_upgrade_output | ||
end | ||
|
||
describe 'on Debian' do | ||
let(:apt_get_upgrade_output) do | ||
"Inst extremetuxracer [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Conf extremetuxracer (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Inst planet.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Conf planet.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Inst vim [7.52.1-5] (7.52.1-5+deb9u2 Debian-Security:9/stable [amd64]) []\n" \ | ||
"Conf vim (7.52.1-5+deb9u2 Debian-Security:9/stable [amd64])\n" \ | ||
end | ||
|
||
it { | ||
if Facter.version < '2.0.0' | ||
is_expected.to eq('vim') | ||
else | ||
is_expected.to eq(['vim']) | ||
end | ||
} | ||
end | ||
|
||
describe 'on Ubuntu' do | ||
let(:apt_get_upgrade_output) do | ||
"Inst extremetuxracer [2016f-0ubuntu0.16.04] (2016j-0ubuntu0.16.04 Ubuntu:16.04/xenial-security, Ubuntu:16.04/xenial-updates [all])\n" \ | ||
"Conf extremetuxracer (2016j-0ubuntu0.16.04 Ubuntu:16.04/xenial-security, Ubuntu:16.04/xenial-updates [all])\n" \ | ||
"Inst vim [7.47.0-1ubuntu2] (7.47.0-1ubuntu2.2 Ubuntu:16.04/xenial-security [amd64]) []\n" \ | ||
"Conf vim (7.47.0-1ubuntu2.2 Ubuntu:16.04/xenial-security [amd64])\n" \ | ||
"Inst onioncircuits [2:3.3.10-4ubuntu2] (2:3.3.10-4ubuntu2.3 Ubuntu:16.04/xenial-updates [amd64])\n" \ | ||
"Conf onioncircuits (2:3.3.10-4ubuntu2.3 Ubuntu:16.04/xenial-updates [amd64])\n" | ||
end | ||
|
||
it { | ||
if Facter.version < '2.0.0' | ||
is_expected.to eq('extremetuxracer,vim') | ||
else | ||
is_expected.to eq(%w[extremetuxracer vim]) | ||
end | ||
} | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
require 'spec_helper' | ||
|
||
describe 'apt_package_dist_updates fact' do | ||
subject { Facter.fact(:apt_package_dist_updates).value } | ||
|
||
after(:each) { Facter.clear } | ||
|
||
describe 'when apt has no updates' do | ||
before(:each) do | ||
Facter.fact(:apt_has_dist_updates).stubs(:value).returns false | ||
end | ||
it { is_expected.to be nil } | ||
end | ||
|
||
describe 'when apt has updates' do | ||
before(:each) do | ||
Facter.fact(:osfamily).stubs(:value).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
Facter::Util::Resolution.stubs(:exec) # Catch all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns 'test' | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
apt_output = "Inst extremetuxracer [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Conf extremetuxracer (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Inst planet.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Conf planet.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true dist-upgrade 2>&1').returns apt_output | ||
end | ||
it { | ||
if Facter.version < '2.0.0' | ||
is_expected.to eq('extremetuxracer,planet.rb') | ||
else | ||
is_expected.to eq(['extremetuxracer', 'planet.rb']) | ||
end | ||
} | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
require 'spec_helper' | ||
|
||
describe 'apt_security_updates fact' do | ||
subject { Facter.fact(:apt_security_dist_updates).value } | ||
|
||
after(:each) { Facter.clear } | ||
|
||
describe 'when apt has no updates' do | ||
before(:each) do | ||
Facter.fact(:apt_has_dist_updates).stubs(:value).returns false | ||
end | ||
it { is_expected.to be nil } | ||
end | ||
|
||
describe 'when apt has security updates' do | ||
before(:each) do | ||
Facter.fact(:osfamily).stubs(:value).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
Facter::Util::Resolution.stubs(:exec) # Catch all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns 'test' | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true dist-upgrade 2>&1').returns apt_get_upgrade_output | ||
end | ||
|
||
describe 'on Debian' do | ||
let(:apt_get_upgrade_output) do | ||
"Inst extremetuxracer [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Conf extremetuxracer (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Inst planet.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Conf planet.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Inst vim [7.52.1-5] (7.52.1-5+deb9u2 Debian-Security:9/stable [amd64]) []\n" \ | ||
"Conf vim (7.52.1-5+deb9u2 Debian-Security:9/stable [amd64])\n" \ | ||
end | ||
|
||
it { is_expected.to eq(1) } | ||
end | ||
|
||
describe 'on Ubuntu' do | ||
let(:apt_get_upgrade_output) do | ||
"Inst extremetuxracer [2016f-0ubuntu0.16.04] (2016j-0ubuntu0.16.04 Ubuntu:16.04/xenial-security, Ubuntu:16.04/xenial-updates [all])\n" \ | ||
"Conf extremetuxracer (2016j-0ubuntu0.16.04 Ubuntu:16.04/xenial-security, Ubuntu:16.04/xenial-updates [all])\n" \ | ||
"Inst vim [7.47.0-1ubuntu2] (7.47.0-1ubuntu2.2 Ubuntu:16.04/xenial-security [amd64]) []\n" \ | ||
"Conf vim (7.47.0-1ubuntu2.2 Ubuntu:16.04/xenial-security [amd64])\n" \ | ||
"Inst onioncircuits [2:3.3.10-4ubuntu2] (2:3.3.10-4ubuntu2.3 Ubuntu:16.04/xenial-updates [amd64])\n" \ | ||
"Conf onioncircuits (2:3.3.10-4ubuntu2.3 Ubuntu:16.04/xenial-updates [amd64])\n" | ||
end | ||
|
||
it { is_expected.to eq(2) } | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
require 'spec_helper' | ||
|
||
describe 'apt_updates fact' do | ||
subject { Facter.fact(:apt_dist_updates).value } | ||
|
||
after(:each) { Facter.clear } | ||
|
||
describe 'when apt has no updates' do | ||
before(:each) do | ||
Facter.fact(:apt_has_dist_updates).stubs(:value).returns false | ||
end | ||
it { is_expected.to be nil } | ||
end | ||
|
||
describe 'when apt has updates' do | ||
before(:each) do | ||
Facter.fact(:osfamily).stubs(:value).returns 'Debian' | ||
File.stubs(:executable?) # Stub all other calls | ||
Facter::Util::Resolution.stubs(:exec) # Catch all other calls | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns 'test' | ||
File.expects(:executable?).with('/usr/bin/apt-get').returns true | ||
apt_output = "Inst extremetuxracer [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Conf extremetuxracer (2015g-0+deb8u1 Debian:stable-updates [all])\n" \ | ||
"Inst planet.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" \ | ||
"Conf planet.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n" | ||
Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true dist-upgrade 2>&1').returns apt_output | ||
end | ||
it { is_expected.to eq(2) } | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.