Merge pull request #3743 from inspec/ja/clean-unit-test-output

Clean up unit test output
This commit is contained in:
Clinton Wolfe 2019-01-24 23:37:45 -05:00 committed by GitHub
commit e3b2a07ef2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 69 additions and 33 deletions

View file

@ -198,6 +198,7 @@ class MockLoader
'/fakepath/fakefile' => emptyfile.call, '/fakepath/fakefile' => emptyfile.call,
'C:/fakepath/fakefile' => emptyfile.call, 'C:/fakepath/fakefile' => emptyfile.call,
'/etc/cron.d/crondotd' => mockfile.call('crondotd'), '/etc/cron.d/crondotd' => mockfile.call('crondotd'),
'/missing_file' => emptyfile.call,
} }
# create all mock commands # create all mock commands
@ -229,6 +230,7 @@ class MockLoader
'bash -c \'type "Rscript"\'' => empty.call, 'bash -c \'type "Rscript"\'' => empty.call,
'bash -c \'type "perl"\'' => empty.call, 'bash -c \'type "perl"\'' => empty.call,
'bash -c \'type "/sbin/auditctl"\'' => empty.call, 'bash -c \'type "/sbin/auditctl"\'' => empty.call,
'bash -c \'type "sql"\'' => cmd_exit_1.call,
'type "pwsh"' => empty.call, 'type "pwsh"' => empty.call,
'type "netstat"' => empty.call, 'type "netstat"' => empty.call,
'sh -c \'find /etc/apache2/ports.conf -type l -maxdepth 1\'' => empty.call, 'sh -c \'find /etc/apache2/ports.conf -type l -maxdepth 1\'' => empty.call,
@ -508,7 +510,7 @@ class MockLoader
'/sbin/service sshd status' => empty.call, '/sbin/service sshd status' => empty.call,
'service apache2 status' => cmd_exit_1.call, 'service apache2 status' => cmd_exit_1.call,
'type "lsof"' => empty.call, 'type "lsof"' => empty.call,
'test -f /etc/mysql/debian.cnf && cat /etc/mysql/debian.cnf' => empty.call,
# http resource - remote worker' # http resource - remote worker'
%{bash -c 'type "curl"'} => cmd.call('bash-c-type-curl'), %{bash -c 'type "curl"'} => cmd.call('bash-c-type-curl'),
"curl -i -X GET --connect-timeout 60 --max-time 120 'http://www.example.com'" => cmd.call('http-remote-no-options'), "curl -i -X GET --connect-timeout 60 --max-time 120 'http://www.example.com'" => cmd.call('http-remote-no-options'),

View file

@ -204,7 +204,7 @@ describe Fetchers::Url do
describe 'when only password is specified' do describe 'when only password is specified' do
let(:config) { { :password => 'dummy'} } let(:config) { { :password => 'dummy'} }
it 'returns a hash containing http_basic_authentication setting as nil' do it 'returns a hash containing http_basic_authentication setting as nil' do
subject.send(:http_opts)[:http_basic_authentication].must_equal nil subject.send(:http_opts)[:http_basic_authentication].must_be_nil
end end
end end

View file

@ -78,7 +78,7 @@ describe Inspec::ProfileContext do
end end
it 'must provide file resource' do it 'must provide file resource' do
load('print file("").type').must_output 'unknown' load('print file("/etc/passwd").type').must_output 'file'
end end
it 'must provide command resource' do it 'must provide command resource' do
@ -110,7 +110,7 @@ describe Inspec::ProfileContext do
end end
end end
it 'does not provide the expect keyword in the global DLS' do it 'does not provide the expect keyword in the global DSL' do
load('expect(true).to_eq true').must_raise NoMethodError load('expect(true).to_eq true').must_raise NoMethodError
end end

View file

@ -54,11 +54,4 @@ describe 'Inspec::Resources::AptRepo' do
_(resource.exists?).must_equal false _(resource.exists?).must_equal false
_(resource.enabled?).must_equal false _(resource.enabled?).must_equal false
end end
# check ppa resource
it 'check apt on ubuntu' do
resource = MockLoader.new(:ubuntu1504).load_resource('ppa', 'ubuntu-wine/ppa')
_(resource.exists?).must_equal true
_(resource.enabled?).must_equal true
end
end end

