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