Commit graph

2185 commits

Author SHA1 Message Date
Ryan Davis
3b69967cc8 Fixed a bug in checking supports (strings vs symbols)
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-09-04 15:44:26 -07:00
Ryan Davis
b6bfeffd9e Make inspec much faster for most commands.
Removes pre-loading and registration of resources by adding
method_missing to a couple key areas.

This still drops the ball in some areas, but it is a start.
2019-09-04 15:44:26 -07:00
Lance Albertson
1e94e3503e Fix for postfix_conf when using a non-standard config location
Pass the first argument of the opts array instead of the whole array which
confuses the SimpleConfig parser. Also added a test which verifies this fixes
the issue.

In addition, change the base_name to something that matches other resource base
names.

Signed-off-by: Lance Albertson <lance@osuosl.org>
2019-09-03 15:28:44 -07:00
Ryan Davis
49330e8a8e Extended skip_windows to the end of September.
This is getting depressing...

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-09-03 12:08:41 -07:00
kekaichinose
d33870b635
Merge pull request #4214 from inspec/zenspider/fix_nil_file
Fixed file resource raising UndefinedMethod on source_path
2019-08-30 13:19:54 -07:00
mhackethal
204c41bfd1 Update users.rb to include new attributes 2019-08-30 22:07:36 +02:00
Clinton Wolfe
a6bd7ec4b5
Merge pull request #4401 from inspec/cw/input-from-cli
inputs: Accept bare input from the command line
2019-08-28 15:41:21 -04:00
Clinton Wolfe
51de566d93 Assert adjustments
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:25:49 -04:00
Clinton Wolfe
82acec957e Add API for fetching plugin vconfig values.
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:25:49 -04:00
Clinton Wolfe
38f3469ee3 Validation for the plugins area of the config file
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:25:49 -04:00
Clinton Wolfe
c6d355e4f7 Accept version 1.2 for config file format
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:25:49 -04:00
Clinton Wolfe
e346b16114 Tighten help listing assertion and adjust chomp
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:03:42 -04:00
Clinton Wolfe
296158c447 Implementation and functional tests for the --input CLI option
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 13:03:42 -04:00
Clinton Wolfe
512189a06b Add CLI option and check in help
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-28 12:53:27 -04:00
Clinton Wolfe
777f1a1bff Adjust checking for version when installing latest in unit test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-27 21:29:42 -04:00
Clinton Wolfe
18640dd70c We do now include the version in the float fixture, for one thing
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-27 21:29:42 -04:00
Clinton Wolfe
16fecbefb5 Return version number when listing plugins; correct UX coloration
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-27 21:29:42 -04:00
Clinton Wolfe
f90a4c633d
Merge pull request #4419 from inspec/cw/check-enforce-version
inspec check: warn if inspec_version is not supported by current inspec
2019-08-27 20:03:19 -04:00
Clinton Wolfe
c6f33b3526 Add functional test for inspec check with runtime constraint
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-26 23:19:18 -04:00
Clinton Wolfe
714dc26006 Add unit test and include runtime version check in metadata.valid
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-26 23:05:49 -04:00
Clinton Wolfe
424318defa Stringify expected test outcomes for inputs
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-26 14:56:39 -04:00
Clinton Wolfe
f59497d982 Don't open a new train connect, and make an issue for improving helper support
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-26 13:12:30 -04:00
Clinton Wolfe
fffb776982 Add newline
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-22 21:53:02 -04:00
Clinton Wolfe
d462ac3de5 Convert runner api script layout ot heredoc
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-22 21:51:50 -04:00
Ryan Davis
1dd1efa03f test change for bad resource/backend combo.
I think this is probably in contention with my other PR on resource
initialization. We definitely need to change that, so this might fall
to the side. Or maybe just the test needs to be redone. We'll discuss
and see.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-20 13:25:21 -07:00
Ryan Davis
7273a7380f Fixed file resource raising UndefinedMethod on source_path
This is a first pass at fixing the failure found by @scottvidmar where
file resource was raising undefined_method on nil. The problem was
that the initialize method for file was not being called at all
because Resource#initialize was returning early without reporting
anything.

This fix causes a failure in test/functional/inspec_exec_test.rb where
it is testing a similar scenario but for some reason the unsupported
resources get reported. We need to figure that part out, but in the
meantime this will at least report an error at the root cause rather
than down the road.