View file

@ -13,7 +13,7 @@ describe 'Inspec::Resources::ChocoPkg' do
pkg = { name: 'git', installed: false, version: nil, type: 'chocolatey' } pkg = { name: 'git', installed: false, version: nil, type: 'chocolatey' }
resource = MockLoader.new(:windows).load_resource('chocolatey_package', 'git') resource = MockLoader.new(:windows).load_resource('chocolatey_package', 'git')
_(resource.installed?).must_equal pkg[:installed] _(resource.installed?).must_equal pkg[:installed]
_(resource.version).must_equal pkg[:version] _(resource.version).must_be_nil
_(resource.info).must_equal pkg _(resource.info).must_equal pkg
end end

View file

@ -13,7 +13,7 @@ describe 'Inspec::Resources::NginxConf' do
let(:nginx_conf) { MockLoader.new(:ubuntu1404).load_resource('nginx_conf') } let(:nginx_conf) { MockLoader.new(:ubuntu1404).load_resource('nginx_conf') }
it 'doesnt fail with a missing file' do it 'doesnt fail with a missing file' do
nginx_conf = MockLoader.new(:ubuntu1404).load_resource('nginx_conf', '/....missing_file') nginx_conf = MockLoader.new(:ubuntu1404).load_resource('nginx_conf', '/missing_file')
_(nginx_conf.params).must_equal({}) _(nginx_conf.params).must_equal({})
end end

View file

