root / spec / unit / facter / nftables_spec.rb @ 3e2b5119
Historique | Voir | Annoter | Télécharger (1,27 ko)
1 | c82b960a | Steve Traylen | # frozen_string_literal: true
|
---|---|---|---|
2 | |||
3 | 03d9e7da | Steve Traylen | require 'spec_helper'
|
4 | |||
5 | describe 'nftables' do |
||
6 | 7e5b657a | Steve Traylen | before do
|
7 | 03d9e7da | Steve Traylen | Facter.clear
|
8 | 232c1364 | Steve Traylen | allow(Process).to receive(:uid).and_return(0) |
9 | allow(Facter::Util::Resolution).to receive(:which).with('nft').and_return('/usr/sbin/nft') |
||
10 | allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables').and_return(nft_tables_result) |
||
11 | allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version').and_return(nft_version_result) |
||
12 | 03d9e7da | Steve Traylen | end
|
13 | |||
14 | 032387dc | Steve Traylen | context 'nft present' do |
15 | let(:nft_tables_result) { "table inet firewalld\ntable ip firewalld\n" } |
||
16 | let(:nft_version_result) { "nftables v0.9.15 (Topsy)\n" } |
||
17 | 03d9e7da | Steve Traylen | |
18 | 032387dc | Steve Traylen | it 'returns valid fact' do |
19 | c82b960a | Steve Traylen | expect(Facter.fact('nftables').value).to eq('tables' => %w[inet-firewalld ip-firewalld], 'version' => '0.9.15') |
20 | 03d9e7da | Steve Traylen | end
|
21 | end
|
||
22 | |||
23 | context 'nft fails' do |
||
24 | 032387dc | Steve Traylen | let(:nft_tables_result) { :failed } |
25 | let(:nft_version_result) { :failed } |
||
26 | 03d9e7da | Steve Traylen | |
27 | it 'does not return a fact' do |
||
28 | 232c1364 | Steve Traylen | allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version', onfail: :failed).and_return(:failed) |
29 | allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables', onfail: :failed).and_return(:failed) |
||
30 | 03d9e7da | Steve Traylen | |
31 | expect(Facter.fact('nftables').value).to be_nil |
||
32 | end
|
||
33 | end
|
||
34 | end |