inspec/test/unit/resources/package_test.rb
Jerry Aldrich 84817366a1 Remove deprecations for InSpec 2.0 (#2506)
* Add `release-2.0` target branch to AppVeyor/Travis (#2510)

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* simpleconfig: Remove deprecated config keys

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* cli (exec): Remove `--cache` command line argument

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* platform: Remove lowercase os name protection

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `contain_legacy_plus` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `contain_match` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `with_version` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `belong_to_group` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `belong_to_primary_group` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* matcher: Remove `contain` matcher

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* passwd: Remove deprecated properties

This removes:
  - `passwd.count`
  - `passwd.username`
  - `passwd.usernames`
  - `passwd.uid`

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* auditd_rules: Remove in favor of `auditd` resource

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* cli: Remove `login_automate` command

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>

* Remove `resource_skipped` message method

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-02-08 11:05:21 +01:00

146 lines
5.2 KiB
Ruby

# encoding: utf-8
# author: Christoph Hartmann
# author: Dominik Richter
require 'helper'
require 'inspec/resource'
describe 'Inspec::Resources::Package' do
# arch linux
it 'verify arch linux package parsing' do
resource = MockLoader.new(:arch).load_resource('package', 'curl')
pkg = { name: 'curl', installed: true, version: '7.37.0-1', type: 'pacman' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.37.0-1'
_(resource.info).must_equal pkg
end
# ubuntu
it 'verify ubuntu package parsing' do
resource = MockLoader.new(:ubuntu1404).load_resource('package', 'curl')
pkg = { name: 'curl', installed: true, held: false, version: '7.35.0-1ubuntu2', type: 'deb' }
_(resource.installed?).must_equal true
_(resource.held?).must_equal false
_(resource.version).must_equal '7.35.0-1ubuntu2'
_(resource.info).must_equal pkg
end
it 'verify ubuntu package which is held' do
resource = MockLoader.new(:ubuntu1404).load_resource('package', 'held-package')
pkg = { name: 'held-package', installed: true, held: true, version: '1.2.3-1', type: 'deb' }
_(resource.installed?).must_equal true
_(resource.held?).must_equal true
_(resource.version).must_equal '1.2.3-1'
_(resource.info).must_equal pkg
end
# mint
it 'verify mint package parsing' do
resource = MockLoader.new(:mint17).load_resource('package', 'curl')
pkg = { name: 'curl', installed: true, held: false, version: '7.35.0-1ubuntu2', type: 'deb' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.35.0-1ubuntu2'
_(resource.info).must_equal pkg
end
# centos
describe 'Rpm' do # rubocop:disable BlockLength
let(:pkg) do
{
name: 'curl',
installed: true,
version: '7.29.0-19.el7',
type: 'rpm',
}
end
it 'can parse RPM package info' do
resource = MockLoader.new(:centos7).load_resource('package', 'curl')
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.29.0-19.el7'
_(resource.info).must_equal pkg
end
it 'can build an `rpm` command containing `--dbpath`' do
resource = MockLoader.new(:centos7).load_resource(
'package',
'curl',
rpm_dbpath: '/var/lib/fake_rpmdb',
)
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.29.0-19.el7'
_(resource.info).must_equal pkg
end
it 'can set `resource_skipped` when `--rpmdb` path does not exist' do
resource = MockLoader.new(:centos7).load_resource(
'package',
'curl',
rpm_dbpath: '/var/lib/rpmdb_does_not_exist',
)
_(resource.resource_skipped?).must_equal true
end
end
# hpux
it 'verify hpux package parsing' do
resource = MockLoader.new(:hpux).load_resource('package', 'vim')
pkg = { name: 'vim', installed: true, version: '7.4', type: 'pkg' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.4'
_(resource.info).must_equal pkg
end
# wrlinux
it 'verify wrlinux package parsing' do
resource = MockLoader.new(:wrlinux).load_resource('package', 'curl')
pkg = { name: 'curl', installed: true, version: '7.29.0-19.el7', type: 'rpm' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.29.0-19.el7'
_(resource.info).must_equal pkg
end
# windows
it 'verify windows package parsing' do
resource = MockLoader.new(:windows).load_resource('package', 'Chef Client v12.12.15')
pkg = { name: 'Chef Client v12.12.15', installed: true, version: '12.12.15.1', type: 'windows' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '12.12.15.1'
_(resource.info).must_equal pkg
end
# solaris 10
it 'verify solaris 10 package parsing' do
resource = MockLoader.new(:solaris10).load_resource('package', 'SUNWzfsr')
pkg = { name: 'SUNWzfsr', installed: true, version: '11.10.0-2006.05.18.01.46', type: 'pkg' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '11.10.0-2006.05.18.01.46'
_(resource.info).must_equal pkg
end
# solaris 11
it 'verify solaris 11 package parsing' do
resource = MockLoader.new(:solaris11).load_resource('package', 'system/file-system/zfs')
pkg = { name: 'system/file-system/zfs', installed: true, version: '0.5.11-0.175.3.1.0.5.0', type: 'pkg' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '0.5.11-0.175.3.1.0.5.0'
_(resource.info).must_equal pkg
end
# darwin (brew)
it 'verify brew package parsing' do
resource = MockLoader.new(:osx104).load_resource('package', 'curl')
pkg = { name: 'curl', installed: true, version: '7.52.1', type: 'brew' }
_(resource.installed?).must_equal true
_(resource.version).must_equal '7.52.1'
_(resource.info).must_equal pkg
end
# undefined
it 'verify package handling on unsupported os' do
resource = MockLoader.new(:undefined).load_resource('package', 'curl')
_(resource.info).must_equal({})
_(resource.resource_skipped?).must_equal true
_(resource.resource_exception_message).must_equal 'The `package` resource is not supported on your OS yet.'
end
end