@ -13,7 +13,10 @@ describe 'Inspec::Resources::Processes' do
it 'verify processes resource' do it 'verify processes resource' do
resource = MockLoader.new(:freebsd10).load_resource('processes', 'login -fp apop') resource = MockLoader.new(:freebsd10).load_resource('processes', 'login -fp apop')
_(resource.list.length).must_equal 2 # until we deprecate
proc { resource.list.length.must_equal 2 }
.must_output nil, "[DEPRECATION] `processes.list` is deprecated. Please use `processes.entries` instead. It will be removed in version 4.0.\n"
_(resource.entries.length).must_equal 2 _(resource.entries.length).must_equal 2
_(resource.entries[0].to_h).must_equal({ _(resource.entries[0].to_h).must_equal({
label: nil, label: nil,

View file

@ -11,16 +11,16 @@ describe 'Inspec::Resources::Shadow' do
end end
it 'retrieve users via field' do it 'retrieve users via field' do
_(shadow.user).must_equal %w{root www-data} _(shadow.users).must_equal %w{root www-data}
_(shadow.count).must_equal 2 _(shadow.count).must_equal 2
end end
it 'retrieve passwords via field' do it 'retrieve passwords via field' do
_(shadow.password).must_equal %w{x !!} _(shadow.passwords).must_equal %w{x !!}
end end
it 'retrieve last password change via field' do it 'retrieve last password change via field' do
_(shadow.last_change).must_equal %w{1 10} _(shadow.last_changes).must_equal %w{1 10}
end end
it 'retrieve min password days via field' do it 'retrieve min password days via field' do
@ -40,7 +40,7 @@ describe 'Inspec::Resources::Shadow' do
end end
it 'retrieve dates when account will expire via field' do it 'retrieve dates when account will expire via field' do
_(shadow.expiry_date).must_equal [nil, "60"] _(shadow.expiry_dates).must_equal [nil, "60"]
end end
it 'access all lines of the file' do it 'access all lines of the file' do
@ -82,8 +82,8 @@ describe 'Inspec::Resources::Shadow' do
describe 'multiple filters' do describe 'multiple filters' do
it 'filters with min_days and max_days' do it 'filters with min_days and max_days' do
_(shadow.filter(min_days: 20, max_days: 30).user).must_equal ['www-data'] _(shadow.filter(min_days: 20, max_days: 30).users).must_equal ['www-data']
_(shadow.filter(last_change: 1, min_days: 2).user).must_equal ['root'] _(shadow.filter(last_change: 1, min_days: 2).users).must_equal ['root']
end end
end end

View file

@ -34,14 +34,22 @@ describe 'Inspec::Resources::User' do
end end
# serverspec compatibility tests (do not test matcher) # serverspec compatibility tests (do not test matcher)
it 'verify serverspec compatibility' do it 'returns deprecation notices' do
resource = MockLoader.new(:ubuntu1404).load_resource('user', 'root') resource = MockLoader.new(:ubuntu1404).load_resource('user', 'root')
_(resource.has_uid?(0)).must_equal true proc { resource.has_uid?(0).must_equal true }
_(resource.has_home_directory?('/root')).must_equal true .must_output nil, "[DEPRECATION] has_uid? is deprecated. \n"
_(resource.has_login_shell?('/bin/bash')).must_equal true proc { resource.has_home_directory?('/root').must_equal true }
_(resource.minimum_days_between_password_change).must_equal 0 .must_output nil, "[DEPRECATION] has_home_directory? is deprecated. Please use: its('home')\n"
_(resource.maximum_days_between_password_change).must_equal 99999 proc { resource.has_login_shell?('/bin/bash').must_equal true }
# _(resource.has_authorized_key?('abc')).must_equal true .must_output nil, "[DEPRECATION] has_login_shell? is deprecated. Please use: its('shell')\n"
proc { resource.minimum_days_between_password_change.must_equal 0 }
.must_output nil, "[DEPRECATION] minimum_days_between_password_change is deprecated. Please use: its('mindays')\n"
proc { resource.maximum_days_between_password_change.must_equal 99999 }
.must_output nil, "[DEPRECATION] maximum_days_between_password_change is deprecated. Please use: its('maxdays')\n"
assert_output(nil, "[DEPRECATION] has_authorized_key? is deprecated. \n") do
proc { resource.has_authorized_key?('abc') }.must_raise NotImplementedError
end
end end
it 'read user on centos7' do it 'read user on centos7' do

View file

@ -4,15 +4,45 @@ require 'helper'
require 'inspec/resource' require 'inspec/resource'
describe 'Inspec::Resources::Virtualization' do describe 'Inspec::Resources::Virtualization' do
let(:resource) { MockLoader.new(:ubuntu).load_resource('virtualization') } def mock_proc(mocked_files)
proc do |filename|
OpenStruct.new(
:exist? => mocked_files.include?(filename) ? false : true
)
end
end
it 'fails the resource if OS is not Linux' do it 'fails the resource if OS is not Linux' do
resource = MockLoader.new(:windows).load_resource('virtualization') mocked_files = []
resource.resource_failed?.must_equal true mock_loader = MockLoader.new(:windows)
mock_loader.backend.stub :file, mock_proc(mocked_files) do
mock_resource = mock_loader.load_resource('virtualization')
mock_resource.resource_failed?.must_equal true
end
end end
it 'returns nil for all properties if no virutalization platform is found' do it 'returns nil for all properties if no virutalization platform is found' do
resource.system.must_be_nil mocked_files = [
resource.role.must_be_nil '/proc/xen/capabilities',
'/proc/modules',
'/proc/cpuinfo',
'/sys/devices/virtual/misc/kvm',
'/proc/bc/0',
'/proc/vz',
'/proc/bus/pci/devices',
'/proc/self/status',
'/proc/self/cgroup',
'/.dockerenv',
'/.dockerinit',
'/dev/lxd/sock',
'/var/lib/lxd/devlxd',
]
mock_loader = MockLoader.new(:ubuntu)
mock_loader.backend.stub :file, mock_proc(mocked_files) do
mock_resource = mock_loader.load_resource('virtualization')
mock_resource.system.must_be_nil
mock_resource.role.must_be_nil
end
end end
end end

View file

@ -38,7 +38,7 @@ describe Inspec::Runner do
describe 'testing runner.run exit codes' do describe 'testing runner.run exit codes' do
it 'returns proper exit code when no profile is added' do it 'returns proper exit code when no profile is added' do
runner.run.must_equal 0 proc { runner.run.must_equal 0 }
end end
end end