diff --git a/.travis.yml b/.travis.yml index d94a3f4f8b..34cd6d44ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ before_install: - gem --version - bundle --version env: - - SLOW=1 + - SLOW=1 NO_AWS=1 - CI_ENABLE_COVERAGE=true SLOW=1 script: bundle exec rake $SUITE matrix: @@ -31,7 +31,7 @@ matrix: - os: osx env: CI_ENABLE_COVERAGE=true SLOW=1 - os: linux - env: SLOW=1 + env: SLOW=1 NO_AWS=1 include: - rvm: 2.6.3 - rvm: 2.5.5 diff --git a/inspec-bin/bin/inspec b/inspec-bin/bin/inspec index 6ec84339fc..ce68cc7995 100755 --- a/inspec-bin/bin/inspec +++ b/inspec-bin/bin/inspec @@ -7,6 +7,5 @@ Encoding.default_internal = Encoding::UTF_8 lib = File.expand_path("../lib", __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require "inspec" require "inspec/cli" Inspec::InspecCLI.start(ARGV) diff --git a/lib/fetchers/mock.rb b/lib/fetchers/mock.rb index 5b408300ee..515ff106d5 100644 --- a/lib/fetchers/mock.rb +++ b/lib/fetchers/mock.rb @@ -1,3 +1,5 @@ +require "inspec/fetcher" + module Fetchers class Mock < Inspec.fetcher(1) name "mock" diff --git a/lib/inspec/backend.rb b/lib/inspec/backend.rb index 371f7a263c..14773c4402 100644 --- a/lib/inspec/backend.rb +++ b/lib/inspec/backend.rb @@ -2,6 +2,8 @@ require "train" require "inspec/config" +require "inspec/version" +require "inspec/resource" module Inspec module Backend diff --git a/lib/inspec/base_cli.rb b/lib/inspec/base_cli.rb index dfc84b39c6..0f150b342f 100644 --- a/lib/inspec/base_cli.rb +++ b/lib/inspec/base_cli.rb @@ -1,7 +1,8 @@ require "thor" require "inspec/log" -require "inspec/profile_vendor" require "inspec/ui" +require "inspec/config" +require "inspec/utils/deprecation/global_method" # Allow end of options during array type parsing # https://github.com/erikhuda/thor/issues/631 @@ -233,6 +234,8 @@ def pretty_handle_exception(exception) end def vendor_deps(path, opts) + require "inspec/profile_vendor" + profile_path = path || Dir.pwd profile_vendor = Inspec::ProfileVendor.new(profile_path) diff --git a/lib/inspec/cli.rb b/lib/inspec/cli.rb index 03c51984ee..90c5fd25b4 100644 --- a/lib/inspec/cli.rb +++ b/lib/inspec/cli.rb @@ -1,19 +1,33 @@ # Copyright 2015 Dominik Richter -require "logger" -require "thor" -require "json" -require "pp" -require "inspec/utils/json_log" -require "inspec/utils/latest_version" -require "inspec/base_cli" -require "inspec/plugin/v1" -require "inspec/plugin/v2" -require "inspec/runner_mock" -require "inspec/env_printer" -require "inspec/schema" -require "inspec/config" +require "inspec/utils/deprecation/deprecator" require "inspec/dist" +require "inspec/backend" +require "inspec/dependencies/cache" + +module Inspec # TODO: move this somewhere "better"? + autoload :BaseCLI, "inspec/base_cli" + autoload :Deprecation, "inspec/utils/deprecation" + autoload :Exceptions, "inspec/exceptions" + autoload :Fetcher, "inspec/fetcher" + autoload :Formatters, "inspec/formatters" + autoload :Globals, "inspec/globals" + autoload :Impact, "inspec/impact" + autoload :Impact, "inspec/impact" + autoload :InputRegistry, "inspec/input_registry" + autoload :Profile, "inspec/profile" + autoload :Reporters, "inspec/reporters" + autoload :Resource, "inspec/resource" + autoload :Rule, "inspec/rule" + autoload :Runner, "inspec/runner" + autoload :Runner, "inspec/runner" + autoload :Shell, "inspec/shell" + autoload :SourceReader, "inspec/source_reader" + autoload :Telemetry, "inspec/utils/telemetry" + autoload :V1, "inspec/plugin/v1" + autoload :V2, "inspec/plugin/v2" + autoload :VERSION, "inspec/version" +end class Inspec::InspecCLI < Inspec::BaseCLI class_option :log_level, aliases: :l, type: :string, @@ -50,6 +64,9 @@ class Inspec::InspecCLI < Inspec::BaseCLI desc: "A list of controls to include. Ignore all other tests." profile_options def json(target) + require "inspec/resources" + require "json" + o = config diagnose(o) o["log_location"] = $stderr @@ -86,6 +103,8 @@ def json(target) option :format, type: :string profile_options def check(path) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength + require "inspec/resources" + o = config diagnose(o) o["log_location"] ||= STDERR if o["format"] == "json" @@ -142,6 +161,8 @@ def check(path) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength option :overwrite, type: :boolean, default: false, desc: "Overwrite existing vendored dependencies and lockfile." def vendor(path = nil) + require "inspec/resources" + o = config configure_logger(o) o[:logger] = Logger.new($stdout) @@ -163,6 +184,8 @@ def vendor(path = nil) option :ignore_errors, type: :boolean, default: false, desc: "Ignore profile warnings." def archive(path) + require "inspec/resources" + o = config diagnose(o) @@ -347,6 +370,8 @@ def env(shell = nil) desc "schema NAME", "print the JSON schema", hide: true def schema(name) + require "inspec/schema" + puts Inspec::Schema.json(name) rescue StandardError => e puts e @@ -360,8 +385,10 @@ def version v = { version: Inspec::VERSION } puts v.to_json else + require "inspec/utils/latest_version" puts Inspec::VERSION # display outdated version + # TODO: remove this. Don't notify of update to a gem when they install omnibus latest = LatestInSpecVersion.new.latest || Inspec::VERSION if Gem::Version.new(Inspec::VERSION) < Gem::Version.new(latest) puts "\nYour version of #{Inspec::Dist::PRODUCT_NAME} is out of date! The latest version is #{latest}." @@ -370,6 +397,11 @@ def version end map %w{-v --version} => :version + desc "nothing", "does nothing" + def nothing + puts "you did nothing" + end + private def run_command(opts) @@ -423,6 +455,8 @@ def run_command(opts) #---------------------------------------------------------------------# # Plugin Loading #---------------------------------------------------------------------# +require "inspec/plugin/v2" + begin # Load v2 plugins. Manually check for plugin disablement. omit_core = ARGV.delete("--disable-core-plugins") diff --git a/lib/inspec/fetcher.rb b/lib/inspec/fetcher.rb index 1a3ef015c8..99d4a0b0d8 100644 --- a/lib/inspec/fetcher.rb +++ b/lib/inspec/fetcher.rb @@ -35,6 +35,7 @@ def self.fetcher(version) end end +# TODO: remove. require up, not down. require "fetchers/local" require "fetchers/url" require "fetchers/git" diff --git a/lib/inspec/file_provider.rb b/lib/inspec/file_provider.rb index da0e4d4648..636b2bc75e 100644 --- a/lib/inspec/file_provider.rb +++ b/lib/inspec/file_provider.rb @@ -1,4 +1,5 @@ require "rubygems/package" +require "pathname" require "zlib" require "zip" diff --git a/lib/inspec/input_registry.rb b/lib/inspec/input_registry.rb index 5cf0359566..96f39b1884 100644 --- a/lib/inspec/input_registry.rb +++ b/lib/inspec/input_registry.rb @@ -3,6 +3,7 @@ require "inspec/objects/input" require "inspec/secrets" require "inspec/exceptions" +require "inspec/plugin/v2" module Inspec # The InputRegistry's responsibilities include: diff --git a/lib/inspec/metadata.rb b/lib/inspec/metadata.rb index 36f5899048..8d38a85555 100644 --- a/lib/inspec/metadata.rb +++ b/lib/inspec/metadata.rb @@ -4,7 +4,6 @@ require "rubygems/version" require "rubygems/requirement" require "semverse" -require "erb" require "inspec/version" require "inspec/utils/spdx" @@ -200,6 +199,7 @@ def self.finalize(metadata, profile_id, options, logger = nil) end def self.from_yaml(ref, content, profile_id, logger = nil) + require "erb" res = Metadata.new(ref, logger) res.params = YAML.load(ERB.new(content).result) res.content = content diff --git a/lib/inspec/plugin/v1/plugin_types/resource.rb b/lib/inspec/plugin/v1/plugin_types/resource.rb index 6700db6174..dca898e957 100644 --- a/lib/inspec/plugin/v1/plugin_types/resource.rb +++ b/lib/inspec/plugin/v1/plugin_types/resource.rb @@ -1,3 +1,5 @@ +require "inspec/exceptions" + module Inspec module ResourceBehaviors def to_s diff --git a/lib/inspec/profile.rb b/lib/inspec/profile.rb index 9f8b2fa5f8..b709d6eab7 100644 --- a/lib/inspec/profile.rb +++ b/lib/inspec/profile.rb @@ -2,15 +2,10 @@ require "forwardable" require "openssl" +require "pathname" require "inspec/input_registry" -require "inspec/polyfill" -require "inspec/cached_fetcher" -require "inspec/file_provider" +require "inspec/cached_fetcher" # TODO: split or rename require "inspec/source_reader" -require "inspec/metadata" -require "inspec/backend" -require "inspec/rule" -require "inspec/log" require "inspec/profile_context" require "inspec/runtime_profile" require "inspec/method_source" diff --git a/lib/inspec/resource.rb b/lib/inspec/resource.rb index 1853468a8f..20ad39b3ee 100644 --- a/lib/inspec/resource.rb +++ b/lib/inspec/resource.rb @@ -1,5 +1,6 @@ # copyright: 2015, Vulcano Security GmbH require "inspec/plugin/v1" +require "inspec/utils/deprecation/global_method" # for resources module Inspec class ProfileNotFound < StandardError; end diff --git a/lib/inspec/resources.rb b/lib/inspec/resources.rb index 2ae7c03153..4f453f0d1e 100644 --- a/lib/inspec/resources.rb +++ b/lib/inspec/resources.rb @@ -2,7 +2,9 @@ # Detect if we are running the stripped-down inspec-core # This relies on AWS being stripped from the inspec-core gem -inspec_core_only = !File.exist?(File.join(File.dirname(__FILE__), "..", "resource_support", "aws.rb")) +inspec_core_only = ENV["NO_AWS"] || !File.exist?(File.join(File.dirname(__FILE__), "..", "resource_support", "aws.rb")) + +require "rspec/matchers" # Do not attempt to load cloud resources if we are in inspec-core mode unless inspec_core_only diff --git a/lib/inspec/resources/command.rb b/lib/inspec/resources/command.rb index be326132bf..bd0b0d67e2 100644 --- a/lib/inspec/resources/command.rb +++ b/lib/inspec/resources/command.rb @@ -1,5 +1,7 @@ # copyright: 2015, Vulcano Security GmbH +require "inspec/resource" + module Inspec::Resources class Cmd < Inspec.resource(1) name "command" diff --git a/lib/inspec/runner.rb b/lib/inspec/runner.rb index 915469bd89..16cc8e87e4 100644 --- a/lib/inspec/runner.rb +++ b/lib/inspec/runner.rb @@ -9,6 +9,7 @@ require "inspec/config" require "inspec/dependencies/cache" require "inspec/dist" +require "inspec/resources" require "inspec/reporters" require "inspec/runner_rspec" # spec requirements diff --git a/lib/inspec/runner_rspec.rb b/lib/inspec/runner_rspec.rb index 990532de2c..4d263d7beb 100644 --- a/lib/inspec/runner_rspec.rb +++ b/lib/inspec/runner_rspec.rb @@ -1,6 +1,8 @@ require "rspec/core" require "rspec/its" require "inspec/formatters" +require "matchers/matchers" +require "inspec/rspec_extensions" # There be dragons!! Or borgs, or something... # This file and all its contents cannot be unit-tested. both test-suits diff --git a/lib/inspec/ui.rb b/lib/inspec/ui.rb index ad3fc3b249..8ad8126e55 100644 --- a/lib/inspec/ui.rb +++ b/lib/inspec/ui.rb @@ -1,6 +1,3 @@ -require "tty-table" -require "tty-prompt" - module Inspec # Provides simple terminal UI interaction primitives for CLI commands and plugins. class UI @@ -158,6 +155,8 @@ def list_item(str, opts = { print: true }) # t << ['', '', 1] # end def table(opts = { print: true }) + require "inspec/ui_table_helper" + the_table = TableHelper.new yield(the_table) @@ -174,13 +173,6 @@ def table(opts = { print: true }) print_or_return(result, opts[:print]) end - class TableHelper < TTY::Table - def header=(ary) - cells = ary.dup.map { |label| { value: label, alignment: :center } } - @header = TTY::Table::Header.new(cells) - end - end - #=========================================================================# # Exit Codes #=========================================================================# @@ -212,6 +204,8 @@ def prompt unless interactive? raise Inspec::UserInteractionRequired, "Somthing is trying to ask the user a question, but interactivity is disabled." end + require "tty-prompt" + @prompt ||= TTY::Prompt.new end end diff --git a/lib/inspec/ui_table_helper.rb b/lib/inspec/ui_table_helper.rb new file mode 100644 index 0000000000..f683deda13 --- /dev/null +++ b/lib/inspec/ui_table_helper.rb @@ -0,0 +1,12 @@ +require "tty-table" + +module Inspec + class UI + class TableHelper < TTY::Table + def header=(ary) + cells = ary.dup.map { |label| { value: label, alignment: :center } } + @header = TTY::Table::Header.new(cells) + end + end + end +end diff --git a/lib/inspec/utils/pkey_reader.rb b/lib/inspec/utils/pkey_reader.rb index daf29c053e..c05a3dbe10 100644 --- a/lib/inspec/utils/pkey_reader.rb +++ b/lib/inspec/utils/pkey_reader.rb @@ -1,3 +1,5 @@ +require "inspec/objects/input" + module PkeyReader def read_pkey(filecontent, passphrase) raise_if_unset(passphrase) diff --git a/lib/plugins/inspec-habitat/test/unit/profile_test.rb b/lib/plugins/inspec-habitat/test/unit/profile_test.rb index ef5be72a89..f4d3b7f63b 100644 --- a/lib/plugins/inspec-habitat/test/unit/profile_test.rb +++ b/lib/plugins/inspec-habitat/test/unit/profile_test.rb @@ -1,6 +1,7 @@ require "mixlib/log" require "fileutils" require "minitest/autorun" +require "inspec/backend" require_relative "../../lib/inspec-habitat/profile.rb" class InspecPlugins::Habitat::ProfileTest < Minitest::Test diff --git a/test/functional/inspec_archive_test.rb b/test/functional/inspec_archive_test.rb index 7fa075ebac..2a160604e7 100644 --- a/test/functional/inspec_archive_test.rb +++ b/test/functional/inspec_archive_test.rb @@ -1,5 +1,7 @@ require "functional/helper" require "tmpdir" +require "zip" +require "rubygems/package" describe "inspec archive" do include FunctionalHelper diff --git a/test/functional/inspec_exec_test.rb b/test/functional/inspec_exec_test.rb index a876f95863..c3612a0b74 100644 --- a/test/functional/inspec_exec_test.rb +++ b/test/functional/inspec_exec_test.rb @@ -217,6 +217,7 @@ let(:out) { inspec("exec " + File.join(profile_path, "aws-profile")) } let(:stdout) { out.stdout.force_encoding(Encoding::UTF_8) } it "exits with an error" do + skip if ENV["NO_AWS"] stdout.must_include "Resource `aws_iam_users` is not supported on platform" stdout.must_include "Resource `aws_iam_access_keys` is not supported on platform" stdout.must_include "Resource `aws_s3_bucket` is not supported on platform" diff --git a/test/functional/ui_test.rb b/test/functional/ui_test.rb index b2d23f99e6..7812a87824 100644 --- a/test/functional/ui_test.rb +++ b/test/functional/ui_test.rb @@ -32,19 +32,18 @@ def show_spaces(str) describe "headline" do let(:feature) { "headline" } it "has correct output" do - run_result.exit_status.must_equal 0 expected = <<-EOT ───────────────────────────────── \e[1m\e[37mBig News!\e[0m ───────────────────────────────── \n EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end describe "table" do let(:feature) { "table" } it "has correct output" do - run_result.exit_status.must_equal 0 expected = <<~EOT ┌──────────────────────┬──────────┬───────────┐ │\e[1m\e[37m Band \e[0m│\e[1m\e[37m Coolness \e[0m│\e[1m\e[37m Nerd Cred \e[0m│ @@ -55,39 +54,40 @@ def show_spaces(str) └──────────────────────┴──────────┴───────────┘ EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end describe "warning" do let(:feature) { "warning" } it "has correct output" do - run_result.exit_status.must_equal 0 expected = <<~EOT \e[1m\e[33mWARNING:\e[0m Things will be OK in the end EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end describe "error" do let(:feature) { "error" } it "has correct output" do - run_result.exit_status.must_equal 0 expected = <<~EOT \e[1m\e[38;5;9mERROR:\e[0m Burned down, fell over, and then sank into the swamp. EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end describe "list_item" do let(:feature) { "list_item" } it "has correct output" do - run_result.exit_status.must_equal 0 expected = <<-EOT \e[1m\e[37m•\e[0m TODO: make more lists EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end end @@ -97,8 +97,9 @@ def show_spaces(str) let(:post_opts) { "--no-color" } describe "everything" do let(:feature) { "everything" } + it "has correct output" do - run_result.exit_status.must_equal 0 + # TODO: trailing whitespace required in tests. Hidden via "--- \n" expected = <<~EOT --------------------------------- Big News! --------------------------------- \n @@ -114,6 +115,7 @@ def show_spaces(str) * TODO: make more lists EOT show_spaces(run_result.stdout).must_equal show_spaces(expected) + run_result.exit_status.must_equal 0 end end end @@ -122,45 +124,45 @@ def show_spaces(str) describe "normal exit" do let(:feature) { "exitnormal" } it "has correct output" do - assert_exit_code 0, run_result run_result.stderr.must_equal "" run_result.stdout.must_equal "test exit normal\n" + assert_exit_code 0, run_result end end describe "usage exit" do let(:feature) { "exitusage" } it "has correct output" do - assert_exit_code 1, run_result run_result.stderr.must_equal "" # ie, we intentionally exit-1'd; not a crash run_result.stdout.must_equal "test exit usage_error\n" + assert_exit_code 1, run_result end end describe "plugin exit" do let(:feature) { "exitplugin" } it "has correct output" do - assert_exit_code 2, run_result run_result.stderr.must_equal "" run_result.stdout.must_equal "test exit plugin_error\n" + assert_exit_code 2, run_result end end describe "skipped exit" do let(:feature) { "exitskipped" } it "has correct output" do - assert_exit_code 101, run_result run_result.stderr.must_equal "" run_result.stdout.must_equal "test exit skipped_tests\n" + assert_exit_code 101, run_result end end describe "failed exit" do let(:feature) { "exitfailed" } it "has correct output" do - assert_exit_code 100, run_result run_result.stderr.must_equal "" run_result.stdout.must_equal "test exit failed_tests\n" + assert_exit_code 100, run_result end end @@ -172,8 +174,8 @@ def show_spaces(str) describe "the interactive flag" do let(:feature) { "interactive" } it "should report the interactive flag is on" do - assert_exit_code 0, run_result run_result.stdout.must_include "true" + assert_exit_code 0, run_result end end @@ -188,8 +190,8 @@ def show_spaces(str) describe "prompting" do let(:feature) { "prompt" } it "should launch apollo" do - assert_exit_code 0, run_result run_result.stdout.must_include "Apollo" + assert_exit_code 0, run_result end end end @@ -201,16 +203,16 @@ def show_spaces(str) describe "the interactive flag" do let(:feature) { "interactive" } it "should report the interactive flag is off" do - assert_exit_code 0, run_result run_result.stdout.must_include "false" + assert_exit_code 0, run_result end end describe "prompting" do let(:feature) { "prompt" } it "should crash with stacktrace" do - assert_exit_code 1, run_result run_result.stderr.must_include "Inspec::UserInteractionRequired" + assert_exit_code 1, run_result end end end diff --git a/test/helpers/mock_loader.rb b/test/helpers/mock_loader.rb index 31ae717826..051076a3f0 100644 --- a/test/helpers/mock_loader.rb +++ b/test/helpers/mock_loader.rb @@ -1,3 +1,5 @@ +require "inspec/resources" + class MockLoader # collects emulation operating systems OPERATING_SYSTEMS = { @@ -568,6 +570,7 @@ def self.profile_path(name) end def self.load_profile(name, opts = {}) + require "inspec/profile" opts[:test_collector] = Inspec::RunnerMock.new opts[:backend] = Inspec::Backend.create(Inspec::Config.mock(opts)) Inspec::Profile.for_target(profile_path(name), opts) diff --git a/test/unit/config_test.rb b/test/unit/config_test.rb index 0c0da7b5a7..bf683ecdf5 100644 --- a/test/unit/config_test.rb +++ b/test/unit/config_test.rb @@ -2,6 +2,7 @@ require "stringio" require "inspec/config" +require "plugins/inspec-compliance/lib/inspec-compliance/api" describe "Inspec::Config" do diff --git a/test/unit/dependencies/lockfile_test.rb b/test/unit/dependencies/lockfile_test.rb index 36eba600e0..af76f535fb 100644 --- a/test/unit/dependencies/lockfile_test.rb +++ b/test/unit/dependencies/lockfile_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/dependencies/lockfile" # TODO: move files or namespace properly describe Inspec::Lockfile do # Ruby 1.9: .to_yaml format is slightly different diff --git a/test/unit/dsl/control_test.rb b/test/unit/dsl/control_test.rb index 909c74b190..04905fee59 100644 --- a/test/unit/dsl/control_test.rb +++ b/test/unit/dsl/control_test.rb @@ -1,5 +1,6 @@ require "helper" require "inspec/config" +require "inspec/profile" require "inspec/runner_mock" require "fetchers/mock" diff --git a/test/unit/fetchers/git_test.rb b/test/unit/fetchers/git_test.rb index 9ac069c8af..b425616761 100644 --- a/test/unit/fetchers/git_test.rb +++ b/test/unit/fetchers/git_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/fetcher" describe Fetchers::Git do let(:fetcher) { Fetchers::Git } diff --git a/test/unit/fetchers/local_test.rb b/test/unit/fetchers/local_test.rb index d2e492de15..f7869d7160 100644 --- a/test/unit/fetchers/local_test.rb +++ b/test/unit/fetchers/local_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/fetcher" describe Fetchers::Local do let(:fetcher) { Fetchers::Local } diff --git a/test/unit/fetchers/source_reader_test.rb b/test/unit/fetchers/source_reader_test.rb index 39a8471c48..517d805687 100644 --- a/test/unit/fetchers/source_reader_test.rb +++ b/test/unit/fetchers/source_reader_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/source_reader" describe Inspec::SourceReader do let(:reg) { Inspec::SourceReader } diff --git a/test/unit/fetchers/url_test.rb b/test/unit/fetchers/url_test.rb index c683c61e65..78d35ae91e 100644 --- a/test/unit/fetchers/url_test.rb +++ b/test/unit/fetchers/url_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/fetcher" # TODO: require fetchers/url directly describe Fetchers::Url do it "registers with the fetchers registry" do diff --git a/test/unit/file_provider_test.rb b/test/unit/file_provider_test.rb index ca9f7e272d..ad5483fe8c 100644 --- a/test/unit/file_provider_test.rb +++ b/test/unit/file_provider_test.rb @@ -1,4 +1,5 @@ require "helper" +require "inspec/file_provider" # TODO: split describe Inspec::MockProvider do let(:subject) { Inspec::MockProvider.new(target) } diff --git a/test/unit/plugin/v1/resource_test.rb b/test/unit/plugin/v1/resource_test.rb index 398f47eb12..af7c505685 100644 --- a/test/unit/plugin/v1/resource_test.rb +++ b/test/unit/plugin/v1/resource_test.rb @@ -1,4 +1,7 @@ require "helper" +require "inspec/resource" +require "inspec/resources/os" +# require 'inspec/plugin/v1/plugin_types/resource' describe Inspec::Plugins::Resource do let(:base) { Inspec::Plugins::Resource } @@ -17,7 +20,8 @@ end def create(&block) - random_name = (0...50).map { (65 + rand(26)).chr }.join + # random_name = (0...50).map { (65 + rand(26)).chr }.join + random_name = "NotSoRandomName" Class.new(base) do name random_name instance_eval(&block) diff --git a/test/unit/profiles/control_eval_context_test.rb b/test/unit/profiles/control_eval_context_test.rb index d00ad3c63d..fb8da5edcf 100644 --- a/test/unit/profiles/control_eval_context_test.rb +++ b/test/unit/profiles/control_eval_context_test.rb @@ -1,5 +1,6 @@ require "helper" require "inspec/control_eval_context" +require "inspec/profile_context" describe Inspec::ControlEvalContext do module FakeDSL diff --git a/test/unit/profiles/profile_test.rb b/test/unit/profiles/profile_test.rb index 246c623f76..d5aadfc4ff 100644 --- a/test/unit/profiles/profile_test.rb +++ b/test/unit/profiles/profile_test.rb @@ -3,6 +3,7 @@ require "inspec/runner_mock" require "inspec/resource" require "inspec/resources/command" +require "inspec/profile" describe Inspec::Profile do let(:logger) { Minitest::Mock.new } diff --git a/test/unit/source_readers/flat_test.rb b/test/unit/source_readers/flat_test.rb index 2427d12fa5..04f19a0242 100644 --- a/test/unit/source_readers/flat_test.rb +++ b/test/unit/source_readers/flat_test.rb @@ -1,4 +1,6 @@ require "helper" +require "inspec/source_reader" +require "source_readers/flat" # TODO: break circular describe SourceReaders::Flat do let(:reader) { SourceReaders::Flat } diff --git a/test/unit/source_readers/inspec_test.rb b/test/unit/source_readers/inspec_test.rb index 935e7d65df..c300c2303c 100644 --- a/test/unit/source_readers/inspec_test.rb +++ b/test/unit/source_readers/inspec_test.rb @@ -1,4 +1,6 @@ require "helper" +require "inspec/source_reader" +require "source_readers/inspec" # TODO: break circular describe SourceReaders::InspecReader do let(:reader) { SourceReaders::InspecReader } diff --git a/test/unit/ui_test.rb b/test/unit/ui_test.rb index 0c40955389..de7273ee27 100644 --- a/test/unit/ui_test.rb +++ b/test/unit/ui_test.rb @@ -3,6 +3,7 @@ require "minitest/autorun" require "inspec/ui" require "inspec/base_cli" +require "inspec/errors" require "stringio" # https://gist.github.com/chrisopedia/8754917