This is technically incorrect YAML, but if you transcode YAML between several tools you may end up with a date/time value being an explicit string.
It would be helpful if InSpec supported any string value that easily translates to a Time.
Signed-off-by: James Stocks <jstocks@chef.io>
Fixes#5037
The YAML parser may parse a waiver timestamp as a Time rather than a Date. Even when the user doesn't care about time, they may be using a tool that outputs YAML with trailing zeroes for hour, minutes, seconds etc.
Signed-off-by: James Stocks <jstocks@chef.io>
I removed the skip to see what would break, and on my Windows laptop
these tests pass OK. The TODO didn't explain what wasn't applicable to
Windows, so I'm just going to remove it.
Signed-off-by: James Stocks <jstocks@chef.io>
In https://github.com/inspec/inspec/issues/4936 the issue was reported that naming an input the same as a control caused an unexpected failure.
In that particular case, the naming was a result of a pre-waivers workaround which is no longer necessary, but ultimately a breakage of that name clash is an unexpected occurrance.
Due to how inputs are named and registered, `__apply_waivers` thinks that an object is a waiver that is not a waiver and tries to process it. On the micro level, it breaks when trying to pass a variable to a string as if it were a Hash.
It is imperative that we preserve 100% of the current featureset, pass our tests, and fix this edge case along with new test coverage for the failure.
This PR updates the code to do a slightly more elegant and small ‘waiver check’ to stop the namespace clash from breaking our code.
Signed-off-by: Nick Schwaderer <nschwaderer@chef.io>
They don't need to be json specific, they should apply to any reporter if the user has chosen these settings.
Signed-off-by: James Stocks <jstocks@chef.io>
This removes ::InspecPlugins::TestFixture in installer_test and
loader_test on every test.
Please... no more output in our test runs...
Signed-off-by: Ryan Davis <zenspider@chef.io>
ProfileContext#to_resources_dsl is the only usage of it.
The responsibility for this code should be on ProfileContext.
Refactored a majority of #create_dsl to be a 2-line long Module.new
instead of 36 lines. Much less magic. Still has an anonymous module
but it is now much easier to address and debug.
Signed-off-by: Ryan Davis <zenspider@chef.io>
Everyone now has an `inspec` method, but the AWS ones still return
nil as their backend hasn't been set up.
This seems wrong...
Signed-off-by: Ryan Davis <zenspider@chef.io>
This also removes Inspec::ResourceBehaviors and Inspec::ResourceDSL.
All class methods look like class methods.
All instance methods look like instance methods.
There is still too much clever going on with __register creating
another anonymous subclass, but I think I can work that out/down too.
Signed-off-by: Ryan Davis <zenspider@chef.io>