Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / spec / unit / facter / nftables_spec.rb @ c94658e1

Historique | Voir | Annoter | Télécharger (1,16 ko)

1 03d9e7da Steve Traylen
require 'spec_helper'
2
3
describe 'nftables' do
4 7e5b657a Steve Traylen
  before do
5 03d9e7da Steve Traylen
    Facter.clear
6
    Process.stubs(:uid).returns(0)
7
    Facter::Util::Resolution.stubs(:which).with('nft').returns('/usr/sbin/nft')
8 032387dc Steve Traylen
    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 03d9e7da Steve Traylen
  end
11
12 032387dc Steve Traylen
  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 03d9e7da Steve Traylen
16 032387dc Steve Traylen
    it 'returns valid fact' do
17
      expect(Facter.fact('nftables').value).to eq('tables' => ['inet-firewalld', 'ip-firewalld'], 'version' => '0.9.15')
18 03d9e7da Steve Traylen
    end
19
  end
20
21
  context 'nft fails' do
22 032387dc Steve Traylen
    let(:nft_tables_result) { :failed }
23
    let(:nft_version_result) { :failed }
24 03d9e7da Steve Traylen
25
    it 'does not return a fact' do
26 032387dc Steve Traylen
      Facter::Core::Execution.stubs(:execute).with('/usr/sbin/nft --version', on_fail: :failed).returns(:failed)
27 03d9e7da Steve Traylen
      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