Fixes #4208

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-20 13:25:21 -07:00
Clinton Wolfe
1f49ae4046 Skip runner API tests on windows
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-19 18:15:50 -04:00
Clinton Wolfe
cc4aa16212 Add test framework to run Runner API input tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-08-19 13:51:51 -04:00
Clinton Wolfe
8dc350bc6c
Add a Postfix-specific configuration testing resource (#4378)
Add a Postfix-specific configuration testing resource
2019-08-19 12:38:17 -04:00
Ryan Davis
4b3f11697d Removing ParallelTest so as to not encourage anyone from using it.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-09 16:17:13 -07:00
Ryan Davis
1266a65f28 Moved the osx? guard below minitest/autorun.
I didn't hit this because I use `minitest` to run my tests, not `m`.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-09 16:16:26 -07:00
David Gasper
ee2806a342 Fix RuboCop issues
Signed-off-by: David Gasper <dmgasper@osuosl.org>
2019-08-08 14:32:19 -07:00
David Gasper
52ae5e434b Add docs and unit tests, remove .travis.yml
Signed-off-by: David Gasper <dmgasper@osuosl.org>
2019-08-08 13:54:35 -07:00
Clinton Wolfe
95e6bcb317
Modified DarwinGroup to collect all users properly. (#4343)
group resource: Modified DarwinGroup to collect all users properly on macos
2019-08-08 11:55:48 -04:00
Clinton Wolfe
c28dd8f9ec
Add startuser windows service (#4363)
Add startuser windows service
2019-08-08 11:32:39 -04:00
Ryan Davis
374e365c02 Modified DarwinGroup to collect all users properly.
I noticed that my profile targeting group "staff" on OSX wasn't
returning *me*. I'm awesome! So that seemed wrong. And it turns out it
is wrong. We were not collecting any users whose primary group was
that group. (almost all regular users are in group staff and they're
all missing).

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-07 20:27:13 -07:00
Mendy Baitelman
b2c29da936 Use dbus for testing
Signed-off-by: Mendy Baitelman <mendy@baitelman.com>
2019-08-06 21:34:46 -07:00
Mendy Baitelman
db58322d41 Add startname to systemd server
Signed-off-by: Mendy Baitelman <mendy@baitelman.com>
2019-08-06 21:04:52 -07:00
Mendy Baitelman
4d990865a1 Add to mock_loader
Signed-off-by: Mendy Baitelman <mendy@baitelman.com>
2019-08-06 19:44:02 -07:00
Mendy Baitelman
988357aad1 Fix tests
Signed-off-by: Mendy Baitelman <mendy@baitelman.com>
2019-08-06 18:58:03 -07:00
Ryan Davis
d295455df6 Fix license functional tests when run on buildkite.
BK currently runs our tests on ruby:X.Y-stretch docker images, which
use root. This puts license files it /etc/chef instead of the current
user's home and broke our tests.

This adds cleanup to /etc/chef AND checks both locations, so it should
continue to work even if we switch to docker images with non-root users.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-06 15:50:01 -07:00
Ryan Davis
55f2747ee1 Remove timebombs from 2 functional license tests.
These were put in place because they pass locally and fail on
buildkite. We didn't care at the time, but now we should investigate.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-08-06 15:02:37 -07:00
Ryan Davis
b570e0cc74 Bump skipped license tests until 8/16.
I've got this under debug in docker but this is a problem on the
license_acceptance gem on BK, not with inspec. And it is blocking a
release, so I'm bumping this out 2 weeks.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-31 16:44:49 -07:00
Ryan Davis
99638d8de9 Remove timebomb on skip_until.
It has been valuable and should push up to minitest.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-31 12:24:57 -07:00
Clinton Wolfe
88898ce7a9 Linting
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:42:24 -04:00
Clinton Wolfe
f00e741999 PR feedback
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
c03862fe7b Code climate updates
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
4f6d296a22 The error case in which the path does not exist
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
860d21a370 Test for ./
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
31bedf7b37 Empty-string edge case
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
fab58b590e Combo relative test in place
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
e9ef8e25a3 Deep dependency works
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
80241ec971 Passing basic test harness
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
c257763de6 Linting
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
aa81012013 Rework tests to be fixture-based, not generated per-run
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:38:02 -04:00
Clinton Wolfe
12fcb24932 Experiment with git subrepo storage
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:36:20 -04:00
Clinton Wolfe
0e32d2429f Rename path_within_repo option to relative_path
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:36:20 -04:00
Clinton Wolfe
f1a892c857 Move existing git fixture profile to a directory for git-fetchers
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:36:20 -04:00
Clinton Wolfe
9c1fa967fd Rename profile_path to path_within_repo
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-30 13:36:20 -04:00
Jerry Aldrich
3e1d08cafe Add support for relative paths to the Git fetcher
This adds support for specifying a path to a profile in a Git repo.

For example, you could have a Git repo containing multiple profiles and
you want to specify a single one like below:

```yaml
depends:
  - name: profile-1
    git: https://github.com/myorg/all-my-profiles.git
    profile_path: profiles/my-specific-profile-1
  - name: profile-2
    git: https://github.com/myorg/all-my-profiles.git
    profile_path: profiles/my-specific-profile-2
```
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-07-30 13:36:20 -04:00
Ryan Davis
2d5fdabf86
Merge pull request #4337 from inspec/zenspider/remove-version-checking
Removed lib/inspec/utils/latest_version.rb and associated code.
2019-07-29 12:47:37 -07:00
Ryan Davis
3d6a4143a1 Removed lib/inspec/utils/latest_version.rb and associated code.
There is no reason why our tests should be failing because we deploy a
new version. That test shouldn't even be hitting the network for real.

Besides, the functionality has no place in our codebase. It's
functionality provided via `gem outdated` so why did we re-implement
it? And we expect most people to be running via omnibus, so they're
pinned to a specific version in the first place. Even if they updated,
they still couldn't run it and that would be more confusing.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-29 11:57:08 -07:00
Ryan Davis
1e2da6acc2 Moved another non-test to test/unit/mock/files
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-29 11:42:30 -07:00
Ryan Davis
4df8072665 These tests probably never passed.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-29 11:42:30 -07:00
Ryan Davis
be11d8898d Found more tests that we've probably never actually run.
*sigh*

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-29 11:42:30 -07:00
Clinton Wolfe
be91550343
windows_task: Fix handling of multiple triggers (#4242)
windows_task: Fix handling of multiple triggers
2019-07-29 13:00:16 -04:00
Ryan Davis
bcf3aa841c Skip failures from BK run.
Not sure why these failures come up in a unified run (versus my
running all test files separately). Might be test infection. Might be
environmental.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:59:01 -07:00
Ryan Davis
917a531a92 Skipped all failing tests on windows AT the failures site.
This activates a BUNCH of tests but keeps us green.

Whether these tests are valid or not is not being addressed here.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:09:08 -07:00
Ryan Davis
bd16b766fa Renamed do_shell_c to assert_shell_c to make failures point to the right place.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:06:25 -07:00
Ryan Davis
c6837a3915 Moved skip_windows! to top helper and extended date to end of next month.
Fixed up requires in v2/installer_test.rb so it sees the top helper.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:06:25 -07:00
Ryan Davis
6dfa1d8310 Um. No.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:06:25 -07:00
Ryan Davis
18ce4850f0 Initial pass to clean up functional testing wrt exit codes and output.
This should get windows tests running again? Hopefully? They're
running SO slowly on my vagrant box that I'm just pushing for now.
They're clean on the mac side.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-24 18:06:25 -07:00
Ryan Davis
bd79e9c895
Merge pull request #4316 from inspec/zenspider/fix-file-aws
Fix exceptions when resources are used with incompatible transports
2019-07-23 11:47:13 -07:00
Ryan Davis
7a1e1bb775
Merge pull request #4230 from yeoldegrove/sys_info
add resource sys_info.manufacturer and sys_info.model
2019-07-22 14:39:28 -07:00
Ryan Davis
7de549577c Return keys are really nice.
They make code more readable by visually separating different sections
of text.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-22 14:19:15 -07:00
Ryan Davis
d3df69213b Fix handling using resources with incompatible resources (eg file + aws).
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-22 14:19:15 -07:00
Ryan Davis
14c245eccb Refactoring inspec_exec_test.rb
+ Moved exit checks to be last.
+ Refactored the IO parts. WHY do the same thing over and over?!?

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-22 14:19:15 -07:00
Clinton Wolfe
12b577fccd linting
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-22 15:17:30 -04:00
Clinton Wolfe
b37d165878 Unit test for suppressing doc install
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-22 15:17:30 -04:00
Eike Waldt
da4168f83d
add darwin/OSX tests
Signed-off-by: Eike Waldt <waldt@b1-systems.de>
2019-07-16 21:53:19 +02:00
Eike Waldt
b47cf6e80e
change from dmidecode to /sys/class/dmi/id/*
(kudos to Seife)

Signed-off-by: Eike Waldt <waldt@b1-systems.de>
2019-07-16 21:53:03 +02:00
Eike Waldt
9c06a0c8e2
refactor tests for resource sys_info.manufacturer and sys_info.model
Signed-off-by: Eike Waldt <waldt@b1-systems.de>
2019-07-16 21:02:52 +02:00
Eike Waldt
9278d8109d
add tests for resource sys_info.manufacturer and sys_info.model
Signed-off-by: Eike Waldt <waldt@b1-systems.de>
2019-07-16 21:02:45 +02:00
Eike Waldt
474d70b78d
fix description on sys_info.hostname tests
Signed-off-by: Eike Waldt <waldt@b1-systems.de>
2019-07-16 20:39:38 +02:00
Ryan Davis
f5d0d93121 This should get buildkite green for now.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-07-15 20:34:59 -07:00
Clinton Wolfe
398e984a14 Push back timebomb by one month
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-12 13:10:38 -04:00
Clinton Wolfe
f4b9bc4b0b rework filtertable call and add rubocop exception
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-11 15:04:38 -04:00
Miah Johnson
a4f4fe5231 chefstyle -a; https://github.com/chef/chefstyle/pull/74
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-07-08 17:22:50 -07:00
Miah Johnson
dc0ef8421e chefstyle recent pr
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-07-08 13:39:46 -07:00
Miah Johnson
8272d0184b
Merge pull request #4236 from ramereth/ip6tables
Add ip6tables resource
2019-07-08 11:45:33 -07:00
Clinton Wolfe
e4e7c255de Automated chefstyle application for rubocop 0.72 compatibility
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-07-03 17:24:41 -04:00
Jerry Aldrich
5e93c4b12e Appease RuboCop
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-07-01 22:45:04 -07:00
Jerry Aldrich
dafa4f4165 Try to appease Code Climate
I...I don't know how to make it better.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-07-01 22:39:12 -07:00
Jerry Aldrich
668b8d82bf windows_task: Fix handling of multiple triggers
When using `schtasks` a list is returned if the task has multiple
triggers. This merges that list with the last item taking precedence.
This is how `Get-ScheduledTask` behaves.

Initially, I was going to rewrite this resource to use
`Get-ScheduledTask` but the original author purposely did not do this
so that PowerShell v3 would be supported. We only support PowerShell
v5, but I don't want to break any current users and this change didn't
seem to controversial to me.

If it gives us trouble, I recommend rewriting it to use
`Get-ScheduledTask`.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-06-28 00:27:53 -07:00
Lance Albertson
3263d76627 Add ip6tables resource
This should resolve #1011 which provides an ip6tables resource to test IPv6
iptables rules. This is essentially a copy of the iptables resource with a few
renames.

In addition, I've pulled in the integration tests for iptables into ip6tables
and enabled it on docker so that it properly gets tested regularly. The test
cookbook recipe has been updated to support all of the current platforms that
are being tested.

Signed-off-by: Lance Albertson <lance@osuosl.org>
2019-06-24 17:01:34 -07:00
Jared Ledvina
45713b2627
Service add Debian 10 test
Signed-off-by: Jared Ledvina <jared@techsmix.net>
2019-06-22 13:23:32 -04:00
Miah Johnson
26e73f4326 Update date on our timebomb.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-21 12:56:53 -07:00
Ryan Davis
902d7b563c Set the umask on travis in before_install.
https://travis-ci.community/t/file-permissions-just-gone-up-to-664/1547/5

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-19 16:40:24 -07:00
Jerry Aldrich
80c595ba3d nginx_conf: Fix commented/empty file parsing
This fixes `nginx_conf.params` when:
  - Given an empty file
  - Given a file with only comments
  - Given a file that has an include for a file that:
    - Is empty
    - Has all lines commented out

This also fixes a test where a missing file is actually empty

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-06-17 21:57:26 -08:00
Miah Johnson
b21bcfabc4 Lets discuss this next week when we're all around =)
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-14 15:04:26 -07:00
Clinton Wolfe
4ce2192678 Impactful KPI upswing
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 19:09:11 -04:00
Clinton Wolfe
0b8da5bb01 update test expectation with improved log message
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 19:05:48 -04:00
Clinton Wolfe
dea323fa52 Test fixtures and failing functional test for input rename
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 19:00:53 -04:00
Clinton Wolfe
ab6933fcc7 A key value-add use of company time
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 13:05:49 -04:00
Clinton Wolfe
d8e485eb62 Edit the masrshalling code more carefully to match
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 12:51:02 -04:00
Clinton Wolfe
0023906812 Update test code regarding input marshalling
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 12:25:45 -04:00
Clinton Wolfe
00d497fd09 Remove kitchen-inspec testing code - it is tested in that project, not here
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 12:17:19 -04:00
Clinton Wolfe
46624396c7 Bulk edit of test files to use input() in DSL
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-12 12:17:19 -04:00
Ryan Davis
dd7f9abb20 Revamped test/functional/ui_test.rb to check output before exit codes.
Helps with debugging.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-11 21:32:22 -07:00
Ryan Davis
fae4230a41 Removing inspec/profile_vendor from inspec/base_cli.
This was the next most expensive require in the analysis.

Also rearranged the way that ui handled tables to be lazy.

```
% SLOW=1 time rake test:functional

before: Finished in  681.514579s, 0.5136 runs/s, 2.9919 assertions/s.
after : Finished in  642.655918s, 0.5446 runs/s, 3.1728 assertions/s.
```

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-11 19:16:58 -07:00
Ryan Davis
692d6a9ab8 hand applied one that is now marked as unsafe in rubocop
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-11 18:52:38 -07:00
Miah Johnson
68e540a15a Ignore Rubocop checks
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-11 18:52:38 -07:00
Miah Johnson
c579ed3097 Disable rubocop check on TMP_CACHE
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-11 18:52:38 -07:00
Miah Johnson
729177f3c6 chefstyle -a
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-11 18:52:38 -07:00
Miah Johnson
649ed9aca5 This cache needs to be writable. Its a problem.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-11 18:52:38 -07:00
Miah Johnson
e46018a517 chefstyle -a cleanup
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-11 18:52:38 -07:00
Ryan Davis
a5309ea392 blindly applied chefstyle -a
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-11 18:52:03 -07:00
Clinton Wolfe
ec1baf6237
New plugin type: Input (#4019)
New plugin type: Input
2019-06-10 15:13:57 -04:00
Miah Johnson
390d006311 Fix indent
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-06 13:44:18 -07:00
Miah Johnson
b176012abf Maybe stop coverage from running early.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-06 13:43:19 -07:00
Miah Johnson
6b3d96e8a9 Wrap coverage in environment variable CI_ENABLE_COVERAGE
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-06 13:41:57 -07:00
Clinton Wolfe
1628383c8f Mis-spelled a method name
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
9366804335 PR Feedback
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
4b1ee722b4 Functional test for event log
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
4eb815fdd7 syntaxo
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
90da768ef0 Move event creation to input_registry to simplify plugin authorship
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
53beaff372 Input plugin types work
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:22 -04:00
Clinton Wolfe
9e2e569d85 Add input plugin type API
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:21 -04:00
Clinton Wolfe
962dfc8d90 Failing tests for input plugin
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:21 -04:00
Clinton Wolfe
82f910e320 Plugin type declaration and unit test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-06-06 12:51:21 -04:00
Ryan Davis
6bed51d69a Fixed up interactions between minitest & simplecov.
Sometime during the 2.x's, `at_exit` changed its ordering. As a result,
a lot of things that were stacking `at_exit`'s broke. This is one of
those since both simplecov and minitest do their thing via `at_exit`.
This switches to simplecov w/ no defaults on, then replicates their
simplecov/defaults.rb with our own.

I'm going to try to get that entire file back upstream but it can live
here for now.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-05 15:16:42 -07:00
Ryan Davis
5e71a6b787 oops
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-04 00:19:26 -07:00
Ryan Davis
58fa148773 Stabilize windows functional testing.
Skip most everything.

After some digging, in those tests that didn't have 100% failures, of
the ~10+% passing, those tests weren't checking enough. So I skip them
too in the hopes that we improve testing across the board.

At this point, we need appveyor to be green more than we need these
tests to be fixed. If that means we skip them, so be it.

These tests will time-bomb at the end of July.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 23:27:26 -07:00
Ryan Davis
5573957c52 Go back to cmd from powershell.
Apparently it is too much of a shift and I tested too small of a
sample.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 23:11:26 -07:00
Ryan Davis
22635157b5
Merge pull request #4177 from inspec/zenspider/thread_safety_is_hard
Turn off parallel testing (for now?)
2019-06-03 23:04:03 -07:00
Ryan Davis
c40f541a54
Merge pull request #4172 from inspec/mj/jsa
Replace jsonschema with json-schema
2019-06-03 23:03:23 -07:00
Ryan Davis
11638d36dd Now that we aren't parallelizing, start bringing back skipped tests.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 14:12:06 -07:00
Ryan Davis
45ef0d84d0 Remove minitest/hell in favor of stable (but sloooow) tests.
Added InspecTest (which we should use across the board) and
ParallelTest (which we should use selectively and with metrics) to
helper.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 14:12:06 -07:00
Ryan Davis
d2edd3ce68 Move minitest/hell to test/helper.
Probably going to remove this next and focus on opting-in to parallelization.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 14:12:06 -07:00
Ryan Davis
bba9434600 Change the way we load rspec so it never exposes globally.
Essentially, the way rspec does stuff is pretty rude. By injecting
singleton methods into main (instead of Kernel, where all top-level
methods go) and "cleaning" them up using undef_method instead of
remove_method makes it pretty hard for anything else in the testing
arena to operate. I've already fixed the case where rspec would
overwrite minitest's `describe` in a way that made it very hard to put
back, but my fix didn't prevent rspec from doing it _AGAIN_.

This fixes the case where after some rspec interactions, mocha's
`any_instance` method would just disappear. I never did figure out
where or why this was happening, but I did address the how.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-06-03 14:12:06 -07:00
Ryan Davis
a2f2cd5087
Merge pull request #4109 from inspec/zenspider/helper_cleanup
Minor cleanup on test/helper.rb
2019-06-03 13:39:31 -07:00
Miah Johnson
0aea548dd8 Update tests to use json-schema, and test something.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-06-01 23:17:53 -07:00
Miah Johnson
9a580407e6 brittle tests
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-31 11:43:44 -07:00
Miah Johnson
a5c8021227 don't remove this leading newline =)
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-31 11:43:44 -07:00
Miah Johnson
2a1b1d8e88 Remove all leading newlines.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-31 11:43:44 -07:00
Ryan Davis
d10591dc19 Some of our license tests fail if we have CHEF_LICENSE set, so wrap them up.
This still doesn't fix our parallelization issues. I think

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-30 11:17:19 -07:00
Ryan Davis
4790e288a0
Merge pull request #4142 from inspec/zenspider/clean_unnecessary_requires
Clean unnecessary requires
2019-05-29 18:33:06 -07:00
Ryan Davis
dfadc393b9 Even more removals and moves!
Turns out we don't even use CMD in any units... so why make it?

Lots of other stuff got ripped out. Tests basically shouldn't need to
require anything but 1 implementation file and a test framework.
Anything more than that is a smell.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
be125598c8 Additional whitespace cleanup.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
ec248217a7 Extra fix for utils move
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
a8bcba780f Got the rest of the functionals to pass.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
82c9aa6ed6 Got the rest of the tests to pass.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
9ec91484fc Get all non-resource tests fixed again.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
de8258c9f7 Get yaml_test.rb working
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
761f48e63c Get user_test.rb working
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
69f2927983 Stripping test/helper.rb of all the big inspec requires.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
61585de0f0 Moved out all of the requires for inspec/resources/* from inspec/resource.rb
All requires moved to inspec/resources.rb

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
adaf2bc364 Removed aws resource requiring from test/helper and inspec/resource.
This speeds up parallel unit test runs from a very consistent 2:49 to
a very consistent 1:53, or a 33% reduction.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 17:58:02 -07:00
Ryan Davis
56924dbee1 Fix some of our functional failures on windows.
+ Add CHEF_LICENSE env variable.
+ Switch to using powershell to invoke inspec.

I still think we should look into using `spawn`, but this is a good
start.

This probably doesn't fix the rest of the tests, but they're SO slow
locally that I'm gonna start this PR.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 15:48:37 -07:00
Ryan Davis
23f8a1e30c Explicitly set default_external to UTF-8 for windows testing.
This fixes 4 failures having to do with encoding mismatch.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-29 15:48:37 -07:00
Miah Johnson
6c19e81a06 Remove authors tags from source files.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-28 12:47:39 -07:00
Ryan Davis
ad12e601bf Minor cleanup on test/helper.rb
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-28 12:02:06 -07:00
Clinton Wolfe
c8f0de05af
inspec check: Send log to STDERR when running with --format json (#4001)
inspec check: Send log to STDERR when running with --format json
2019-05-28 14:44:44 -04:00
Miah Johnson
2215bb0570 Update all requires pointing to util/
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-28 11:30:16 -07:00
Clinton Wolfe
db66eb0ad1
Extracting mock_loader to its own helper file. (#4141)
Extracting mock_loader to its own helper file.
2019-05-28 14:08:21 -04:00
Miah Johnson
5ae79a5b42
Merge pull request #4140 from inspec/zenspider/supermakert
supermakert -> supermarket
2019-05-28 11:01:20 -07:00
Ryan Davis
f36a7c8061 No tabs.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-25 03:40:36 -07:00
Ryan Davis
09e892032b Extracting mock_loader to its own helper file.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-25 02:59:31 -07:00
Ryan Davis
9e9cc42bf8 Another typo fixed.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-24 15:53:03 -07:00
Ryan Davis
4e5ddc051e Fixed typo in filename
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-24 15:51:57 -07:00
Miah Johnson
fb0993e0f2
Merge pull request #4089 from mirskiy/github_url_regex_bug
Fix github url regex. Add period for repo
2019-05-21 12:45:18 -07:00
Miah Johnson
27ee7a1a63
Merge pull request #4107 from inspec/zenspider/telemetry_requires
Minor require cleanup for telemetry.
2019-05-20 13:10:30 -07:00
Ryan Davis
9c6965b2ed Minor require cleanup for telemetry.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-20 13:09:38 -07:00
Miah Johnson
c7218a991a
Merge pull request #4108 from inspec/zenspider/remove_test_unit_helper
Delete test/unit/helper.rb
2019-05-20 13:08:07 -07:00
Miah Johnson
36029da0a3
Merge pull request #4116 from inspec/zenspider/clean_more_requires
Clean more requires
2019-05-20 13:07:04 -07:00
Ryan Davis
e1061f41f2 Clean more requires
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-20 13:01:18 -07:00
Ryan Davis
8c56477f02 Fixes a test interaction bug between installer and loader.
Not sure how it was supposed to work in the first place. The plugin in
question depends on ordinal_array and that wasn't in that fixture dir.
Switching to 2 is all it apparently needed.

This does cause yet another double-load warning (VERSION already
defined). I don't know how we're supposed to get around that with the
way we've set up these tests.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 15:45:22 -07:00
Ryan Davis
8ea1889001
Merge pull request #4079 from inspec/mj/cli_warn
Fix @unique_controls uninitialized warning
2019-05-18 15:00:47 -07:00
Ryan Davis
892641f69d Delete test/unit/helper.rb
I isn't used anywhere.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 14:21:33 -07:00
Ryan Davis
9b7c292d4c Use IO globals instead of IO constants.
Helps testing and lots of other things if we only use $stdout/$stderr.

STDOUT/STDERR should only be used to restore the globals.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 12:48:18 -07:00
Ryan Davis
40d74cb5be Turn off logging after the configure_logger tests.
Please do not increase the amount of noise our tests have from here on out.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 12:48:18 -07:00
Dan Mirsky
1e20e2998e Fix github tree url regex. Add period for repo
Signed-off-by: Dan Mirsky <mirskiy@gmail.com>
2019-05-18 10:50:39 -07:00
Ryan Davis
e72f3f34aa Skip more_permissive_than? file_test because broken only on CI.
Trying to fix file_test failure that only happens on travis.

The "mock" file in question is supposed to have a stat of 644, but
actually has 664 but only on travis-ci.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 03:19:46 -07:00
Ryan Davis
bc028893e8 Fixed inconsistent use of MT::S's "expect" method (eg _)
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
9b0d8edfb4 Fixed another bad test interaction.
This time between:

+ PluginManagerCliDefinitionTests#(?:test_plugin_registered
+ PluginLoaderTests#test_load_mock_plugin_by_gem

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
3ba7aecffb Skips the one test that hits rspec directly and causes mocha to blow out afterwards
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
1b01aa7a57 Removed all redundant INSPEC_CONFIG_DIR setup from tests.
Pushed up to setup

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
8f3e1a0fe5 Fixes test failure interaction between Loader and Installer tests.
Specifically, if these were run in this order:

+ PluginLoaderTests#test_load_mock_plugin_by_gem
+ PluginInstallerInstallationTests#test_install_a_gem_from_local_file

the latter would fail.

The failure was in test setup. The solution was partially to crib off
of and normalize with LoaderTest setup/teardown and partially to set extra things.

Specifically:

+ HOME wasn't being set so it was finding my ~/.inspec/plugins.json
+ ENV wasn't being reset for Gem.paths
+ Installer wasn't being reset correctly, so plugins were known across tests.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
03dd753ad3 Omit user plugins for loader test failure.
Fixes #4053

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
84fd8af96a Added SLOW=1 env var to run slow installer tests, otherwise skipped
+ Added SLOW=1 to appveyor (I hope?) and travis.
+ Off by default.

Speeds up installer tests from ~5.5 seconds to ~0.5 seconds.

Once this is established, we can push this up to the main helper and
generalize if it works out for us.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
92d8cd4df9 Fixed two test order dependency bugs.
+ Do extra cleanup of loaded_specs for the dependencies.
+ Ensure rake is actually activated.

Fixes #4030.
Fixes #4026.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
4d4e8e1feb Turn off rdoc/ri generation in plugins.
As commented, I'm happy to push this to our tests, but it does seem
odd that we'd install rdoc/ri for plugins.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
6235c3f658 Fixed missing requires
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
cdf95cd160 Fixed 3 failures in cmp matcher.
+ float? comparison can raise a TypeError
+ octal? comparison was allowing non-octal values (which cast to 0)
+ symbol comparison was casting to a string, but then doing an == check instead of casecmp.

The latter seems optional, but consistent with the intent of cmp.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
b80dfa2cbd Tests for cmp.
Doesn't test any of the aux methods.

This uncovers ~3 errors in the code. Not fixed.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
06ead63972 Minor cleanup and a todo test.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
1ed4128942 Functional helper let changes.
Moved exec_inspec to inspec_path.
Added new exec_inspec that invokes ruby w/ -Ilib (expanded).

Decouples from bundler and/or needing inspec-bin to be installed.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
80cfc419f8 Use Inspec::VERSION directly to decouple from bundler.
Can also try to use the bundler version first and then fall back to
VERSION... but VERSION is absolutely free.

Happy to push an edit to this to remove the comment or fold it in.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Miah Johnson
832dc4a1c9 This test was too intimate.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-15 19:30:39 -07:00
Tim Smith
0122ee8e60 Remove the deprecated linux_kernel_parameter resource test
This was testing serverspec compatibility, but those days are long past us and this is a deprecated resource now. This will quiet our tests up a bit.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-05-15 16:39:29 -07:00
Ryan Davis
eead889325 Fix test framework contention.
RSpec is used internally. Minitest is used for our tests. They don't
really like each other. This fixes that and gets our tests
consistently running the correct number of tests (they were load-order
dependent before and each platform had its own different number of
tests it would run).

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-15 00:33:53 -07:00
Ryan Davis
fa7a8c9e19 Normalizing two test declarations.
These tests both involve dynamic un-rooted classes. As such, they have
no name and thus print like #<Class:0xXXXXXXXX:...>. I switched one to
a describe instead of Class.new(Minitest::Test) and the other I
stringified the anonymous class.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-14 23:27:18 -07:00
Ryan Davis
6adf1d2560 Remove all byebug requires in code.
Please don't leave debugging remnants in the code.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-14 23:24:14 -07:00
Miah Johnson
d5e19ae900
Merge pull request #4046 from inspec/mj/ftf
Fix broken tests after removing magic comments.
2019-05-09 10:56:37 -07:00
Miah Johnson
bf28482350
Merge pull request #4043 from inspec/ap/no-resource-capitalize
Wrap resources in backticks and remove resource name capitalizing
2019-05-08 23:49:25 -07:00
Miah Johnson
81c9a27b37 Fix broken tests after removing magic comments.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-08 16:17:25 -07:00
Miah Johnson
11b8da3283
Merge branch 'master' into mj/encoding 2019-05-08 12:59:55 -07:00
Miah Johnson
20bafdc4b2
Merge pull request #3988 from inspec/mj/coveralls
Add Coveralls.io support to InSpec
2019-05-08 12:58:00 -07:00
Miah Johnson
1edfeae5f4
Merge pull request #4025 from inspec/mj/3849
Enable user telemetry opt-in / opt-out on cli
2019-05-08 12:56:29 -07:00
Clinton Wolfe
b3e5788d2a
Merge pull request #4036 from inspec/mj/dst
Add missing tests for DataSeries#enabled? #disable
2019-05-08 15:49:19 -04:00
Miah Johnson
9eeb8274cb
Merge pull request #3954 from cc-build/distro-identity
First step to get inspec names changeable
2019-05-08 12:37:12 -07:00
Miah Johnson
37ea6f2f77
Merge pull request #4023 from inspec/zenspider/minitest
Modernize use of Minitest.
2019-05-08 12:23:49 -07:00
Alex Pop
d7f06f98f1 Wrap resources in backticks and remove resource name capitalizing
Signed-off-by: Alex Pop <alexpop@users.noreply.github.com>
2019-05-08 20:17:51 +01:00
Miah Johnson
5a0913e3f6 Add missing tests for DataSeries#enabled? #disable
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-08 00:44:51 -07:00
Miah Johnson
d000f20f34 Update Collector#reset to clear telemetry_toggled_off
Updated the name of #reset -> #reset! as we are modifying state of a
singeton.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-08 00:36:45 -07:00
Miah Johnson
871b0e9a38 Ensure telemetry can be disabled
The #disable_telemetry method now toggles @telemetry_toggle_off.
The @telemetry_toggle_off is defaulted to false

The #telemetry_enabled? method now checks @telemetry_toggle_off
and we generally check the configuration. We do not flip
@telemetry_toggle_off based on the content of the configuration.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-08 00:30:24 -07:00
Miah Johnson
640d122327 Update Inspec::Config.mock in collector global methods
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-07 22:37:43 -07:00
Miah Johnson
0b9833dd96 condense true/false enabled tests
Because of the way the test system loads I cannot guarantee that
`Inspec::Config.cached` won't be nil. I have to always pass in a mock
config object with our setting.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-07 19:06:38 -07:00
Miah Johnson
659b4b373a Remove # encoding: utf8 magic comments
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-07 16:06:23 -07:00
Clinton Wolfe
80b847ae83
Improve testing on inputs that do not have values (#4007)
Improve testing on inputs that do not have values
2019-05-07 15:01:09 -04:00
Clinton Wolfe
ce16120b18 Failing functional test for running inspec check with a deprecation
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-05-06 14:58:10 -04:00
Artem Sidorenko
96353a708a First step to get inspec names changeable
for community distributions

Signed-off-by: Artem Sidorenko <artem.sidorenko@t-systems.com>
2019-05-06 18:40:35 +02:00
Miah Johnson
b51ad8acb8 When telemetry is disabled Inspec.record_telemetry_data doesn't record
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-03 16:13:45 -07:00
Miah Johnson
ac2d782266 Pass in mock config object to tests and validate telemetry_enabled?
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-03 16:07:24 -07:00
Ryan Davis
476c6878b3 Modernize use of Minitest.
+ Turn off verbosity in Rakefile by default. Use `rake V=1` to turn back on.
+ MiniTest -> Minitest everywhere.
+ MiniTest::Unit::TestCase -> Minitest::Test everywhere.
+ Updated minitest doco urls to official and up-to-date site.
+ Normalize requires. Only needs "minitest/autorun" and "minitest/pride".

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-03 15:01:57 -07:00
Clinton Wolfe
e280990e76 Test fixtures and failing functional tests for DSL
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-30 23:54:29 -04:00
Clinton Wolfe
4773023ef5 Add functional test to verify no-halt for undeclared inputs
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-30 22:51:56 -04:00
Clinton Wolfe
c4aa4314af Test fixture to exercise undeclared inputs
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-30 22:45:18 -04:00
Clinton Wolfe
a282204b41 Update exe location in functional test helpers
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-29 13:27:10 -06:00
Miah Johnson
b1d5091670 Add Coveralls.io support to InSpec
Tie coveralls into simplecov formatters
Add coveralls badge to README

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-26 13:37:55 -07:00
Clinton Wolfe
7d2028287c Get unit and functional tests passing
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:32 -04:00
Clinton Wolfe
502cf1d7b9 Add test helper to detect all-passing exec run
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:32 -04:00
Clinton Wolfe
d9b7473118 Add inheritance test fixture
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:32 -04:00
Clinton Wolfe
9156a782fe Add stack introspection
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:32 -04:00
Clinton Wolfe
9faf4b1034 Add tests for marshalling
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
0ba056cd94 Consolidate validation tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
2450f45ac6 Detailed type validation works
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
407dcd9028 Add unit tests for enforcing type validation
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
2536d76324 Events work at the unit level, except for stack hueristics
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
e3b2ec7d7c Sketch out events unit tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
b8cde5530b Add event, some tests still commented out
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
aae54d2cb6 Checkpoint commit after Input rename; precedence is broken
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-26 13:14:31 -04:00
Clinton Wolfe
b74f61e9de
Update deprecation settings for v4 (#3973)
Update deprecation settings for v4
2019-04-25 18:56:43 -04:00
Clinton Wolfe
65123b47c0 Don't use a profile with old-style attributes in vendor test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-25 17:37:13 -04:00
Clinton Wolfe
5383ca2040 Merge branch 'cw/apply-v4-deprecations' of github.com:inspec/inspec into cw/apply-v4-deprecations 2019-04-25 14:58:35 -04:00
Clinton Wolfe
ab0282f156 Revert "Skip legacy --json-config test until CLI setup is refectored"
This reverts commit 81c28d5b56.
2019-04-25 14:51:33 -04:00
Clinton Wolfe
81c28d5b56 Skip legacy --json-config test until CLI setup is refectored
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-25 14:49:47 -04:00
Clinton Wolfe
23fdecd9c3 Make sure trailing newline is preserved when ignoring deprecations in functional tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-25 14:48:35 -04:00
Clinton Wolfe
9e6adcc7b1
update 'low' impact value to align with CVSS 3.0 (#3961)
update 'low' impact value to align with CVSS 3.0
2019-04-25 14:43:43 -04:00
Clinton Wolfe
9833b1950b
Update plugin test fixtures for Ruby 2.6 and remove for 2.3 (#3978)
Update plugin test fixtures for Ruby 2.6 and remove for 2.3
2019-04-25 11:10:17 -04:00
Clinton Wolfe
843ba7afa2
Improve ss parsing code for IPv6 addresses (#3962)
Improve ss parsing code for IPv6 addresses
2019-04-25 11:09:31 -04:00
Miah Johnson
12c94e1e97 Revert "Use ignore_deprecations helper to silence warnings for cli.ui"
This reverts commit 144c482a24.
2019-04-24 13:17:52 -07:00
Clinton Wolfe
91c0f1e83b Rewrite fltertable functional tests to DRY up and avoid --json-config
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-24 11:37:43 -04:00
Miah Johnson
144c482a24 Use ignore_deprecations helper to silence warnings for cli.ui
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-24 02:28:28 -07:00
Clinton Wolfe
77400b83b2 Also for train-test-fixture add 2.6.0 ABI and remove 2.3.0 ABI
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-23 23:45:59 -04:00
Clinton Wolfe
cf1d4f9994 Remove 2.3.0 ABI test fixture plugins
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-23 23:39:31 -04:00
Clinton Wolfe
3ec3607544 Add 2.6.0 ABI plugin test fixtures
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-23 23:37:59 -04:00
Aaron Lippold
a94fdc67d5 updated low to align with CVSS 3.0
Signed-off-by: Aaron Lippold <lippold@gmail.com>
2019-04-23 15:02:52 -04:00
Clinton Wolfe
f7b01093a4 Warn on using default with attributes
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-23 11:46:13 -04:00
Clinton Wolfe
aa19b6e99d Add helper to filter out deprecations on stderr
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-23 11:46:13 -04:00
Miah Johnson
2f78515164 Add a few tests for LinuxPorts class to validate ss parsing.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-19 13:45:33 -07:00
Clinton Wolfe
3d0b8dff2e
Merge pull request #3956 from inspec/cw/use-deprecation-everywhere-4-port
Use deprecation facility everywhere - v4 port
2019-04-17 17:12:24 -04:00
Clinton Wolfe
7aeb1763a9
Merge pull request #3897 from mattlqx/interface-addresses
Support address matchers on interface resource
2019-04-17 11:57:29 -04:00
Clinton Wolfe
1552dc0210 Merge branch 'cw/use-deprecation-everywhere-3-port' of github.com:inspec/inspec into cw/use-deprecation-everywhere-4-port 2019-04-16 17:42:45 -04:00
Clinton Wolfe
a3a2699e8d Update unit tests to expect deprecations
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-16 17:28:39 -04:00
Clinton Wolfe
ba6d59dc66 Deprecation handler in unit test helper
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-16 16:27:56 -04:00
Clinton Wolfe
0c884b1415
Merge pull request #3895 from mitre/al-mitre/more-permissive-than
Signed-off-by: Aaron Lippold <lippold@gmail.com>
2019-04-16 14:41:43 -04:00
Matt Kulka
633cea6673 support address matchers on interface resource
Adds missing functionality to `interface`. Fixes #1830

```
describe interface("eth0") do
  its(ipv4_addresses) { should include 1.2.3.4 }
end
```

And so on... see diff/docs for additional matchers.

Signed-off-by: Matt Kulka <mkulka@parchment.com>
2019-04-12 08:24:13 -07:00
Jerry Aldrich
40031a9b83 Use deprecation facility throughout code
This converts all current deprecation warnings/TODOs to use the
`Inspec.deprecate()` deprecation facility.

This also modifies `Inspec.deprecate()` to only require 1 argument.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-04-11 19:15:01 -04:00
Clinton Wolfe
4348e8fa07
Merge pull request #3935 from inspec/cw/add-license-gating
Add license acceptance to InSpec v4
2019-04-11 18:56:11 -04:00
Clinton Wolfe
03385b98ba
Merge pull request #3928 from inspec/mj/tmr
Telemetry Object Model
2019-04-11 16:23:17 -04:00
Miah Johnson
5adf33469a improve testing for DataSeries#to_h and DataSeries#to_json
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-11 12:22:29 -07:00
Miah Johnson
55ea2d984c Not sure how to make this not dependant on list_data_series to prove its
functionality.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-11 12:17:59 -07:00
Clinton Wolfe
34d16553bb Use touched license file to make re-homed config test pass
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 15:03:27 -04:00
Miah Johnson
3c6db15124 improve tests for Collector#list_data_series
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-11 11:47:42 -07:00
Clinton Wolfe
8d3e704532 Update CLI option for accepting license; licensing tests pass
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 14:20:41 -04:00
Clinton Wolfe
d94addf54a Update functional test to remove interactive testing; impossible now with tty detection
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 13:11:11 -04:00
Clinton Wolfe
1c13bcc35e Change exit code to 172 when license is not accepted
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
f7c4f56670 Ensure that an empty invocation does not trigger the license check
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
e0fe3f1876 Add version to list of exempt commands
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
30e5c39e74 tmpdir and mktmpdir are two verry different things
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
023bfefc67 Add ungated invocations
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
7d81f93496 Add test for interactively answering no
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
fb73b39976 Add tests for interactively answering yes
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
2f3adf6176 Add tests for when persistence file already exists
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
1c9533087d Test when --accept-license is used
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Clinton Wolfe
e3857a8783 Sketch of functional test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-11 10:30:46 -04:00
Miah Johnson
ac78feb090 Remove list_data_series_by_name.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-11 00:41:09 -07:00
Miah Johnson
56a5c80bf5 Rebuild the core telemetry interface.
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-04-09 16:58:40 -07:00
Clinton Wolfe
066ed01259 Update winrm no-such-transport test to not use kerberos, which we do now support
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-04-09 15:43:37 -04:00
Clinton Wolfe
2b30646642 Merge branch 'cw/attrs-rename-cli-option' into 3-stable 2019-04-09 12:10:53 -04:00
Clinton Wolfe
b701317616
Merge pull request #3879 from inspec/cw/attrs-rename-cli-option
Attribute->Input Rename: Rename cli option
2019-04-09 11:46:29 -04:00
Miah Johnson
8435990722
Merge pull request #3899 from inspec/sp/crontab-path-update
crontab: Add validation for path param
2019-04-04 17:26:13 +00:00
Aaron Lippold
1e9f8fd018 Merge branch 'master' of https://github.com/inspec/inspec into al-mitre/more-permissive-than
Signed-off-by: Aaron Lippold <lippold@gmail.com>
2019-03-28 15:50:16 -04:00
Clinton Wolfe
2f5c063e08 Add 'passthrough' field
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-28 01:10:25 -04:00
Clinton Wolfe
a616205dfc Add failing tests for moving the passthru logic to json-automate
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-28 01:07:41 -04:00
Clinton Wolfe
4b96929bf5 Modernize automate output test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-26 10:44:01 -04:00
Miah Johnson
6ce349dcde
Merge pull request #3873 from inspec/cw/config-add-caching
Add caching to Inspec::Config
2019-03-21 10:37:06 -07:00
Stuart Paterson
97f6f232c8
Replace single-quoted static string.
Signed-off-by: Stuart Paterson <spaterson@chef.io>
2019-03-21 16:24:10 +00:00
Stuart Paterson
5accfa5391
Add protection for crontab resource path and document it.
Signed-off-by: Stuart Paterson <spaterson@chef.io>
2019-03-21 15:49:00 +00:00
Clinton Wolfe
789fca2520
Merge pull request #3889 from devoptimist/decouple_tests
Decoupling test profiles from example profiles
2019-03-20 11:07:30 -04:00
Aaron Lippold
a2a86860d6 This adds the more_permissive_than?(mode) matcher to the file resource.
Fixes #3893

Signed-off-by: Aaron Lippold <lippold@gmail.com>
2019-03-18 18:10:13 -04:00
devoptimist
2d49f39adc moved example tests into their own sub dir, and reused examples_path variable
Signed-off-by: devoptimist <sbrown@chef.io>
2019-03-18 15:15:32 +00:00
Keith Walters
c2bd0616fe Allow http resource to follow redirects
By specifying a `max_redirects` attribute, the `http` resource worker
will follow any HTTP Redirect response (301, 302, etc...) up to the
limit defined by this attribute. For a local worker, exceeding that
limit will raise a `FaradayMiddleware::RedirectLimitReached` exception.
For a remote worker, the curl command will exit without populating the
`status` and `body` properties.

Signed-off-by: Keith Walters <keith.walters@cattywamp.us>
2019-03-16 20:54:52 -04:00
devoptimist
94d80f6c8f Decoupling test profiles from example profiles
Signed-off-by: devoptimist <sbrown@chef.io>
2019-03-14 00:32:13 +00:00
Clinton Wolfe
c580b695c7
Merge pull request #3842 from inspec/ja/fix-iis-app-pool-resource
iis_app_pool: Fix PowerShell JSON parsing error
2019-03-11 13:52:07 -04:00
Clinton Wolfe
3cce8ba705 Replace attrs with input-files in remaining tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-08 12:40:33 -05:00
Clinton Wolfe
04b26dd417 Add failing functional tests for --attrs -> --input-file
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-08 11:37:38 -05:00
Clinton Wolfe
f7202c229b Add caching to Inspec::Config
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-03-06 14:59:06 -05:00
Jerry Aldrich
66a343555b iis_app_pool: Fix PowerShell JSON parsing error
This works around a current bug in PowerShell where the output cannot be
parsed as JSON.

The `-Compress` flag does not affect the validity of the data but only
the appearance of the string.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-02-28 12:04:59 -08:00
Clinton Wolfe
52f6351f84 Adjust regexes for credset name and add tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-27 15:14:27 -05:00
Clinton Wolfe
7328e82ae6 Implement credential set loading
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-27 15:14:27 -05:00
Clinton Wolfe
07ee1c3bb5
Merge pull request #3814 from inspec/tas50/kitchen
Update the integration tests to use dokken-images and newer Chef technologies
2019-02-27 14:43:21 -05:00
Clinton Wolfe
ef18081dfe Merge branch 'cw/attrs-rename-classes-methods'
Accidentally merged cw/attrs-rename-default-attribute into cw/attrs-rename-classes-methods, intended to go to master.
2019-02-26 15:38:20 -05:00
Clinton Wolfe
ac41a6ae20
Merge pull request #3811 from inspec/cw/attrs-rename-classes-methods
Attribute->Input Rename:  Rename Classes and Methods
2019-02-25 18:02:11 -05:00
Clinton Wolfe
c9e8716310 Change two more mentions of DEFAULT_ATTRIBUTE
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-22 10:10:50 -05:00
Clinton Wolfe
24e8c0a6dd Replace DEFAULT_ATTRUBUTE, unit test for it passes
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-22 10:05:31 -05:00
Jerry Aldrich
0684cda6c6 Suppress warnings in unit test output
This does the following:
  - Captures warning for lack of `--sudo` with `--sudo-password`
  - Captures warnings for transformation of URL target in url fetcher
  - Changes deprecated `supports:` syntax to use new syntax

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-02-22 00:10:39 -08:00
Clinton Wolfe
947cf32307 Fix version test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:44:25 -05:00
Clinton Wolfe
491ec001a2 Fix bad class name in unit test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:10 -05:00
Clinton Wolfe
1dab1c1bd5 Skip a test related to input override and profile inheritance; we know this is in flux
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:10 -05:00
Clinton Wolfe
c28c244f16 Fix a handful of functional tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:10 -05:00
Clinton Wolfe
f7d58ad92c Replace most mentions of attribute with input in test/
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:10 -05:00
Clinton Wolfe
4f361bfc56 Replace most mentions of Attribute (titlecase) in lib and test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:10 -05:00
Clinton Wolfe
ce99624095 Renamed AttributeRegistry->InputRegistry
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:09 -05:00
Clinton Wolfe
a1982a5f8b First pass on renaming attribute->input, unit test passes
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-20 20:41:09 -05:00
Tim Smith
0fe5880c5d Add comment regarding the postgresql pin
Basically this avoids sous-chefs breaking inspec tests by accident

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-14 14:02:06 -08:00
Clinton Wolfe
cbf1b665f8 Fix typo in require
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-14 12:37:27 -05:00
Clinton Wolfe
fc448ed6f1 Rename attribute_registry to input_registry
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-14 12:37:27 -05:00
Clinton Wolfe
c538eae2df Rename objects/attribute to objects/input
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-14 12:37:27 -05:00
Tim Smith
68ff8d8b43 Update what we expect for the x509 request
The new built in chef resource creates it a bit differently than the legacy cookbook resource did

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 22:00:00 -08:00
Tim Smith
4b3095dac2 Further modernize the cookbook and remove legacy setup
Remove container setup that comes for free with the dokken containers now
Use the new openssl resource names
Remove all the encoding statements that even rubocop doesn't recommend anymore
Remove some compatibility with centos-5 and ubuntu 15.10

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 21:50:33 -08:00
Tim Smith
772244c12a Use the latest Chef 14 in testing and nuke windows/openssl cookbooks
All the windows / openssl resources are built into Chef now.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 18:04:43 -08:00
Tim Smith
097e2deedc Don't include the apt recipe over and over again in the recipes
We run apt_update once with chef and we already update the cache directly on the container at start. We don't need to try to do the same thing 3 other times.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 17:19:55 -08:00
Tim Smith
55a8f752f9 Remove deps from the Berksfile that are in the metadata
There's no need for this. Never has been.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:28:16 -08:00
Tim Smith
b07aed1c73 Use the platform_family? helper
It's much simpler than listing every single possible platform and it makes this actually work on Oracle

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:06:30 -08:00
Tim Smith
ec29727838 Let Chef handle the root_group itself
We have node['root_group'] and Chef will apply this on its own.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:04:53 -08:00
Tim Smith
6c706f0715 Don't use apt/yum in the kitchen configs either
There's really no need for this. It just slows down the run

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:03:53 -08:00
Tim Smith
2f89081f53 Remove direct usage of apt/yum cookbooks in the os_prepare cookbook
We have an apt_update resource now
Yum cookbook was never needed
dnf is now supported on Fedora out of the box

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:02:41 -08:00
Tim Smith
e826eae292 Move the template out of the default directory
This is a Chef 11 thing.

Signed-off-by: Tim Smith <tsmith@chef.io>
2019-02-13 16:01:17 -08:00
Clinton Wolfe
66d0d146b2 Rename test control files
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-11 12:10:08 -05:00
Clinton Wolfe
785888a209 Rename functional tests, unit tests, and test fixtures
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-08 18:23:01 -05:00
Clinton Wolfe
fd3c3df8c1 Add failing functional tests for more piped config subcommands
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-08 13:18:08 -05:00
Jerry Aldrich
273597d371 Remove encoding: utf-8
Thanks @miah

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-02-07 13:04:58 -08:00
Jerry Aldrich
7134989eba Respond to @clintoncwolfe's feedback
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-02-07 11:15:01 -08:00
Jerry Aldrich
a6f74a33b2 Fix Inspec::Config regression in Inspec::Backend
With the changes in PR #3750, `Inspec::Backend.create` needs to support
both being passed a Hash and being passed an Inspec::Config. This adds
a line to convert a passed Hash to an Inspec::Config.

This also adds unit tests for Inspec::Backend because they were missing.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-02-07 01:00:05 -08:00
Clinton Wolfe
4cf9e23e9d Move most test fixture profiles under attributes/
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 18:10:19 -05:00
Clinton Wolfe
05a011f6ff
Merge pull request #3629 from inspec/cw/init-plugin
inspec-init plugin: generate inspec plugins
2019-02-06 17:40:59 -05:00
Clinton Wolfe
02cb799ee6 Rename free to free_kb
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 14:01:04 -05:00
Clinton Wolfe
5bbd4c16d6 Add size_kb, and correct Powershell code to return KB for both total size and free space, rather than total in GB and free space in bytes
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 14:01:04 -05:00
Clinton Wolfe
fef637a6c6 Add percent_free property
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 14:01:04 -05:00
James Massardo
c1a9de7003 update helpers and mocks so tests run successfully
Signed-off-by: James Massardo <jmassardo@chef.io>
2019-02-06 14:01:04 -05:00
James Massardo
83c0c18fca Add free space and type to filesystem resource
Signed-off-by: James Massardo <jmassardo@chef.io>
2019-02-06 14:01:04 -05:00
Clinton Wolfe
5a5eb4a9a5
Merge pull request #3750 from inspec/cw/cred-set-support-02
Formalize Config File
2019-02-06 13:28:30 -05:00
Clinton Wolfe
f760c54cba Move plugin activate() method into Activator class
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 12:18:18 -05:00
Clinton Wolfe
a349f91e52 Make UI not print emphasis by default
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-06 11:58:10 -05:00
Clinton Wolfe
cb3e0aca60 Test for piped config, and fix to make it work
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:27:49 -05:00
Clinton Wolfe
d31a13efc6 Two more test files needed mock updates
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
ea78e2f3c5 Skip test that had always been broken; how was this every passing?
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
2186179061 Allow passing opts to mock Config; and use mock config in one more place in test helper
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
b057b0dc01 Correct formatting test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
4507af4c29 More things
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
e054be7d0d Comment on doubt of truthiness
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
6c20f312fd Add bang to validate_reporters in tests, too
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
06399fbc0f Add clarifying comments to unit test for malformed json test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
2f16146bce Fix a unit test
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
bb6a73d7d4 Create config object and units tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
6ed046bb23 More things
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
102505a937 Use new config file system to read config
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:24:26 -05:00
Clinton Wolfe
f1f5b27237 Create config object and units tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-02-01 14:23:55 -05:00
Clinton Wolfe
36ce34be98 Passing functional tests for using plugin disable options
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-31 22:52:19 -05:00
Clinton Wolfe
761944b3ce
Merge pull request #3770 from inspec/ja/fix-bad-name-check
More meaningful error when including controls from a missing dependency
2019-01-31 16:14:35 -05:00
Clinton Wolfe
253f7f8c72
Merge pull request #3757 from inspec/ja/fix-plugin-load-on-help
Add `--help` to CLI plugin activation criteria
2019-01-31 15:54:04 -05:00
Clinton Wolfe
a1af115e26 Add eval to unit tests; break up codegen test into individual elements
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-30 14:29:18 -05:00
Jerry Aldrich
94d8d11120 Respond to feedback
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-30 09:26:04 -08:00
James Stocks
5868eb52e7 Fix Inspec::Attribute.to_ruby and add unit test
Signed-off-by: James Stocks <jstocks@chef.io>
2019-01-30 17:15:22 +00:00
Jerry Aldrich
f0c207dad9 Fix undefined method error from inspec check
This changes the error message from using a bad reference in
`include_controls` from:

```
NoMethodError: undefined method `profile' for nil:NilClass
```

To one detailing that the profile cannot be loaded since it isn't listed
as a dependency.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-29 22:36:27 -08:00
Clinton Wolfe
4d7cbc624c Test and fix case in which both :default and :value are provided
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-28 00:42:27 -05:00
Clinton Wolfe
6b5a951ccf Update value/default usage in test files
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-28 00:42:27 -05:00
Jerry Aldrich
b801bbca1c Consolidate tests and verify output contents
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-27 17:46:42 -08:00
Jerry Aldrich
7f4560ea7c Add --help to CLI plugin activation criteria
This ensures that all the following result in the same CLI output:
  - `inspec`
  - `inspec help`
  - `inspec --help`

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-26 12:47:27 -08:00
Clinton Wolfe
ee76c5bb54
Merge pull request #3740 from inspec/ja/adopt-3419
iis_app_pool:  Fixes error with 'should not exist'
2019-01-25 11:56:10 -05:00
Jerry Aldrich
71eca8c4ed Add \n to @TheLonelyGhost's mocked command
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 15:08:25 -08:00
David Alexander
d5dbae2efd Updates stub for IIS App Pool unit test
Signed-off-by: David Alexander <opensource@thelonelyghost.com>
2019-01-22 15:08:25 -08:00
David Alexander
53e3533b8c Fixes unit test for to_s of iis_app_pool
Signed-off-by: David Alexander <opensource@thelonelyghost.com>
2019-01-22 15:08:25 -08:00
Jerry Aldrich
e80e7d872e Mock files used for virtualization resource tests
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
f7e8a0c80c Add deprecation check for processes.list
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
3b8da7957d Mock missing_file in NGINX resource tests
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
62cfcf0ebe Add mock command for oracledb_session
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
4c0a582539 Mock mysql related command
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
3fe7091254 Wrap deprecated ServerSpec matchers in procs
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
5ea640a2cd Remove nil check in chocolatey_package test
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
c1547ee898 Remove deprecated methods from shadow test
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
a0b76defb0 Evaluate runner.run in a proc
This removes the following line from the test output:

```
Test Summary: 0 successful, 0 failures, 0 skipped
```

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
2f20370426 Change .must_equal nil to .must_be_nil
`.must_equal nil` is deprecated

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
bc56b2275a Use mocked file instead of an empty file call
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
b440e3f132 Change DLS to DSL
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Jerry Aldrich
c348a2032a Remove test that uses deprecated ppa resource
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 13:09:17 -08:00
Clinton Wolfe
2f42803a90
inspec check: Allow 'Proprietary' as a valid license term.
Signed-off-by: James Stocks <jstocks@chef.io>
2019-01-22 15:50:38 -05:00
Clinton Wolfe
ed460c7869
Fix SSL tests by allowing multiple cipher counts
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-22 15:00:49 -05:00
Jerry Aldrich
5c4be8de87 Fix SSL tests by allowing multiple cipher counts
The value of `ciphers` is 681 on my localhost, but 993 on Travis.

This modifies the test to allow both values.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-21 15:02:58 -08:00
Jerry Aldrich
10f0393683 Fix AWS tests found during ChefStyle spike
This fixes some style issues and fixes a duplicated test method name.

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-21 13:05:46 -08:00
Clinton Wolfe
0a131e4945
Centralized Deprecation Facility #3690
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-17 15:08:16 -05:00
James Stocks
ad4df90912 Allow 'Proprietary' as a valid license term.
Currently our supported profiles output a warning for every instance of `inspec check` because our license metadata `Proprietary, All rights reserved` is not considered valid.
This commit allows for a string beginning with `Proprietary` to be considered valid, as well as any valid SPDX value.

Signed-off-by: James Stocks <jstocks@chef.io>
2019-01-16 11:19:55 +00:00
Clinton Wolfe
48e2188047 Remove class var for testing, replace with tramp data
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-16 00:24:19 -05:00
Clinton Wolfe
212fe36b76 Add debug output to ignore actions
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-15 23:49:20 -05:00
Jerry Aldrich
f5ec7c9c65 Fix style/RuboCop on cw/deprecation-facility
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2019-01-14 13:57:59 -08:00
Clinton Wolfe
3c5a26ecfa Move attribute unit tests to a more expectced location
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-11 17:23:57 -08:00
Clinton Wolfe
066fde854d Allow empty opts to functional test helper run_inspec_process
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-11 16:42:46 -08:00
Clinton Wolfe
c169119895 linting
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
c43e401dda Fix default exit code logic to properly use value in Inspec::UI
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
b2bb8c062b Last polish on the unit tests, all pass
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
642d8d61b6 Funcitonal tests pass; some unit tests fail
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
f5ab0d9125 Config file validation in place
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
2121667e31 Starting implementation, global method is wired up
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
916000d10f Sketch of unit tests
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:54:50 -08:00
Clinton Wolfe
aea7052a5c
Fix extra '&&' in windows functional tests, add diagnostics (#3717)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-10 23:52:22 -08:00
Clinton Wolfe
ad84987357 Fix spurious ampersands in windows invocation
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-09 17:16:44 -08:00
Clinton Wolfe
d6b5bdef09 Add diagnostics to the functional test helper
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-09 17:14:42 -08:00
Miah Johnson
15162bf920 Add resources for aws_billing_report and aws_billing_reports. (#2838)
Signed-off-by: Miah Johnson <miah@chia-pet.org>
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-09 16:06:48 -08:00
Clinton Wolfe
25119168de
Testing: aim json export inheritance test at a local child profile that we control (#3696)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2019-01-05 12:21:34 -05:00
Tim Smith
b5ff949059 Update Ruby versions used for testing; fix Travis CI issues (#3678)
Signed-off-by: Tim Smith <tsmith@chef.io>
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-12-20 22:17:07 -05:00
Amit Saha
bbc07f5f11 aws_sqs_queue - new resource (#3674)
Signed-off-by: Amit Saha <amitsaha.in@gmail.com>
2018-12-20 14:33:21 -05:00
Jerry Aldrich
91fe4ad03b Fix labels on Docker containers (#3673)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-12-20 12:31:13 -05:00
Noel Georgi
f1fbd518e5 Expose additional WinRM options for transport, basic auth, and SSPI (#3669)
Signed-off-by: Noel Georgi <git@frezbo.com>
2018-12-20 11:57:53 -05:00
Jerry Aldrich
8019b2c487 Modify URL fetcher to accept URI (#3633)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-12-12 13:05:51 -05:00
Clinton Wolfe
c0a46cf841
UI Object for for CLI work (#3618)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-12-12 11:44:16 -05:00
Clinton Wolfe
fefa6c2ecd
Plugin Type: DSLs (#3557)
This PR adds 5 closely related plugin types, which allow a plugin to implement new DSL methods / keywords. The mechanism to activate the plugins are all very similar - basically, in a particular location in the code, `method_missing` is implemented, and is used to activate the particular type of DSL being requested.

4 of the DSL plugin types relate to code that could appear in a profile control file.

* outer_profile_dsl plugins allow you to extend the code in profile Ruby files that appear outside `control` or `describe` blocks.
* control_dsl plugins allow you to extend the code within `control` blocks.
* describe_dsl plugins allow you to extend the code within `describe` blocks.
* test_dsl plugins allow you to extend the code within `it`/`its` blocks.

Finally, the `resource_dsl` plugin allows you to extend the code used within custom resources.

Basic unit tests are provided to prove that the plugin types are properly defined.

A simple plugin fixture defining DSL hooks (based on favorite foods) is included, and is exercised through a set of functional tests.

The plugin developer docs are updated to describe the 5 DSLs.

*Note*: Implementing a plugin using any of the DSL plugin types is experimental.  The contexts that are exposed to the DSL methods are private and poorly documented. The InSpec project does not claim the APIs used by these plugin types are covered by SemVer.  Plugin authors are encouraged to pin tightly to the `inspec` gem in their gemspecs.

Motivation for this plugin comes from the desire to allow passionate community members to implement things like "2 out of 3" tests, example groups, improved serverspec compatibility, "they/their" and other "fluency" changes, as well as make it possible for future work by the InSpec team to be implemented as a core plugin, rather than a direct change to the main codebase.
2018-11-29 14:14:06 -05:00
Clinton Wolfe
b3fafab1e6 Add aws_eks_cluster resource (#3582)
* add aws_eks_cluster

Signed-off-by: Timothy van Zadelhoff
timothy.inspec@theothersolution.nl

* disable ABC check on fetch_from_api

Signed-off-by: Timothy van Zadelhoff <timothy.inspec@theothersolution.nl>

* add status predicates

* Change docs for status attribute

Signed-off-by: Timothy van Zadelhoff <timothy.inspec@theothersolution.nl>

*     Add integration tests

    Signed-off-by: Timothy van Zadelhoff <timothy.inspec@theothersolution.nl>

* Adjust EKS build code to almost work

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>

* EKS only uses private subnets - integration tests pass

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>

* Correct AWS Exception class for resource search miss in unit test

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>

* Update unit test to reflect AWS resource-standard miss behavior, returning nil for most properties

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-11-27 16:54:47 -05:00
mhackethal
b67236e485 package: fix package detection on windows (#3607)
* Update package.rb to solve issue #3361

Update the windows package search regex.
According to issue #3361

* Update package.rb
Fix trailing spaces
* Update helper.rb

update sha for get-item-package. To fix the issue #3361
Signed-off-by: markus hackethal <mh@it31.de>
2018-11-27 13:21:25 -05:00
mhackethal
86cf55382b filesystem: improve Windows support (#3606)
* Improve filesystem.rb to support windows

improve filesystem.rb to support windows.
Split into 2 classes LinuxFileSystemResource / WindowsFileSystemResource
Add filesystem to verify a FS-type ( currently not for linux because missing test server )
Size on Windows is converted to GB - discussion about this welcome

update to reflect also windows os

* Create get-wmiobject-filesystem
* Delete get-wmiobject-filesystem

* Fix the testing code for filesystem.
Change its 'filesystem' to 'type' according to recommendation from @miah
Signed-off-by: Markus Hackethal <mh@it31.de>
2018-11-19 13:32:59 -05:00
Clinton Wolfe
e4afadfc3f Revert setting RSpec expectation syntax to 'should' mode (#3620)
* Revert "Silence RSpec 'should' Warning (#3560)"

This reverts commit 7c611a4c24.

* Add comment with link to reverted fix

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-11-16 17:04:04 -05:00
Clinton Wolfe
35ad5d5528 Improvements to the functional helper run_inspec_process (#3603)
* Add run_inspec_process, with JSON handling, to functional helper
* Add ability to run a plugin to functional helper
* CWD fix for run_inspec_process
* Add support for running a plugin within a functional test
* Move plugin functional helper code to main func helper file
* FuncHelper: Do not send reporter or lock options if command is not exec

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-11-16 17:03:40 -05:00
Clinton Wolfe
3c8697e5e2 Create a class to handle the plugins.json file (#3575)
* unit tests for plugin conf file class, all skip
* File path stuff works
* Validation works
* Add works
* Added remove_entry
* Save works - ready to refactor others
* Rework Loader to use ConfigFile
* Modify loader and installer to use the config file class
* linting

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-11-16 17:03:09 -05:00
Harold Dost
202bec7641 Adds protection against zipslip vulnerability (#3604)
- Adds associated tests to validate paths can't be used.

Relates to: #3599
Signed-off-by: Harold Dost <h.dost@criteo.com>
2018-11-13 14:33:34 -05:00
Fernando Alexandre
8b089ea1e1 Fixes #3546 (#3592)
* When pty is used not having --no-pager makes inspec hang during the test
* Updated tests

Signed-off-by: Jose Alexandre <jose.alexandre@worldfirst.com>
2018-11-13 14:33:08 -05:00
Timothy van Zadelhoff
5739cb2d6b aws_security_group: Query against other security group ids in allow_* matchers (#3576)
* add security-group to security-group rules
* update docs
* Add integration tests for security-group to security-group rules
* rubocop fix
*     Add one security group rule, with position.
* make control fit description

Signed-off-by: Timothy van Zadelhoff <timothy.inspec@theothersolution.nl
2018-11-13 13:25:33 -05:00
Jerry Aldrich
6ba4aaf630 Add Git SSH and HTTP basic auth support to inspec exec (#3562)
* Add support for `git@` and HTTP basic auth

This adds support for the following:

```
inspec exec git@github.com:private/example_profile
inspec exec https://username:token@github.com/private/example_profile
inspec exec https://username:password@webserver/private/example_profile
```

This also uses the Git fetcher when the URL ends in `.git`. Example:

```
git config credential.helper cache
git ls-remote https://github.com/private/example_profile.git
inspec exec https://github.com/private/example_profile.git
```

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

* Add documentation for `inspec exec` usage

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

* Add tests for Git fetcher and `inspec exec`

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

* Add `opts` to branch of Git fetcher resolve logic

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

* Modify Git example comments

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

* Force `parse_uri` to attempt a parse

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-11-08 15:55:15 -05:00
mrshanahan
cebe044a68 Update iis_site bindingInformation construction and add tests. (#3490) (#3492)
Signed-off-by: Matt Shanahan <mrshanahan11235@gmail.com>
2018-11-08 13:42:59 -05:00
Rachel Rice
de5b332feb Allow add_test to accept negation (#3586)
* Allow add_test to accept negation
This will allow for negated tests to be generated with add_tests.
* Fix rubocop violation
* Add optional options hash

Signed-off-by: Rachel Rice <rrice@chef.io>
2018-11-08 12:48:12 -05:00
Mark Hughes
45926ef63a Added xml resource support for ints, bools, and string responses (#3583)
Methods like…

* `count()` return `Integer` values
* `boolean()` return `TrueClass`/`FalseClass` values
* `concat()` return `String` values

…but threw exceptions because those types weren't supported.

This adds support to the `xml` resource, and adds tests to verify some of those examples.

Signed-off-by: Mark Hughes <greenantdotcom@users.noreply.github.com>
2018-11-08 12:47:18 -05:00
James Stocks
5da1180780 Add only_if to Inspec objects (#3577)
* Add only_if attr to Inspec::test
* Add only_if attr to Inspec::Control

Signed-off-by: James Stocks <jstocks@chef.io>
2018-11-08 12:46:19 -05:00
Jared Quick
d33d189d93
Create appvayor workers for Windows functional tests. (#3397)
* Add more windows functional tests and create some appvayor workers.
* Fix uuid test for automate

Signed-off-by: Jared Quick <jquick@chef.io>
2018-11-08 12:00:14 -05:00
Clinton Wolfe
7c611a4c24 Silence RSpec 'should' Warning (#3560)
* Failing functional test for RSpec should deprecation
* Configure RSpec to allow .should calls
* Remove cruft from test files where we needed to filter deprecation warning

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-11-07 13:59:48 -05:00
Ksenia
c07ec59070 Add 17 hexadecimal characters support aws_vpc (#3518) (#3564)
aws_vpc: accept 17 hexadecimal characters for vpc_id 

Signed-off-by kchistova <kchistova@gmail.com>
2018-11-05 10:01:16 -05:00
David Alexander
83d382c965 Fixes (some) ruby warnings related to functional tests (#3561)
* Fixes (some) ruby warnings related to functional tests
* Removes unneeded `Dir.tmpdir` from test

Signed-off-by: David Alexander <opensource@thelonelyghost.com>
2018-11-05 09:59:01 -05:00
David Grizzanti
d8c90df4df Doc typo fix (#3551)
Signed-off-by: Dave Grizzanti <david_grizzanti@comcast.com>
2018-11-05 09:11:23 -05:00
Jared Quick
0fc83871a1
Fix functional tests. (#3572)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-11-02 12:52:54 -04:00
Jared Quick
d9767884ff
Allow help args after Thor commands (#3553)
* Allow help args after thor commands.
* Add more testing and clarification.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-11-01 13:04:59 -04:00
Jared Quick
0f42b31016
Allow end of options during Thor array parsing (#3547)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-30 06:32:16 -04:00
Christoph Hartmann
27b80e0998 ✓ adds additional checks for vendored profiles (#3362)
* ✓ adds additional checks for vendored profiles

This PR adds additional checks to verify if:
- inspec.yml and inspec.lock dependencies are out-of-sync
- complains about a missing lock file if we have dependencies defined

* skip if legacy profile path is used
* Fix unit tests.
* Force static sha256 for lock files and protect from unnamed depends.
* Add vendor profiles for checks. Windows downloads with different sha256.
2018-10-25 14:44:29 -04:00
Stuart Paterson
f64da78edb Adding inspec init profile for GCP. (#3484)
* Adding inspec init profile for GCP.
* Adding final newline, thanks rubocop.
* Ensure README headings are at the same level.
* Move OS-specific default profile to new location
* Enforce os-platform restriction on default profile template
* Use profile templates in subdirs.
* Updates to address PR feedback after rebasing from #3491.
* Alter test setup to properly use YAML

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-10-25 14:16:31 -04:00
Jared Quick
d40dc7c41f
Update to safe navigation exit code skip search. (#3541)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-24 15:08:07 -04:00
Andrey Klyachkin
f835c24e89 ksh support (#3533)
Add ksh (Korn Shell) resource
2018-10-23 09:16:24 -04:00
James Stocks
7c58285eb6 New resource to work with Windows security identifiers (SIDs) (#3405)
* Resource for a Windows Security Identifier (SID)
* Integration tests for security_identifier resource
* Address rubocop violations
* Improve security_identifier from PR feedback
* Update security_identifier tests
* Improve security_identifier unit tests
* Fix unit tests fpr security_identifier resource
* More security_identifier unit tests
* Add docs page for security_identifier resource
* Fix issues with documentation
* Improve docs
Link to Microsoft reference page, and use their term 'trustee' instead of 'entity' where applicable.

* Change exists to exist
* Test appveyor file changes.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-19 09:01:00 -04:00
Miah Johnson
7a6119e7a6 Add missing tests for groups resource, document members property, and assorted fixes. (#3467)
* Add missing tests for groups resource, document members propery, and assorted fixes.

Update existing documentation for group resource.
Add documentation for groups resource.
Update group resource tests to test members property.
Change groups resource members property to have simple style. (this
ensures members is a single array)
remove deprecated have_gid propery.
change `if !` to `unless`
Remove early return from members method. This prevented members from
working correctly on any OS other than Windows.
Add missing tests for the groups resource.
remove tests for has_gid

Signed-off-by: Miah Johnson <miah@chia-pet.org>

* Fix comments

Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-18 16:48:30 -04:00
Clinton Wolfe
ff2be7be56 FilterTable: allow Strings or Symbols as fields (#3481)
* Allow strings or symbols to be used interchangeably in filtertable criteria; improve error message
* rubocop
* Update test count

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-10-17 09:29:58 -04:00
Jerry Aldrich
7313eb7819 style: Fix quotes/style on the docker resource (#3516)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-10-17 09:14:19 -04:00
Jared Quick
2bbcdbde9b
Inspec 3.0 (#3512)
* Remove deprecated yumrepo. (#3435)

* Remove deprecations for cli `--format` and metadata.rb (#3452)

* Remove deprecated database_helpers stderr/stdout methods.
Update deprecation text for processes/apache.

* Remove deprecations for `--format` and metadata.rb
Remove deprecated `format` code.
Remove deprecated code test and change json-config format test to use
reporter.
Remove deprecated metadata.rb code
Remove deprecation notice for old supports syntax.
Deprecate metadata.rb from source_reader
Remove rubocop disables as they are no longer required for this code block.
Remove deprecated legacy metadata.rb mock profiles.
Remove deprecated metadata.rb profile tests.
Remove deprecated yumrepo test.

* Allow inspec-3.0 branch to be tested.
* Allow appveyor to test inspec-3.0 branch
* Change runner tests to use reporter rather than format.
Remove deprecated `supports: linux` tests.

* Remove skip from inherited profiles from showing up in reporting (breaking change) (#3332)

* Skip loading dependency profiles if they are unsupported on the current
platform.

Skip loading dependencies if they are unsupported on the current
platform.

Wrap our log and next in a conditional checking if the platform is
supported.

Change a `if !` into a `unless`

Check if the backend is a Train Mock Connection and if so say that the
profile does support the platform.

While iterating through tests being loaded skip when the platform is
unsupported.

We now log a WARN when a profile is skipped due to unsupported platform,
so lets check that.

Modified existing test to log that there are 0 skipped tests, instead of
2.

Add functional test that loads profile-support-skip with a json reporter
to check that our controls are not loaded and that stderr contains our
warning.

* Rather than iterating through each test return before recursion if the platform is
unsupported.

* Resolve tests using a supported platform different from testing platform

Add a control to `test/unit/mock/profiles/complete-profile` that would
work on any OS with a Internet connection. This allows the profile
to execute on any OS with success. `filesystem_spec.rb` was a control
that would only work on Linux and some BSD's.

We want profile tests to consistently work across development and testing
platforms, and not get 'skipped' in some cases.  Travis-CI tests on Linux,
Inspec Dev team uses Linux and MacOS, Appveyor tests on Windows

Also Updated `file_provider_test.rb` for `complete-profile` content changes.

If you `MockLoader.load_profile` on a unsupported platform you might not
hit the usual skip. Lets handle situations where the tests array in
Profile#load_checks_params could be nil.

* Use safe navigation rather than checking if tests is nil.
Update tests to point to unsupported_inspec and account for WARN changes.
Make unsupported_inspec profile support os-family 'unsupported_inspec'

* Fix skip bug when using include/require controls. (#3487)

* Fix skip bug when using include/require controls.
* fix test and feedback.

* Remove need for UUID detection for Automate report (#3507)
* Add json metadata for skipped profiles (#3495)

* Add skip metadata to json reports
* Unify skip messages.
* Update with status field.
* Add testing.
* Fix tests.
* lint
* Add skip exit codes for profile skips.
* Update website for 3.0 launch

Add `plugins` to sidebar.
Change 2.0 -> 3.0 in slim files.
Update 3.0 features list.
* Fix comments
* Update float to numeric.
* Change Float to numeric.
* updated feature list and impact doc
* Change "What's new in InSpec 3.0" -> "Announcing InSpec 3.0"
* Bump VERSION to 3.0.0 (#3511)

* Remove 3.0 testing checks.

* Fix azure link.
2018-10-15 18:25:27 -04:00
Jared Quick
cccad057c2 Update the text on the generic default attribute (#3508)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-15 12:15:17 -04:00
Jerry Aldrich
0b0a0a4d48 Change Inspec to InSpec where appropriate (#3494)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-10-15 12:09:46 -04:00
Jared Quick
7a52419b64
Set a static node GUID for travis. (#3497)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-11 21:14:30 -04:00
Clinton Wolfe
de5403d352 Plugins: Filter Plugins During Search and Install (#3458)
* Unit and functional tests for a reject list facility
* Implementation of plugin reject facility
* Initial draft of reject list
* Add option to search to hide test fixture by default
* Fix test
* PR feedback

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-10-11 14:05:57 -04:00
Jared Quick
ba37ca1875
Fix error on empty attributes yaml (#3485)
* Allow empty attributes param.
* Add warning if invalid attributes.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-11 09:41:36 -04:00
Jared Quick
cbb3b600d9
Fix archive with required attributes (#3468)
* Skip require check unless we are in a exec call.
* Add testing
* Update comment.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-05 16:24:26 -04:00
Jared Quick
cb12ada2fe
Move compliance to v2 plugin (#3423)
* Move compliance pluging to v2 system.
* Update kitchen-inspec to test.
* Add legacy require patsh.
* Fix unit test

Signed-off-by: Jared Quick <jquick@chef.io>
2018-10-04 14:31:39 -04:00
Jonathan Hartman
7451917223 Support finding larger processes on Busybox (#3446)
For larger processes, Busybox's ps displays the vsz and rss columns in
megabytes or gigabytes, with no option I've found to override the behavior.

This change updates the process regex to account for that and converts
the values to kilobytes so they can still be cast as integers.

Signed-off-by: Jonathan Hartman <j@hartman.io>
2018-10-04 14:06:17 -04:00
Jerry Aldrich
d5bb1e5fe9 Fix attribute with empty hash regression (#3454)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-10-02 22:57:25 -07:00
Jared Quick
2490a72c39 Fix plugin gem install code when deps cannot be resolved (#3453)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-28 17:52:51 -04:00
Clinton Wolfe
857b9bb11c Plugins: Support for Train Plugins in InSpec (#3444)
* Unit tests passing for loading Train plugins
* detect works with a train test fixture
* Update fixture install of train-fixture-plugin
* Add functional tests for detect and shell when talking to a train plugin backend
* Update docs to reflect availability of Train plugins
* Functional test for install train plugin from path
* Working install train plugin from path, more tests for installing from odd locations
* PR Feedback

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-09-27 18:46:35 -04:00
Jerry Aldrich
20776b363d Add support for multiple descriptions for controls (#3424)
* Add support for multiple descriptions for controls

This adds the ability to specify multiple descriptions in controls.

Example:

```ruby
control 'my-control' do
  impact 1.0
  title 'My control'
  desc 'A default description'
  desc 'rational', 'I need an example'
  describe file('/tmp') do
    it { should be_directory }
  end
end
```

Many thanks to @jquick for helping me with the unit tests.
* Remove unused `descriptions` method
* Remove unused profile from test mocks
* Respond to feedback

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-09-26 13:28:57 -04:00
Jonathan Hartman
08e3b90f2b Support the Busybox variant of netstat in the port resource (#3425)
Signed-off-by: Jonathan Hartman <j@hartman.io>
2018-09-25 22:40:05 -04:00
Clinton Wolfe
c24b65d98a Plugins: Load all CLI commands on usage on empty invocation (#3428)
* Functional test for usage messaging
* Activate v2 commands on empty CLI invocation for usage messaging

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-09-25 18:51:38 -04:00
Jared Quick
39b3b7135e
Add audit-cookbook integration testing (#3431)
* Add audit integration testing.
* Add some docs and feedback changes.
* Updated integration task to use paramaters and clean it up.
* Fix unit test

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-25 15:53:26 -04:00
Alex Pop
574b04dd4f Grammar correction in error message: use "an" with attribute and unknown (#3439)
Signed-off-by: Alex Pop <apop@chef.io>
2018-09-25 11:13:56 -04:00
Clinton Wolfe
0ced18841f
CLI Plugin Manager SubCommand (#3414)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-09-25 10:29:18 -04:00
Jared Quick
92646dc5c5
Fix v2 loader appveyor issue (#3434)
* Enable appveyor testing.
* Fix inspec plugin test fixture version issue.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-24 17:58:28 -04:00
James Massardo
2af1535f7c Add new resource: aws_ebs_volume (#3381)
* Added support for basic AWS EBS volume testing
* Fix error in exists matcher
* Added EBS resource documentation and requested changes

Signed-off-by: James Massardo <jmassardo@chef.io>
2018-09-21 11:49:28 -04:00
Clinton Wolfe
7963131670 Plugins Installer API (#3352)
* Sketch out in comments the unit and functional tests for the installer
* Make a test fixture gem, v0.1.0
* Add a 0.2.0 version of the test fixture gem, this one with a dependency
* Add a fixture with a pre-installed gem
* Correct test-fixture 0.1.0 gem
* Moockup of installed inspec-test-fixture gems
* Uggh add gemspec files to mock installs
* Update gem fixtures, and add a script that does it for me
* Able to load from and list privately managed gems
# Conflicts:
#	lib/inspec/plugin/v2/loader.rb

* Expanded tests, starting on implementation of installer

# Conflicts:
#	test/unit/plugin/v2/loader_test.rb

* Install plugin from local gem file works
* Writes the plugins.json file; needs refactor
* Gem install works; no version pinning
* Install with pinned version works
* Install from path works
* update works
* Validation for uninstall
* Uninstall from path works
* Uninstaller works on gems
* Add search to installer API.


Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-09-19 17:38:13 -04:00
Jared Quick
15481e2320
Move artifact to v2 plugin (#3406)
* Move inspec artifact to plugins v2.
* Fix freezing statics
* Update artifact test changes.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 20:19:56 -04:00
Martin Logan
242bee9ce6 Update AWS Security Group to work with IPV6 rules. (#3394)
Add inbound_rules_count and outbound_rules_count for total variants

Signed-off-by: Martin Logan <martinloganzz@gmail.com>
2018-09-18 16:21:41 -04:00
Jared Quick
544204a44c
Move inspec init to v2 plugins (#3407)
* Move inspec init to v2 plugins.
* Revert inspec run command env change.
* Allow prefix and env for run_inspec_process.
* Update unit tests to use new functionality.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 15:54:33 -04:00
Jared Quick
94c7ef0df8
Fix gem tests from recent merge. (#3409)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 15:00:26 -04:00
Jared Quick
44c4146a92
Fix json automate render and make the unit tests work. (#3408)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 14:20:48 -04:00
Ben Abrams
0b33644819 adding versions to the gem resource (#3398)
This is useful when you have multiple versions of the same gem installed. It can be leveraged like so:
```
describe gem('rest-client') do
  its('versions') { should include /1.8\.\d+/ }
  its('versions') { should include /2.0\.\d+/ }
  its('versions.count') { should_be eq 2 }
end
```

Signed-off-by: Ben Abrams <me@benabrams.it>
2018-09-18 13:17:10 -04:00
Jared Quick
40e024fa97
Move habitat to v2 plugin. (#3404)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 13:10:07 -04:00
Clinton Wolfe
50ff9f6a24
Plugins: Add support for 'bundles' migration (#3384)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-18 00:00:54 -04:00
Jerry Aldrich
bbc4002b53 Fix profile vendoring on Windows (#3378)
* Fix profile vendoring on Windows

This fixes vendoring on Windows by doing the following:
  - Expanding relative paths (handles `\\`)
  - Ensuring archives after closed after reading (prevents locking)

This also does the following:
  - Removes extra file from testing tar archive
  - Ensures fetching dirs/archives in the local fetcher behaves the same

* Fix profile vendoring on Windows

This fixes vendoring on Windows by doing the following:
  - Expanding relative paths (handles `\\`)
  - Ensuring archives after closed after reading (prevents locking)

This also does the following:
  - Removes extra file from testing tar archive
  - Ensures fetching dirs/archives in the local fetcher behaves the same

* Add vendoring to fuctional testing and fix the tmp path for windows

* Add tests for relative paths and backslashes

* Remove backslashes support in filenames on Linux

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-09-13 20:19:02 -04:00
Jared Quick
927720998c
Add platforms schema command (#3346)
* Add platforms schema command.
* Add functional test.
* Update tests with sorted export.
* Bump train version.
* Fix syntax in tests.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-13 15:36:17 -04:00
Jared Quick
1c12a544c7
Add string impact options for controls (#3359)
* Add impact class which contains all cvss scores.
* Add testing for impact changes.
* Change symbols to strings for impact.
* Update error messages to be more clear.
* Fix test with new sha

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-13 14:14:05 -04:00
Jared Quick
3da7511d36
Fix the compliance target error checks. (#3392)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-13 13:06:02 -04:00
Jared Quick
527571750d
Prevent logs from showing up when running inspec json (#3391)
* Prevent logs from showing up when running inspec json.
* Update it test text.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-13 13:05:10 -04:00
Jared Quick
6445e2c6d5
Add windows functional tests (#3385)
* Add windows functional tests.
* Fix tests for 2012 server.
* Fix windows build script
* Add more functional tests for windows.
* Update comment with TODO.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-12 18:04:16 -04:00
Jared Quick
4eaf2fc540
Populate code for inspec json inheritance (#3386)
* Add a code fallback for inherited profiles.
* Add functional testing.
* Push lint fixes
* Fix inspec.lock file
* Fix lint and break from loop

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-12 18:02:24 -04:00
Jared Quick
ac106a090e
Implement InSpec global attributes (#3318)
* Add yml attribute option.
* Add type matching.
* Add testing profile for global attributes testing all types.
* Allow attributes to be called within a control block.
* Fix attribut test issues and allow value to be set at runtime.
* Allow setting attr value after creation.
* Move attributes to global namespace.
* Move attributes to a singleton object.
* Add unit and updated functional testing.
* Rename attributes to attributes_test so the testhelper picks it up.
* Add attribute object tests and error types.
* Update with feedback changes.
* Remove extra line.
* Move attribute registry class file.
* Add documentation for attributes
* Rename rspec_extensions.
* Add some failing functional tests.
* Update docs and fix typos.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-12 16:42:58 -04:00
Martin Logan
8e780cd912 Fixing AWS integration tests. (#3374)
Obvious fix.
2018-09-10 14:38:57 -04:00
Christoph Hartmann
0e0b808e9b enforce utf encoding for cli output (#3376)
* enforce utf encoding for cli output
* add profile with wrong character set

Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
2018-09-10 14:37:43 -04:00
Jared Quick
30e43c294d
Remove any inspec.lock file before testing vendoring. (#3377)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-10 10:15:16 -04:00
Jerry Aldrich
9d031053ea Various improvements to vendor command (#3286)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-09-06 23:28:08 -04:00
Jared Quick
76b453eee9
Allow target-id passthrough (#3320)
* Allow uuid passthrough
* Update flag to be target-id.
* Updated to use proper formatting for header.
* Fix empty line after cli banner.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-09-05 15:07:34 -04:00
Noel Georgi
34ae5aac40 Add HTTP basic auth for URL based inspec deps (#3341)
* Add HTTP basic auth for URL based inspec deps
* Add tests

Signed-off-by: Noel Georgi <git@frezbo.com>
2018-08-30 12:57:50 -04:00
Noel Georgi
9b5aaa4f87 Support erb rendering (#3338)
* Support erb rendering

Fixes: https://github.com/inspec/inspec/issues/3337

* Add UT's and docs

Signed-off-by: Noel Georgi <git@frezbo.com>
2018-08-30 12:56:06 -04:00
Jared Quick
6120497db1
Convert legacy supports to their platform counterparts (#3333)
* Convert legacy supports to their platform counterparts.
* Fix rubocop lint.
* Update json schema for platform supports.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-30 09:11:55 -04:00
Josh Hudson
2d44b6e5e0 Cached profiles with Compliance Fetcher (#3221)
* Leverage existance check in Compliance::Fetcher.resolve to not re-download locally cached profiles
* Move logic from Compliance::API.exist? to Compliance::API.profiles to reuse code in cases where we need to access profiles' metadata directly.
* Declare @upstream_sha256 if target is a string
* Handle other fetchers that don't support upstream_sha256 within Inspec::CachedFetcher.initialize
* Add initialize for Compliance::Fetcher to not pollute Fetchers::Url with its logic
* Add Compliance::Fetcher.sha256 to leverage upstream_sha256 instead of relying on inherited method from Fetchers::Url
* Revert changes to cached fetcher that are unnecessary after refactor
* Pacify the god of ruby syntax
* Move Compliance::API.profiles filtering logic to end of method to leverage normalization of mapped_profiles
* Add and update unit tests to support caching with Compliance::Fetcher.upstream_sha256

Signed-off-by: Josh Hudson <jhudson@chef.io>
2018-08-28 09:11:38 -04:00
Jerry Aldrich
7098631d3e Infer --sudo when --sudo-password is used (#3313)
This does the following:
  - Adds `--sudo` if using `--sudo-password`
  - Warns the user if using `--sudo-password` without `--sudo`
  - Adds unit tests for `Inspec::BaseCLI#opts`

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-08-23 13:47:26 -04:00
Jared Quick
9f3e1c33a8
Suppress logs for json-automate reporter (#3324)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-23 13:43:48 -04:00
Vern Burton
a7ab4b8b5f Add cloudlinux under redhat family (#2935)
* adding cloudlinux into the mocker under the redhat family as it is found inside of train, and creating tests for cloudlinux that mirror the centos/redhat tests.
* adding cloudlinux under the select_service_mgmt method so that it can be matched.

Signed-off-by: Vern Burton <me@vernburton.com>
2018-08-22 15:58:38 -04:00
Clinton Wolfe
d24e0f0ec9 Plugins V2 API: CLI Command Plugin Type, Again (#3296)
Plugins V2 API: CLI Command Plugin Type

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-08-16 20:22:28 -04:00
Clinton Wolfe
811318f2f8 Plugins API v2: Loader, Base API, and Test Harness (#3278)
* Functional tests for userdir option
* Accepts --config-dir CLI option
* Actually loads a config file from the config dir, more cases to test
* Able to load config and verify contents from config-dir
* Functional tests to ensure precedence for config options
* Enable setting config dir via env var
* .inspec, not .inspec.d
* Begin converting PluginCtl to PluginLoader/Registry
* Able to load and partially validate the plugins.json file
* More work on the plugin loader
* Break the world, move next gen stuff to plugin/
* Be sure to require base cli in bundled plugins
* Move test file
* Revert changes to v1 plugin, so we can have a separate one
* Checkpoint commit
* Move v2 plugin work to v2 area
* Move plugins v1 code into an isolated directory
* rubocop fixes
* Rip out the stuff about a user-dir config file, just use a plugin file
* Two psuedocode test file
* Working base API, moock plugin type, and loader.
* Adjust load path to be more welcoming
* Silence circular depencency warning, which was breaking a unit test
* Linting
* Fix plugin type registry, add tests to cover
* Feedback from Jerry

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-08-16 18:16:32 -04:00
Jared Quick
34ac059972
Allow the jsonAutomate report to be executed from cli (#3285)
* Allow the jsonMerged report to be executed from cli.
* Renamed reporter to json-automate and added in comments.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-14 20:07:59 -04:00
Miah Johnson
3a9ed68c72
Merge pull request #3267 from inspec/miah/3158-3
Update `only_if` to allow user specified messages.
2018-08-10 09:38:55 -07:00
Miah Johnson
e710b5b633 Remove conditional checks for true and reverse if conditional on
Inline if_false_message into test.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2018-08-09 12:12:47 -07:00
Robert Van Kleeck
5264cb5fdf add iis_app_pool resource (#2400)
* add iis_app_pool resource
* add sign off
* remove training whitespace
* code cleanup and simplify timeout checks
* add mock tests

Signed-off-by: Rob Van Kleeck <rvankleeck@salesforce.com>
2018-08-09 09:19:49 -04:00
Henry Muru Paenga
f605051f53 Add new resource: aws_ecs_cluster (#3213)
Signed-off-by: Henry Muru Paenga <meringu@gmail.com>
2018-08-09 09:19:27 -04:00
Jared Quick
71003cd564
Error cleanly if a reporter errors while rendering (#3280)
* Error cleanly if a reporter error while rendering.
* Add functional test for automate reporter.
* Remove authors.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-09 09:18:10 -04:00
Noel Georgi
9d3beb8d41 Adding docker plugin support (#3074)
* Fixing tests and squashing
* Updating as per some PR comments
* PR comments

Signed-off-by: Noel Georgi <18496730+frezbo@users.noreply.github.com>
2018-08-09 08:20:32 -04:00
Ksenia
d2ae5c0d68 Fix issue#3269. Add 17 hexadecimal characters support aws_route_table (#3277)
Add support in aws_route_table to allow 17 hexadecimal characters
2018-08-09 08:16:03 -04:00
Miah Johnson
782be81807 Allow passing a message to set_skip_rule. Previously, the value passed
to set_skip_rule could be a boolean, or a message. Now value should
always be a boolean, and if a message is needed one can be passed and
will be set.
Allow only_if to take a message during control_eval DSL.
Add test for only_if(message).

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2018-08-07 11:37:59 -07:00
pete higgins
4ed7362f0c Enable inspec archive, check, and json to run as unpriveleged user (#3263)
* Add --vendor-cache flag for archive, check, and json commands.
* Remove unused ignore_supports flag for Inspec::Runner.

This flag was only set in two code paths that did not call
Inspec::Runner so setting it did not have any effect.

Signed-off-by: Pete Higgins <pete@peterhiggins.org>
2018-08-07 12:12:41 -04:00
Jared Quick
73a40139a6 Add a merged json report for A2 (#3261)
* Provide a json_merge report used by A2 that merges all child profiles.

Signed-off-by: Jared Quick <jquick@chef.io>

* Merge profile controls from child up until we find something usable.

Signed-off-by: Jared Quick <jquick@chef.io>

* Add testng for json_merged report.

Signed-off-by: Jared Quick <jquick@chef.io>

* Push the profile population to be later in the report.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-03 16:07:01 +02:00
Noel Georgi
b93da53237 Escaping package names for windows packages (#3259)
* Escaping package names for windows packages
* Fixing missed package_name ref
* Updating Mock SHA
* Removing unwanted file
* Linting fix

Signed-off-by: Noel Georgi <18496730+frezbo@users.noreply.github.com>
2018-08-02 14:40:14 -04:00
Jared Quick
6e59ef176b
Populate report code for merged controls (#3264)
* Populate the code section for all profiles where we merge controls.
* Fix rubocop issues.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-08-02 14:39:11 -04:00
Jerry Aldrich
f2d64938b7 windows_feature resource: Add DISM support (#3224)
* windows_feature resource: Add DISM support

This modifies the `windows_feature` resource to fallback to DISM when
the `Get-WindowsFeature` command is not available.

* Allow specifying `:dism` or `:powershell`
* Replace stacktrace with smaller error message
* Add notes/todo about raise behavior
* Remove duplicated platform check

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-07-25 16:00:06 -04:00
Jerry Aldrich
2245bba021 cli: Downcase supermarket tool name to match URL (#3242)
* cli: Downcase supermarket tool name to match URL

This downcases the user provided tool name. Without this fetching the
profile will fail because the Supermarket API downcases in the URL.

* Add another downcase
* Add handling for `supermarket://owner_but_no_name`

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-07-25 15:59:19 -04:00
Jerry Aldrich
c1d7b2cfa3 alpine resource: Fix small style issues (#3238)
* Constrain RuboCop disables to single method
* Add comment to Alpine package command
* Use single quotes for Alpine package command
* Change `it` statement to be readable

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-07-25 15:57:51 -04:00
Jared Quick
faf3d1588e
Fix the unit tests by pining to a older openssl cookbook. (#3251)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-07-25 13:08:12 -04:00
Dan Webb
a0fffa5286 Add Alpine package provider (#3215)
- Add Alpine tests
- Stub apk grep command for alpine
- Resolve (disable for now) rubocop ABC/CyclomaticComplexity/PerceivedComplexity

Signed-off-by: Dan Webb <dan.webb@damacus.io>
2018-07-19 15:07:36 -04:00
James Stocks
ca833afacf Generate describe code for an array of strings (#3227)
Context:
When testing a Windows registry key with a period character in it e.g. `explorer.exe` it is not possible to use `its("explorer.exe")` because the period would be interpreted as method chaining.
In this case, you must instead use `its(["explorer", "exe"])`
See https://github.com/inspec/inspec/issues/1281

This commit fixes `to_ruby`in `Inspec::Describe` so that it produces an array in the generated Inspec code instead of a string.

Signed-off-by: James Stocks <jstocks@chef.io>
2018-07-19 15:00:21 -04:00
Miah Johnson
bfd569fe99 Ensure resources fail that target something that isn't supported (#3231)
* Use fail_resource rather than skip_resource when the platform is not
supported by the resource.

* Update tests to handle failing on unsupported platforms.
Update functional tests.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2018-07-19 08:16:54 -04:00
Jerry Aldrich
706493f2f3 command resource: Allow redacting #to_s (#3207)
* command resource: Allow redacting `#to_s`
* Respond to feedback

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-07-16 08:20:57 -04:00
Stanislav Voroniy
a16877f427 A number of bug fixes and new features for oracledb_session resource (#3170)
Signed-off-by: Stanislav Voroniy <stas@voroniy.com>
2018-07-09 13:57:45 -04:00
Clinton Wolfe
92e96ebedb Accept regexes for --controls option to inspec exec (#3179)
* Functional tests for regex control selection
* Implementation for regex-based control filtering

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-07-05 15:44:30 -04:00
Miah Johnson
a084187b21 When a profile is created with init, the last item after a / is the (#3175)
profile name. eg "with/slash" would result in a profile created in the
"with" directory named "slash"

Add test for inspec init, and updated other for new output.

Clean up profiles created during testing and place them in temporary
directories.

Describe our test a bit better.
Check that the profile was created in the right location.
Check that the profile is named correctly.

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2018-07-05 15:37:18 -04:00
Noel Georgi
6fe13ce1eb Updating inspec with bastion options (#3180)
* Updating inspec with bastion options as per https://github.com/inspec/train/pull/310
* Updating train pin
* Adding --password to pass the test
* Revert "Updating train pin"
* PR changes

Signed-off-by: Noel Georgi <18496730+frezbo@users.noreply.github.com>
2018-07-05 15:37:04 -04:00
Jerry Aldrich
a56539bc62 Fix some issues with the vendor functional tests (#3196)
* Sort `Dir.entries` in functional test

Ruby's `Dir.entries` differs between OS's. This ensures the same order
is used when comparing two arrays.

* Remove unused variable `exec_out`

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-07-05 14:19:41 -04:00
Miah Johnson
ef6cb0d85b This functional test was validating that a randomly named directory (#3198)
Fix vendor functional test to not validate a repo hash that can change.
2018-07-05 13:54:53 -04:00
Clinton Wolfe
2ac5581d32 Document exit codes for 'inspec exec' and add --no-distinct-exit option (#3178)
* Add long description to inspec exec command, mentioning exit codes
* Modify website doc builder code to use long description if available
* Functional test for --distinct-exit flag
* Implement --distinct-exit option
* Inspec shell also needs the option

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-29 08:43:34 -04:00
Jared Quick
52694d4031 Add parent_profile field in json output (#3164)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-06-26 13:04:31 -04:00
Jerry Aldrich
737df411ef apache_conf resource: Strip quotes from values (#3142)
* apache_conf resource: Strip quotes from values
* Update regex to capture all vars between quotes
* Change `x` and `y` to proper variable names

Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-06-26 07:48:48 -04:00
Clinton Wolfe
ed44b34509 Add functional tests for nested attributes (#3157)
* A functional test for attributes
* Add tests for nested attrs in yaml
* remove commented-out tests

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-26 07:48:20 -04:00
Clinton Wolfe
44c0fd2e4f
Accept symbols and downcased criteria in aws_iam_policy have_statement matcher (#3129)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-21 14:19:56 -04:00
Jared Quick
12890408bb
Fix control merging when overriding child controls (#3155)
* Fix the control merging issues when overriding child controls.
* Fix rubocop issue and vendor compression.
* Add in lock file for vendor profile

Signed-off-by: Jared Quick <jquick@chef.io>
2018-06-21 13:37:47 -04:00
Jerry Aldrich
cf9ce1bfdc auditd resource: Add handling for sudo/no command (#3151)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
2018-06-20 21:27:53 -04:00
Jared Quick
7db83446ba
Add insecure option to the automate report json (#3124)
* Add insecure option to the automate report json.
* Add in automate and compliance json documentation.
* Fix typo.

Signed-off-by: Jared Quick <jquick@chef.io>
2018-06-14 14:05:21 -04:00
Clinton Wolfe
7aa60852e6 Add list properties back to shadow (#3140)
* Un-deprecate plural properties on shadow; deprecate the singular versions
* Update filtertable interface to current
* A weak attempt at making the docs coherent
* Doc feedback per Jerry

Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-14 13:42:00 -04:00
Jared Quick
4e54475cec
Fix tests for ruby 2.5 (#3125)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-06-11 11:25:16 -04:00
Clinton Wolfe
6f46d52242
Add aws_elb and aws_elbs resources (#3079)
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-07 15:06:05 -04:00
Miah Johnson
ab32446213 Adds a aws_flow_log resource with unit and integration testing. (#2906)
Signed-off-by: Miah Johnson <miah@chia-pet.org>
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
2018-06-07 14:41:46 -04:00
Samuel Boucher
27995f37e8 Update junit reporter to add failures attribute (#3086)
Signed-off-by: Samuel Boucher <boucher.samuel.c@gmail.com>
2018-06-06 12:14:24 -04:00
Jared Quick
06e1aa5379 Allow custom resources to access all other resources (#3108)
Signed-off-by: Jared Quick <jquick@chef.io>
2018-06-06 11:56:51 -04:00