Skip to content
Snippets Groups Projects
Commit 155e385d authored by Nathan Ward's avatar Nathan Ward
Browse files

Fix ruby validation errors

Only capture the exec for `radiusd -v`, as facter etc. runs `uname -s` and whatever else. Mock Facter.value for things in os_facts, so we return the value from os_facts rather than the actual value from the system running the tests.
parent ca53e003
Branches
Tags
No related merge requests found
# Grab the FreeRADIUS version from the output of radiusd -v # Grab the FreeRADIUS version from the output of radiusd -v
module Facter::Util::FreeradiusVersion module Facter::Util::FreeradiusVersion
class << self class << self
def version_string def version_string
# Set path to binary for our platform # Set path to binary for our platform
dist = Facter.value(:osfamily) dist = Facter.value(:osfamily)
case dist binary = case dist
when /RedHat/ when %r{RedHat}
binary = 'radiusd' 'radiusd'
when /Debian/ when %r{Debian}
binary = 'freeradius' 'freeradius'
else else
binary = 'radiusd' 'radiusd'
end end
Facter::Core::Execution.exec("#{binary} -v") Facter::Core::Execution.exec("#{binary} -v")
...@@ -23,8 +22,8 @@ end ...@@ -23,8 +22,8 @@ end
Facter.add(:freeradius_version) do Facter.add(:freeradius_version) do
setcode do setcode do
version_string = Facter::Util::FreeradiusVersion.version_string version_string = Facter::Util::FreeradiusVersion.version_string
if !version_string.nil? unless version_string.nil?
version = version_string.split(/\n/)[0].match(/FreeRADIUS Version (\d+\.\d+\.\d+)/)[1].to_s version = version_string.split(%r{\n})[0].match(%r{FreeRADIUS Version (\d+\.\d+\.\d+)})[1].to_s
end end
version version
end end
...@@ -34,8 +33,8 @@ end ...@@ -34,8 +33,8 @@ end
Facter.add(:freeradius_maj_version) do Facter.add(:freeradius_maj_version) do
setcode do setcode do
version_string = Facter::Util::FreeradiusVersion.version_string version_string = Facter::Util::FreeradiusVersion.version_string
if !version_string.nil? unless version_string.nil?
majver = version_string.split(/\n/)[0].match(/FreeRADIUS Version (\d+)\.\d+\.\d+/)[1].to_s majver = version_string.split(%r{\n})[0].match(%r{FreeRADIUS Version (\d+)\.\d+\.\d+})[1].to_s
end end
majver majver
end end
......
...@@ -59,7 +59,7 @@ describe 'freeradius' do ...@@ -59,7 +59,7 @@ describe 'freeradius' do
'/etc/raddb/clients.d', '/etc/raddb/clients.d',
'/etc/raddb/listen.d', '/etc/raddb/listen.d',
'/etc/raddb/sites-enabled', '/etc/raddb/sites-enabled',
'/etc/raddb/instantiate' '/etc/raddb/instantiate',
].each do |file| ].each do |file|
is_expected.to contain_file(file) is_expected.to contain_file(file)
.with( .with(
...@@ -93,7 +93,7 @@ describe 'freeradius' do ...@@ -93,7 +93,7 @@ describe 'freeradius' do
.with( .with(
'content' => 'policy {', 'content' => 'policy {',
'order' => '10', 'order' => '10',
'target' => '/etc/raddb/policy.conf' 'target' => '/etc/raddb/policy.conf',
) )
end end
...@@ -102,7 +102,7 @@ describe 'freeradius' do ...@@ -102,7 +102,7 @@ describe 'freeradius' do
.with( .with(
'content' => '}', 'content' => '}',
'order' => '99', 'order' => '99',
'target' => '/etc/raddb/policy.conf' 'target' => '/etc/raddb/policy.conf',
) )
end end
...@@ -123,7 +123,7 @@ describe 'freeradius' do ...@@ -123,7 +123,7 @@ describe 'freeradius' do
.with( .with(
'content' => "# Proxy config\n", 'content' => "# Proxy config\n",
'order' => '05', 'order' => '05',
'target' => '/etc/raddb/proxy.conf' 'target' => '/etc/raddb/proxy.conf',
) )
end end
...@@ -143,7 +143,7 @@ describe 'freeradius' do ...@@ -143,7 +143,7 @@ describe 'freeradius' do
is_expected.to contain_concat__fragment('attr-default') is_expected.to contain_concat__fragment('attr-default')
.with( .with(
'order' => '10', 'order' => '10',
'target' => '/etc/raddb/mods-available/attr_filter' 'target' => '/etc/raddb/mods-available/attr_filter',
) )
end end
...@@ -163,7 +163,7 @@ describe 'freeradius' do ...@@ -163,7 +163,7 @@ describe 'freeradius' do
.with( .with(
'order' => '10', 'order' => '10',
'source' => 'puppet:///modules/freeradius/dictionary.header', 'source' => 'puppet:///modules/freeradius/dictionary.header',
'target' => '/etc/raddb/dictionary' 'target' => '/etc/raddb/dictionary',
) )
end end
...@@ -172,7 +172,7 @@ describe 'freeradius' do ...@@ -172,7 +172,7 @@ describe 'freeradius' do
.with( .with(
'order' => '90', 'order' => '90',
'source' => 'puppet:///modules/freeradius/dictionary.footer', 'source' => 'puppet:///modules/freeradius/dictionary.footer',
'target' => '/etc/raddb/dictionary' 'target' => '/etc/raddb/dictionary',
) )
end end
...@@ -180,7 +180,7 @@ describe 'freeradius' do ...@@ -180,7 +180,7 @@ describe 'freeradius' do
is_expected.to contain_package('freeradius') is_expected.to contain_package('freeradius')
.with( .with(
'ensure' => 'installed', 'ensure' => 'installed',
'name' => 'freeradius' 'name' => 'freeradius',
) )
end end
...@@ -233,23 +233,23 @@ describe 'freeradius' do ...@@ -233,23 +233,23 @@ describe 'freeradius' do
it do it do
is_expected.to contain_freeradius__module('always') is_expected.to contain_freeradius__module('always')
.with( ) .with_preserve(true)
end end
it do it do
is_expected.to contain_freeradius__module('detail') is_expected.to contain_freeradius__module('detail')
.with( ) .with_preserve(true)
end end
it do it do
is_expected.to contain_freeradius__module('detail.log') is_expected.to contain_freeradius__module('detail.log')
.with( ) .with_preserve(true)
end end
it do it do
[ [
'/var/log/radius', '/var/log/radius',
'/var/log/radius/radacct' '/var/log/radius/radacct',
].each do |file| ].each do |file|
is_expected.to contain_file(file) is_expected.to contain_file(file)
.with( .with(
...@@ -266,7 +266,7 @@ describe 'freeradius' do ...@@ -266,7 +266,7 @@ describe 'freeradius' do
.with( .with(
'group' => 'radiusd', 'group' => 'radiusd',
'owner' => 'radiusd', 'owner' => 'radiusd',
'seltype' => 'radiusd_log_t' 'seltype' => 'radiusd_log_t',
) )
.that_requires('Package[freeradius]') .that_requires('Package[freeradius]')
.that_requires('User[radiusd]') .that_requires('User[radiusd]')
...@@ -283,7 +283,7 @@ describe 'freeradius' do ...@@ -283,7 +283,7 @@ describe 'freeradius' do
'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`', 'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`',
'rotate' => '7', 'rotate' => '7',
'rotate_every' => 'day', 'rotate_every' => 'day',
'sharedscripts' => 'true' 'sharedscripts' => 'true',
) )
end end
...@@ -297,7 +297,7 @@ describe 'freeradius' do ...@@ -297,7 +297,7 @@ describe 'freeradius' do
'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`', 'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`',
'rotate' => '1', 'rotate' => '1',
'rotate_every' => 'week', 'rotate_every' => 'week',
'sharedscripts' => 'true' 'sharedscripts' => 'true',
) )
end end
...@@ -311,18 +311,16 @@ describe 'freeradius' do ...@@ -311,18 +311,16 @@ describe 'freeradius' do
'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`', 'postrotate' => 'kill -HUP `cat /var/run/radiusd/radiusd.pid`',
'rotate' => '26', 'rotate' => '26',
'rotate_every' => 'week', 'rotate_every' => 'week',
'sharedscripts' => 'true' 'sharedscripts' => 'true',
) )
end end
it do it do
[ [
'/etc/raddb/certs/dh', '/etc/raddb/certs/dh',
'/etc/raddb/certs/random' '/etc/raddb/certs/random',
].each do |file| ].each do |file|
is_expected.to contain_file(file) is_expected.to contain_file(file)
.with(
)
.that_requires('Exec[dh]') .that_requires('Exec[dh]')
.that_requires('Exec[random]') .that_requires('Exec[random]')
end end
...@@ -355,7 +353,7 @@ describe 'freeradius' do ...@@ -355,7 +353,7 @@ describe 'freeradius' do
'logoutput' => 'on_failure', 'logoutput' => 'on_failure',
'path' => ['/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/'], 'path' => ['/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/'],
'refreshonly' => 'true', 'refreshonly' => 'true',
'returns' => '0' 'returns' => '0',
) )
end end
...@@ -387,7 +385,7 @@ describe 'freeradius' do ...@@ -387,7 +385,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-mysql') is_expected.to contain_package('freeradius-mysql')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -402,7 +400,7 @@ describe 'freeradius' do ...@@ -402,7 +400,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-postgresql') is_expected.to contain_package('freeradius-postgresql')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -417,7 +415,7 @@ describe 'freeradius' do ...@@ -417,7 +415,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-perl') is_expected.to contain_package('freeradius-perl')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -432,7 +430,7 @@ describe 'freeradius' do ...@@ -432,7 +430,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-utils') is_expected.to contain_package('freeradius-utils')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -447,7 +445,7 @@ describe 'freeradius' do ...@@ -447,7 +445,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-ldap') is_expected.to contain_package('freeradius-ldap')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -462,7 +460,7 @@ describe 'freeradius' do ...@@ -462,7 +460,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-dhcp') is_expected.to contain_package('freeradius-dhcp')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -477,7 +475,7 @@ describe 'freeradius' do ...@@ -477,7 +475,7 @@ describe 'freeradius' do
it do it do
is_expected.to contain_package('freeradius-krb5') is_expected.to contain_package('freeradius-krb5')
.with( .with(
'ensure' => 'installed' 'ensure' => 'installed',
) )
end end
end end
...@@ -493,7 +491,7 @@ describe 'freeradius' do ...@@ -493,7 +491,7 @@ describe 'freeradius' do
is_expected.to contain_package('wpa_supplicant') is_expected.to contain_package('wpa_supplicant')
.with( .with(
'ensure' => 'installed', 'ensure' => 'installed',
'name' => 'wpa_supplicant' 'name' => 'wpa_supplicant',
) )
end end
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::attr' do ...@@ -7,7 +7,7 @@ describe 'freeradius::attr' do
let(:params) do let(:params) do
{ {
:source => 'puppet:///modules/test/path/to/file', source: 'puppet:///modules/test/path/to/file',
} }
end end
......
...@@ -7,9 +7,9 @@ describe 'freeradius::client' do ...@@ -7,9 +7,9 @@ describe 'freeradius::client' do
let(:params) do let(:params) do
{ {
:shortname => 'test_short', shortname: 'test_short',
:secret => 'secret_value', secret: 'secret_value',
:ip => '1.2.3.4', ip: '1.2.3.4',
} }
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::config' do ...@@ -7,7 +7,7 @@ describe 'freeradius::config' do
let(:params) do let(:params) do
{ {
:content => 'test content', content: 'test content',
} }
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::dictionary' do ...@@ -7,7 +7,7 @@ describe 'freeradius::dictionary' do
let(:params) do let(:params) do
{ {
:source => 'puppet:///modules/test/path/to/dict', source: 'puppet:///modules/test/path/to/dict',
} }
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::home_server_pool' do ...@@ -7,7 +7,7 @@ describe 'freeradius::home_server_pool' do
let(:params) do let(:params) do
{ {
:home_server => [ home_server: [
'test_home_server_1', 'test_home_server_1',
'test_home_server_2', 'test_home_server_2',
], ],
......
...@@ -7,8 +7,8 @@ describe 'freeradius::home_server' do ...@@ -7,8 +7,8 @@ describe 'freeradius::home_server' do
let(:params) do let(:params) do
{ {
:secret => 'test_secret', secret: 'test_secret',
:ipaddr => '1.2.3.4', ipaddr: '1.2.3.4',
} }
end end
......
...@@ -7,8 +7,8 @@ describe 'freeradius::krb5' do ...@@ -7,8 +7,8 @@ describe 'freeradius::krb5' do
let(:params) do let(:params) do
{ {
:keytab => 'test_keytab', keytab: 'test_keytab',
:principal => 'test_principal', principal: 'test_principal',
} }
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::module' do ...@@ -7,7 +7,7 @@ describe 'freeradius::module' do
let(:params) do let(:params) do
{ {
:source => 'puppet:///modules/test/path/to/module', source: 'puppet:///modules/test/path/to/module',
} }
end end
......
...@@ -7,7 +7,7 @@ describe 'freeradius::policy' do ...@@ -7,7 +7,7 @@ describe 'freeradius::policy' do
let(:params) do let(:params) do
{ {
:source => 'puppet:///modules/test/path/to/policy', source: 'puppet:///modules/test/path/to/policy',
} }
end end
......
...@@ -44,9 +44,9 @@ describe 'freeradius::sql' do ...@@ -44,9 +44,9 @@ describe 'freeradius::sql' do
context 'with sqltrace' do context 'with sqltrace' do
let(:params) do let(:params) do
super().merge({ super().merge(
sqltrace: 'yes', sqltrace: 'yes',
}) )
end end
it do it do
...@@ -68,12 +68,11 @@ describe 'freeradius::sql' do ...@@ -68,12 +68,11 @@ describe 'freeradius::sql' do
context 'with custom query file' do context 'with custom query file' do
let(:params) do let(:params) do
super().merge({ super().merge(
custom_query_file: 'puppet:///modules/path/to/custom/query/file', custom_query_file: 'puppet:///modules/path/to/custom/query/file',
}) )
end end
it do it do
is_expected.to contain_freeradius__config('test-queries.conf') is_expected.to contain_freeradius__config('test-queries.conf')
.with_source('puppet:///modules/path/to/custom/query/file') .with_source('puppet:///modules/path/to/custom/query/file')
......
...@@ -44,7 +44,7 @@ shared_context 'freeradius_default' do ...@@ -44,7 +44,7 @@ shared_context 'freeradius_default' do
let(:pre_condition) do let(:pre_condition) do
[ [
redhat_params_class, redhat_params_class,
'class { freeradius: }' 'class { freeradius: }',
] ]
end end
end end
......
require 'spec_helper' require 'spec_helper'
require 'facter/freeradius_version' require 'facter/freeradius_version'
describe :freeradius_version, :type => :fact do describe 'freeradius_version', type: :fact do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
before :each do before :each do
Facter.clear Facter.clear
expect(Facter::Core::Execution).to receive(:exec).with('radiusd -v').and_return('FreeRADIUS Version 3.0.21') orig_facter_value_method = Facter.method(:value)
allow(Facter).to receive(:value) do |fact|
if facts.key?(fact)
facts[fact]
else
orig_facter_value_method.call(fact)
end
end
orig_exec_method = Facter::Core::Execution.method(:exec)
allow(Facter::Core::Execution).to receive(:exec) do |cmd|
case cmd
when %r{^(radiusd|freeradius) -v$}
'FreeRADIUS Version 3.0.21'
else
orig_exec_method.call(cmd)
end
end
end end
it 'should set freeradius_version' do it 'sets freeradius_version' do
expect(Facter.fact(:freeradius_version).value).to eq('3.0.21') expect(Facter.fact(:freeradius_version).value).to eq('3.0.21')
end end
it 'should set freeradius_maj_version' do it 'sets freeradius_maj_version' do
expect(Facter.fact(:freeradius_maj_version).value).to eq('3') expect(Facter.fact(:freeradius_maj_version).value).to eq('3')
end end
end end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment