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,
'C:/fakepath/fakefile' => emptyfile.call,
'/etc/cron.d/crondotd' => mockfile.call('crondotd'),
'/missing_file' => emptyfile.call,
}
# create all mock commands
@ -229,6 +230,7 @@ class MockLoader
'bash -c \'type "Rscript"\'' => empty.call,
'bash -c \'type "perl"\'' => empty.call,
'bash -c \'type "/sbin/auditctl"\'' => empty.call,
'bash -c \'type "sql"\'' => cmd_exit_1.call,
'type "pwsh"' => empty.call,
'type "netstat"' => 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,
'service apache2 status' => cmd_exit_1.call,
'type "lsof"' => empty.call,
'test -f /etc/mysql/debian.cnf && cat /etc/mysql/debian.cnf' => empty.call,
# http resource - remote worker'
%{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'),

View file

@ -204,7 +204,7 @@ describe Fetchers::Url do
describe 'when only password is specified' do
let(:config) { { :password => 'dummy'} }
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

View file

@ -78,7 +78,7 @@ describe Inspec::ProfileContext do
end
it 'must provide file resource' do
load('print file("").type').must_output 'unknown'
load('print file("/etc/passwd").type').must_output 'file'
end
it 'must provide command resource' do
@ -110,7 +110,7 @@ describe Inspec::ProfileContext do
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
end

View file

@ -54,11 +54,4 @@ describe 'Inspec::Resources::AptRepo' do
_(resource.exists?).must_equal false
_(resource.enabled?).must_equal false
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

View file

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

View file

@ -13,7 +13,7 @@ describe 'Inspec::Resources::NginxConf' do
let(:nginx_conf) { MockLoader.new(:ubuntu1404).load_resource('nginx_conf') }
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({})
end

View file

@ -13,7 +13,10 @@ describe 'Inspec::Resources::Processes' do
it 'verify processes resource' do
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[0].to_h).must_equal({
label: nil,

View file

@ -11,16 +11,16 @@ describe 'Inspec::Resources::Shadow' do
end
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
end
it 'retrieve passwords via field' do
_(shadow.password).must_equal %w{x !!}
_(shadow.passwords).must_equal %w{x !!}
end
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
it 'retrieve min password days via field' do
@ -40,7 +40,7 @@ describe 'Inspec::Resources::Shadow' do
end
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
it 'access all lines of the file' do
@ -82,8 +82,8 @@ describe 'Inspec::Resources::Shadow' do
describe 'multiple filters' 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(last_change: 1, min_days: 2).user).must_equal ['root']
_(shadow.filter(min_days: 20, max_days: 30).users).must_equal ['www-data']
_(shadow.filter(last_change: 1, min_days: 2).users).must_equal ['root']
end
end

View file

@ -34,14 +34,22 @@ describe 'Inspec::Resources::User' do
end
# 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.has_uid?(0)).must_equal true
_(resource.has_home_directory?('/root')).must_equal true
_(resource.has_login_shell?('/bin/bash')).must_equal true
_(resource.minimum_days_between_password_change).must_equal 0
_(resource.maximum_days_between_password_change).must_equal 99999
# _(resource.has_authorized_key?('abc')).must_equal true
proc { resource.has_uid?(0).must_equal true }
.must_output nil, "[DEPRECATION] has_uid? is deprecated. \n"
proc { resource.has_home_directory?('/root').must_equal true }
.must_output nil, "[DEPRECATION] has_home_directory? is deprecated. Please use: its('home')\n"
proc { resource.has_login_shell?('/bin/bash').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
it 'read user on centos7' do

View file

@ -4,15 +4,45 @@ require 'helper'
require 'inspec/resource'
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
resource = MockLoader.new(:windows).load_resource('virtualization')
resource.resource_failed?.must_equal true
mocked_files = []
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
it 'returns nil for all properties if no virutalization platform is found' do
resource.system.must_be_nil
resource.role.must_be_nil
mocked_files = [
'/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

View file

@ -38,7 +38,7 @@ describe Inspec::Runner do
describe 'testing runner.run exit codes' 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