inspec 4.3.2 → 4.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +36 -38
  3. data/README.md +37 -21
  4. data/etc/deprecations.json +10 -0
  5. data/etc/plugin_filters.json +8 -0
  6. data/inspec.gemspec +38 -39
  7. data/lib/bundles/inspec-compliance/api.rb +1 -1
  8. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  9. data/lib/bundles/inspec-compliance/http.rb +1 -1
  10. data/lib/bundles/inspec-compliance/support.rb +1 -1
  11. data/lib/bundles/inspec-compliance/target.rb +1 -1
  12. data/lib/bundles/inspec-supermarket.rb +3 -7
  13. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  14. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  15. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  16. data/lib/fetchers/git.rb +14 -15
  17. data/lib/fetchers/local.rb +6 -10
  18. data/lib/fetchers/mock.rb +3 -5
  19. data/lib/fetchers/url.rb +42 -44
  20. data/lib/inspec.rb +23 -24
  21. data/lib/inspec/archive/tar.rb +2 -6
  22. data/lib/inspec/archive/zip.rb +3 -7
  23. data/lib/inspec/backend.rb +8 -9
  24. data/lib/inspec/base_cli.rb +64 -65
  25. data/lib/inspec/cached_fetcher.rb +2 -3
  26. data/lib/inspec/cli.rb +136 -97
  27. data/lib/inspec/config.rb +71 -61
  28. data/lib/inspec/control_eval_context.rb +22 -18
  29. data/lib/inspec/dependencies/cache.rb +2 -3
  30. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  31. data/lib/inspec/dependencies/lockfile.rb +8 -9
  32. data/lib/inspec/dependencies/requirement.rb +7 -8
  33. data/lib/inspec/dependencies/resolver.rb +5 -7
  34. data/lib/inspec/describe.rb +2 -6
  35. data/lib/inspec/dist.rb +20 -0
  36. data/lib/inspec/dsl.rb +4 -7
  37. data/lib/inspec/dsl_shared.rb +1 -2
  38. data/lib/inspec/env_printer.rb +11 -12
  39. data/lib/inspec/errors.rb +0 -4
  40. data/lib/inspec/exceptions.rb +0 -1
  41. data/lib/inspec/expect.rb +5 -8
  42. data/lib/inspec/fetcher.rb +7 -10
  43. data/lib/inspec/file_provider.rb +24 -24
  44. data/lib/inspec/formatters.rb +3 -3
  45. data/lib/inspec/formatters/base.rb +8 -8
  46. data/lib/inspec/globals.rb +2 -2
  47. data/lib/inspec/impact.rb +5 -7
  48. data/lib/inspec/input_registry.rb +84 -33
  49. data/lib/inspec/library_eval_context.rb +3 -6
  50. data/lib/inspec/log.rb +1 -5
  51. data/lib/inspec/metadata.rb +17 -16
  52. data/lib/inspec/method_source.rb +5 -9
  53. data/lib/inspec/objects.rb +10 -12
  54. data/lib/inspec/objects/control.rb +7 -9
  55. data/lib/inspec/objects/describe.rb +9 -11
  56. data/lib/inspec/objects/each_loop.rb +1 -3
  57. data/lib/inspec/objects/input.rb +24 -26
  58. data/lib/inspec/objects/list.rb +4 -6
  59. data/lib/inspec/objects/or_test.rb +2 -4
  60. data/lib/inspec/objects/ruby_helper.rb +3 -5
  61. data/lib/inspec/objects/tag.rb +0 -2
  62. data/lib/inspec/objects/test.rb +9 -11
  63. data/lib/inspec/objects/value.rb +3 -5
  64. data/lib/inspec/plugin/v1.rb +2 -2
  65. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  66. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  67. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  68. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  69. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  70. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  71. data/lib/inspec/plugin/v1/registry.rb +0 -4
  72. data/lib/inspec/plugin/v2.rb +8 -8
  73. data/lib/inspec/plugin/v2/activator.rb +1 -1
  74. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  75. data/lib/inspec/plugin/v2/filter.rb +13 -13
  76. data/lib/inspec/plugin/v2/installer.rb +36 -24
  77. data/lib/inspec/plugin/v2/loader.rb +28 -28
  78. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  79. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  80. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  81. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  82. data/lib/inspec/plugin/v2/registry.rb +7 -7
  83. data/lib/inspec/polyfill.rb +0 -3
  84. data/lib/inspec/profile.rb +55 -63
  85. data/lib/inspec/profile_context.rb +27 -30
  86. data/lib/inspec/profile_vendor.rb +6 -9
  87. data/lib/inspec/reporters.rb +24 -24
  88. data/lib/inspec/reporters/automate.rb +17 -19
  89. data/lib/inspec/reporters/base.rb +1 -1
  90. data/lib/inspec/reporters/cli.rb +88 -91
  91. data/lib/inspec/reporters/json.rb +2 -4
  92. data/lib/inspec/reporters/json_automate.rb +1 -3
  93. data/lib/inspec/reporters/json_min.rb +1 -3
  94. data/lib/inspec/reporters/junit.rb +26 -28
  95. data/lib/inspec/reporters/yaml.rb +1 -3
  96. data/lib/inspec/require_loader.rb +0 -4
  97. data/lib/inspec/resource.rb +4 -125
  98. data/lib/inspec/resources.rb +121 -0
  99. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  100. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  101. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  102. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  103. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  104. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  105. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  106. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  107. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  108. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  109. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  110. data/lib/{resources → inspec/resources}/command.rb +11 -10
  111. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  112. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  113. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  114. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  115. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  116. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  117. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  118. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  119. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  120. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  121. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  122. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  123. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  124. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  125. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  126. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  127. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  128. data/lib/{resources → inspec/resources}/file.rb +80 -79
  129. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  130. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  131. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  132. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  133. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  134. data/lib/{resources → inspec/resources}/host.rb +31 -29
  135. data/lib/{resources → inspec/resources}/http.rb +24 -24
  136. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  137. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  138. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  139. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  140. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  141. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  142. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  143. data/lib/{resources → inspec/resources}/json.rb +8 -10
  144. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  145. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  146. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  147. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  148. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  149. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  150. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  151. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  152. data/lib/inspec/resources/mysql.rb +81 -0
  153. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  154. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  155. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  156. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  157. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  158. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  159. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  160. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  161. data/lib/{resources → inspec/resources}/os.rb +6 -8
  162. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  163. data/lib/{resources → inspec/resources}/package.rb +66 -65
  164. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  165. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  166. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  167. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  168. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  169. data/lib/{resources → inspec/resources}/port.rb +134 -136
  170. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  171. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  172. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  173. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  174. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  175. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  176. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  177. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  178. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  179. data/lib/inspec/resources/script.rb +1 -0
  180. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  181. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  182. data/lib/{resources → inspec/resources}/service.rb +74 -75
  183. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  184. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  185. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  186. data/lib/inspec/resources/sys_info.rb +30 -0
  187. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  188. data/lib/{resources → inspec/resources}/users.rb +65 -65
  189. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  190. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  191. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  192. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  193. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  194. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  195. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  196. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  197. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  198. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  199. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  200. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  201. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  202. data/lib/inspec/rspec_extensions.rb +24 -8
  203. data/lib/inspec/rule.rb +14 -15
  204. data/lib/inspec/runner.rb +28 -28
  205. data/lib/inspec/runner_mock.rb +1 -5
  206. data/lib/inspec/runner_rspec.rb +18 -20
  207. data/lib/inspec/runtime_profile.rb +2 -5
  208. data/lib/inspec/schema.rb +142 -143
  209. data/lib/inspec/secrets.rb +3 -7
  210. data/lib/inspec/secrets/yaml.rb +3 -5
  211. data/lib/inspec/shell.rb +11 -15
  212. data/lib/inspec/shell_detector.rb +6 -7
  213. data/lib/inspec/source_reader.rb +4 -8
  214. data/lib/inspec/ui.rb +33 -39
  215. data/lib/inspec/ui_table_helper.rb +12 -0
  216. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  217. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  218. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  219. data/lib/inspec/utils/deprecation.rb +6 -0
  220. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  221. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  222. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  223. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  224. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  225. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  226. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  227. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  228. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  229. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  230. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  231. data/lib/inspec/utils/json_log.rb +15 -0
  232. data/lib/inspec/utils/latest_version.rb +13 -0
  233. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  234. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  235. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  236. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  237. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  238. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  239. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  240. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  241. data/lib/inspec/utils/telemetry.rb +3 -3
  242. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  243. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  244. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  245. data/lib/inspec/version.rb +1 -1
  246. data/lib/matchers/matchers.rb +22 -25
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  248. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  249. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  250. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  256. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  257. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  258. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  259. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
  260. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
  261. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
  262. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
  263. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
  264. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  265. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  266. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  267. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  268. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  269. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  270. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
  271. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
  272. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
  273. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
  274. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
  275. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
  276. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
  277. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  278. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  279. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  280. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  281. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  282. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  283. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  284. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  285. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  286. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  287. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  288. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
  289. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
  290. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
  291. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
  292. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
  293. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
  294. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
  295. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  296. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
  297. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
  298. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  299. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  300. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  301. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
  302. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
  303. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
  304. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
  305. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  306. data/lib/resource_support/aws.rb +67 -67
  307. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
  308. data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
  309. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
  310. data/lib/resources/aws/aws_billing_report.rb +15 -8
  311. data/lib/resources/aws/aws_billing_reports.rb +10 -7
  312. data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
  313. data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
  314. data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
  315. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
  316. data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
  317. data/lib/resources/aws/aws_config_recorder.rb +10 -6
  318. data/lib/resources/aws/aws_ebs_volume.rb +12 -8
  319. data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
  320. data/lib/resources/aws/aws_ec2_instance.rb +14 -11
  321. data/lib/resources/aws/aws_ec2_instances.rb +9 -5
  322. data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
  323. data/lib/resources/aws/aws_eks_cluster.rb +13 -9
  324. data/lib/resources/aws/aws_elb.rb +9 -5
  325. data/lib/resources/aws/aws_elbs.rb +9 -5
  326. data/lib/resources/aws/aws_flow_log.rb +17 -13
  327. data/lib/resources/aws/aws_iam_access_key.rb +15 -11
  328. data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
  329. data/lib/resources/aws/aws_iam_group.rb +9 -5
  330. data/lib/resources/aws/aws_iam_groups.rb +9 -5
  331. data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
  332. data/lib/resources/aws/aws_iam_policies.rb +9 -5
  333. data/lib/resources/aws/aws_iam_policy.rb +16 -12
  334. data/lib/resources/aws/aws_iam_role.rb +9 -5
  335. data/lib/resources/aws/aws_iam_root_user.rb +12 -8
  336. data/lib/resources/aws/aws_iam_user.rb +12 -12
  337. data/lib/resources/aws/aws_iam_users.rb +10 -10
  338. data/lib/resources/aws/aws_kms_key.rb +12 -8
  339. data/lib/resources/aws/aws_kms_keys.rb +9 -5
  340. data/lib/resources/aws/aws_rds_instance.rb +11 -8
  341. data/lib/resources/aws/aws_route_table.rb +11 -7
  342. data/lib/resources/aws/aws_route_tables.rb +10 -6
  343. data/lib/resources/aws/aws_s3_bucket.rb +14 -11
  344. data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
  345. data/lib/resources/aws/aws_s3_buckets.rb +9 -7
  346. data/lib/resources/aws/aws_security_group.rb +16 -12
  347. data/lib/resources/aws/aws_security_groups.rb +12 -8
  348. data/lib/resources/aws/aws_sns_subscription.rb +15 -11
  349. data/lib/resources/aws/aws_sns_topic.rb +10 -6
  350. data/lib/resources/aws/aws_sns_topics.rb +9 -5
  351. data/lib/resources/aws/aws_sqs_queue.rb +18 -14
  352. data/lib/resources/aws/aws_subnet.rb +11 -7
  353. data/lib/resources/aws/aws_subnets.rb +9 -5
  354. data/lib/resources/aws/aws_vpc.rb +10 -6
  355. data/lib/resources/aws/aws_vpcs.rb +9 -5
  356. data/lib/resources/azure/azure_backend.rb +20 -18
  357. data/lib/resources/azure/azure_generic_resource.rb +13 -15
  358. data/lib/resources/azure/azure_resource_group.rb +17 -19
  359. data/lib/resources/azure/azure_virtual_machine.rb +6 -8
  360. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
  361. data/lib/source_readers/flat.rb +6 -10
  362. data/lib/source_readers/inspec.rb +8 -12
  363. metadata +141 -142
  364. data/lib/resources/mysql.rb +0 -82
  365. data/lib/resources/sys_info.rb +0 -28
  366. data/lib/utils/deprecation.rb +0 -6
  367. data/lib/utils/json_log.rb +0 -18
  368. data/lib/utils/latest_version.rb +0 -22
@@ -19,8 +19,6 @@ require 'inspec/plugin/v2'
19
19
  # You can select from a number of test harnesses. Since InSpec uses Spec-style controls
20
20
  # in profile code, you will probably want to use something like minitest/spec, which provides
21
21
  # Spec-style tests.
22
- require 'minitest/spec'
23
- require 'minitest/autorun'
22
+ require 'minitest/autorun' # loads all styles and runs tests automatically
24
23
 
25
24
  # You might want to put some debugging tools here. We run tests to find bugs, after all.
26
- require 'byebug'
@@ -7,7 +7,7 @@ require_relative '../helper'
7
7
  # Load the class under test, the CliCommand definition.
8
8
  require '<%= plugin_name %>/cli_command'
9
9
 
10
- # Because InSpec is a Spec-style test suite, we're going to use MiniTest::Spec
10
+ # Because InSpec is a Spec-style test suite, we're going to use Minitest::Spec
11
11
  # here, for familiar look and feel. However, this isn't InSpec (or RSpec) code.
12
12
  describe InspecPlugins::<%= module_name %>::CliCommand do
13
13
 
@@ -31,7 +31,7 @@ describe InspecPlugins::<%= module_name %>::CliCommand do
31
31
 
32
32
  # Some tests through here use minitest Expectations, which attach to all
33
33
  # Objects, and begin with 'must' (positive) or 'wont' (negative)
34
- # See https://ruby-doc.org/stdlib-2.1.0/libdoc/minitest/rdoc/MiniTest/Expectations.html
34
+ # See http://docs.seattlerb.org/minitest/Minitest/Expectations.html
35
35
 
36
36
  # Option count OK?
37
37
  it "should take one option" do
@@ -7,7 +7,7 @@ require_relative '../helper'
7
7
  # Load the class under test, the Plugin definition.
8
8
  require '<%= plugin_name %>/plugin'
9
9
 
10
- # Because InSpec is a Spec-style test suite, we're going to use MiniTest::Spec
10
+ # Because InSpec is a Spec-style test suite, we're going to use Minitest::Spec
11
11
  # here, for familiar look and feel. However, this isn't InSpec (or RSpec) code.
12
12
 
13
13
  describe InspecPlugins::<%= module_name %>::Plugin do
@@ -36,7 +36,7 @@ describe InspecPlugins::<%= module_name %>::Plugin do
36
36
 
37
37
  # Some tests through here use minitest Expectations, which attach to all
38
38
  # Objects, and begin with 'must' (positive) or 'wont' (negative)
39
- # See https://ruby-doc.org/stdlib-2.1.0/libdoc/minitest/rdoc/MiniTest/Expectations.html
39
+ # See http://docs.seattlerb.org/minitest/Minitest/Expectations.html
40
40
 
41
41
  # The plugin system had an undocumented v1 API; this should be a v2 example.
42
42
  it "should be an api-v2 plugin" do
@@ -1,32 +1,31 @@
1
- # encoding: utf-8
2
1
  # copyright: 2018, The Authors
3
2
 
4
- title 'Sample Section'
3
+ title "Sample Section"
5
4
 
6
- aws_vpc_id = attribute('aws_vpc_id', default: '', description: 'Optional AWS VPC identifier.')
5
+ aws_vpc_id = attribute("aws_vpc_id", default: "", description: "Optional AWS VPC identifier.")
7
6
 
8
7
  # You add controls here
9
- control 'aws-single-vpc-exists-check' do # A unique ID for this control.
10
- only_if { aws_vpc_id != ''} # Only run this control if the `aws_vpc_id` attribute is provided.
8
+ control "aws-single-vpc-exists-check" do # A unique ID for this control.
9
+ only_if { aws_vpc_id != "" } # Only run this control if the `aws_vpc_id` attribute is provided.
11
10
  impact 1.0 # The criticality, if this control fails.
12
- title 'Check to see if custom VPC exists.' # A human-readable title.
11
+ title "Check to see if custom VPC exists." # A human-readable title.
13
12
  describe aws_vpc(aws_vpc_id) do # The test itself.
14
13
  it { should exist }
15
14
  end
16
15
  end
17
16
 
18
17
  # Plural resources can be inspected to check for specific resource details.
19
- control 'aws-vpcs-check' do
18
+ control "aws-vpcs-check" do
20
19
  impact 1.0
21
- title 'Check in all the VPCs for default sg not allowing 22 inwards'
20
+ title "Check in all the VPCs for default sg not allowing 22 inwards"
22
21
  aws_vpcs.vpc_ids.each do |vpc_id|
23
- describe aws_security_group(vpc_id: vpc_id, group_name: 'default') do
22
+ describe aws_security_group(vpc_id: vpc_id, group_name: "default") do
24
23
  it { should allow_in(port: 22) }
25
24
  end
26
25
  end
27
26
  end
28
27
 
29
- control 'aws-vpcs-multi-region-status-check' do # A unique ID for this control.
28
+ control "aws-vpcs-multi-region-status-check" do # A unique ID for this control.
30
29
  impact 1.0 # The criticality, if this control fails.
31
30
  title 'Check AWS VPCs in all regions have status "available"' # A human-readable title.
32
31
  aws_regions.region_names.each do |region| # Loop over all available AWS regions
@@ -37,4 +36,4 @@ control 'aws-vpcs-multi-region-status-check' do # A
37
36
  end
38
37
  end
39
38
  end
40
- end
39
+ end
@@ -1,15 +1,14 @@
1
- # encoding: utf-8
2
1
  # copyright: 2018, The Authors
3
2
 
4
- title 'Sample Section'
3
+ title "Sample Section"
5
4
 
6
5
  # you add controls here
7
- control 'azure-virtual-machines-exist-check' do # A unique ID for this control.
6
+ control "azure-virtual-machines-exist-check" do # A unique ID for this control.
8
7
  impact 1.0 # The criticality, if this control fails.
9
- title 'Check resource groups to see if any VMs exist.' # A human-readable title
8
+ title "Check resource groups to see if any VMs exist." # A human-readable title
10
9
  azurerm_resource_groups.names.each do |resource_group_name| # Plural resources can be leveraged to loop across many resources
11
10
  describe azurerm_virtual_machines(resource_group: resource_group_name) do
12
- it { should exist } # The test itself.
11
+ it { should exist } # The test itself.
13
12
  end
14
13
  end
15
14
  end
@@ -1,25 +1,24 @@
1
- # encoding: utf-8
2
1
  # copyright: 2018, The Authors
3
2
 
4
- title 'Sample Section'
3
+ title "Sample Section"
5
4
 
6
- gcp_project_id = attribute('gcp_project_id')
5
+ gcp_project_id = attribute("gcp_project_id")
7
6
 
8
7
  # you add controls here
9
- control 'gcp-single-region-1.0' do # A unique ID for this control
8
+ control "gcp-single-region-1.0" do # A unique ID for this control
10
9
  impact 1.0 # The criticality, if this control fails.
11
- title 'Ensure single region has the correct properties.' # A human-readable title
12
- desc 'An optional description...'
13
- describe google_compute_region(project: gcp_project_id, name: 'europe-west2') do # The actual test
14
- its('zone_names') { should include 'europe-west2-a' }
10
+ title "Ensure single region has the correct properties." # A human-readable title
11
+ desc "An optional description..."
12
+ describe google_compute_region(project: gcp_project_id, name: "europe-west2") do # The actual test
13
+ its("zone_names") { should include "europe-west2-a" }
15
14
  end
16
15
  end
17
16
 
18
17
  # plural resources can be leveraged to loop across many resources
19
- control 'gcp-regions-loop-1.0' do # A unique ID for this control
18
+ control "gcp-regions-loop-1.0" do # A unique ID for this control
20
19
  impact 1.0 # The criticality, if this control fails.
21
- title 'Ensure regions have the correct properties in bulk.' # A human-readable title
22
- desc 'An optional description...'
20
+ title "Ensure regions have the correct properties in bulk." # A human-readable title
21
+ desc "An optional description..."
23
22
  google_compute_regions(project: gcp_project_id).region_names.each do |region_name| # Loop across all regions by name
24
23
  describe google_compute_region(project: gcp_project_id, name: region_name) do # The test for a single region
25
24
  it { should be_up }
@@ -1,19 +1,18 @@
1
- # encoding: utf-8
2
1
  # copyright: 2018, The Authors
3
2
 
4
- title 'sample section'
3
+ title "sample section"
5
4
 
6
5
  # you can also use plain tests
7
- describe file('/tmp') do
6
+ describe file("/tmp") do
8
7
  it { should be_directory }
9
8
  end
10
9
 
11
10
  # you add controls here
12
- control 'tmp-1.0' do # A unique ID for this control
11
+ control "tmp-1.0" do # A unique ID for this control
13
12
  impact 0.7 # The criticality, if this control fails.
14
- title 'Create /tmp directory' # A human-readable title
15
- desc 'An optional description...'
16
- describe file('/tmp') do # The actual test
13
+ title "Create /tmp directory" # A human-readable title
14
+ desc "An optional description..."
15
+ describe file("/tmp") do # The actual test
17
16
  it { should be_directory }
18
17
  end
19
18
  end
@@ -1,45 +1,49 @@
1
- require_relative '../../../shared/core_plugin_test_helper.rb'
1
+ require_relative "../../../shared/core_plugin_test_helper.rb"
2
2
 
3
- class InitPluginCli < MiniTest::Test
3
+ class InitPluginCli < Minitest::Test
4
4
  include CorePluginFunctionalHelper
5
5
 
6
+ def setup
7
+ skip_windows!
8
+ end
9
+
6
10
  def test_generating_inspec_plugin_correct_prefix_required
7
11
  Dir.mktmpdir do |dir|
8
- plugin = 'wacky-name'
12
+ plugin = "wacky-name"
9
13
  run_result = run_inspec_process("init plugin --no-prompt #{plugin} ", prefix: "cd #{dir} &&")
10
14
  assert_equal 1, run_result.exit_status
11
15
  assert_empty run_result.stderr
12
- assert_includes run_result.stdout, 'ERROR'
13
- assert_includes run_result.stdout, 'Plugin names must begin with'
16
+ assert_includes run_result.stdout, "ERROR"
17
+ assert_includes run_result.stdout, "Plugin names must begin with"
14
18
  end
15
19
  end
16
20
 
17
21
  def test_generating_inspec_plugin_with_default_options
18
22
  Dir.mktmpdir do |dir|
19
- plugin = 'inspec-test-generated-plugin'
20
- snake_case = plugin.tr('-', '_')
21
- module_name = plugin.sub(/^inspec\-/, '').split('-').map(&:capitalize).join('')
23
+ plugin = "inspec-test-generated-plugin"
24
+ snake_case = plugin.tr("-", "_")
25
+ module_name = plugin.sub(/^inspec\-/, "").split("-").map(&:capitalize).join("")
22
26
 
23
27
  run_result = run_inspec_process("init plugin --no-prompt #{plugin}", prefix: "cd #{dir} &&")
24
28
  assert_empty run_result.stderr
25
29
 
26
30
  assert_equal 0, run_result.exit_status
27
- assert_includes run_result.stdout, 'Creating new inspec plugin at'
31
+ assert_includes run_result.stdout, "Creating new inspec plugin at"
28
32
  assert_includes run_result.stdout, plugin
29
33
 
30
34
  # Check generated files and contents.
31
35
  # Each file must exist, and its contents must match each of the regexen given.
32
36
  {
33
- File.join(plugin, 'README.md') => [
37
+ File.join(plugin, "README.md") => [
34
38
  /#{plugin}/
35
39
  ],
36
- File.join(plugin, 'LICENSE') => [
40
+ File.join(plugin, "LICENSE") => [
37
41
  /(?!opyright)/, # No copyright by default
38
42
  /Apache License/,
39
43
  ],
40
- File.join(plugin, 'Gemfile') => [], # No interpolation
41
- File.join(plugin, 'Rakefile') => [], # No interpolation
42
- File.join(plugin, plugin + '.gemspec') => [
44
+ File.join(plugin, "Gemfile") => [], # No interpolation
45
+ File.join(plugin, "Rakefile") => [], # No interpolation
46
+ File.join(plugin, plugin + ".gemspec") => [
43
47
  /require '#{plugin}\/version'/,
44
48
  /spec\.name\s+=\s+'#{plugin}'/,
45
49
  /spec\.version\s+=\s+InspecPlugins::#{module_name}::VERSION/,
@@ -51,10 +55,10 @@ class InitPluginCli < MiniTest::Test
51
55
  /spec\.homepage\s+=\s+'https:\/\/github.com\/you\/#{plugin}'/,
52
56
  /spec\.license\s+=\s+'Apache-2\.0'/,
53
57
  ],
54
- File.join(plugin, 'lib', plugin + '.rb') => [
58
+ File.join(plugin, "lib", plugin + ".rb") => [
55
59
  /require\s'#{plugin}\/plugin'/,
56
60
  ],
57
- File.join(plugin, 'lib', plugin, 'plugin.rb') => [
61
+ File.join(plugin, "lib", plugin, "plugin.rb") => [
58
62
  /require\s'#{plugin}\/version'/,
59
63
  /\#\s#{plugin}\s=>\s#{module_name}/,
60
64
  /module\s#{module_name}/,
@@ -64,10 +68,10 @@ class InitPluginCli < MiniTest::Test
64
68
  /require\s'#{plugin}\/cli_command'/,
65
69
  /InspecPlugins::#{module_name}::CliCommand/,
66
70
  ],
67
- File.join(plugin, 'lib', plugin, 'version.rb') => [
71
+ File.join(plugin, "lib", plugin, "version.rb") => [
68
72
  /module\s#{module_name}/,
69
73
  ],
70
- File.join(plugin, 'lib', plugin, 'cli_command.rb') => [
74
+ File.join(plugin, "lib", plugin, "cli_command.rb") => [
71
75
  /module\sInspecPlugins::#{module_name}/,
72
76
  /\#\smakes\s`inspec\smy-command\s\.\.\.`\swork\./,
73
77
  /subcommand_desc\s'my_command\s\[COMMAND\]'/,
@@ -76,22 +80,22 @@ class InitPluginCli < MiniTest::Test
76
80
  /\#\sruns\s`inspec\smy-command\sdo-something`./,
77
81
  /Edit\slib\/#{plugin}\/cli_command\.rb\sto\smake\sit\sdo/,
78
82
  ],
79
- File.join(plugin, 'test', 'helper.rb') => [], # No interpolation
80
- File.join(plugin, 'test', 'functional', 'README.md') => [], # No interpolation
81
- File.join(plugin, 'test', 'functional', snake_case + '_test.rb') => [
83
+ File.join(plugin, "test", "helper.rb") => [], # No interpolation
84
+ File.join(plugin, "test", "functional", "README.md") => [], # No interpolation
85
+ File.join(plugin, "test", "functional", snake_case + "_test.rb") => [
82
86
  # Whatever goes here
83
87
  ],
84
- File.join(plugin, 'test', 'unit', 'plugin_def_test.rb') => [
88
+ File.join(plugin, "test", "unit", "plugin_def_test.rb") => [
85
89
  /require\s'#{plugin}\/plugin'/,
86
90
  /describe InspecPlugins::#{module_name}::Plugin\sdo/,
87
91
  /let\(:plugin_name\) \{ \:'#{plugin}\' \}/,
88
92
  ],
89
- File.join(plugin, 'test', 'unit', 'cli_args_test.rb') => [
93
+ File.join(plugin, "test", "unit", "cli_args_test.rb") => [
90
94
  /require '#{plugin}\/cli_command'/,
91
95
  /describe InspecPlugins::#{module_name}::CliCommand do/,
92
96
  /let\(\:cli_class\) \{ InspecPlugins::#{module_name}::CliCommand \}/,
93
97
  ],
94
- File.join(plugin, 'test', 'unit', 'README.md') => [
98
+ File.join(plugin, "test", "unit", "README.md") => [
95
99
  /cli_args_test\.rb/,
96
100
  ],
97
101
  }.each do |path, regexen|
@@ -108,38 +112,37 @@ class InitPluginCli < MiniTest::Test
108
112
 
109
113
  def test_generating_inspec_plugin_with_custom_options
110
114
  Dir.mktmpdir do |dir|
111
- plugin = 'inspec-test-generated-plugin'
112
- snake_case = plugin.tr('-', '_')
113
- camel_case = plugin.sub(/^inspec\-/, '').split('-').map(&:capitalize).join('')
115
+ plugin = "inspec-test-generated-plugin"
116
+ snake_case = plugin.tr("-", "_")
114
117
 
115
- opts = ''
116
- opts += ' --author-email bob@example.com '
117
- opts += ' --author-name Bob '
118
+ opts = ""
119
+ opts += " --author-email bob@example.com "
120
+ opts += " --author-name Bob "
118
121
  opts += ' --copyright "Copyright © 2018 Bob" '
119
122
  opts += ' --description "That you will really like" '
120
- opts += ' --license-name BSD-3-Clause '
123
+ opts += " --license-name BSD-3-Clause "
121
124
  opts += ' --summary "A fantastic plugin" '
122
125
 
123
- opts += ' --homepage http://example.com '
124
- opts += ' --module_name FunPlugin'
126
+ opts += " --homepage http://example.com "
127
+ opts += " --module_name FunPlugin"
125
128
 
126
129
  run_result = run_inspec_process("init plugin #{plugin} --no-prompt #{opts}", prefix: "cd #{dir} &&")
127
130
  assert_empty run_result.stderr
128
131
  assert_equal 0, run_result.exit_status
129
- assert_includes run_result.stdout, 'Creating new inspec plugin at'
132
+ assert_includes run_result.stdout, "Creating new inspec plugin at"
130
133
  assert_includes run_result.stdout, plugin
131
134
 
132
135
  # Check generated files and contents.
133
136
  # Each file must exist, and its contents must match each of the regexen given.
134
137
  {
135
- File.join(plugin, 'README.md') => [],
136
- File.join(plugin, 'LICENSE') => [
138
+ File.join(plugin, "README.md") => [],
139
+ File.join(plugin, "LICENSE") => [
137
140
  /Copyright © 2018 Bob/,
138
141
  /used to endorse or promote/,
139
142
  ],
140
- File.join(plugin, 'Gemfile') => [],
141
- File.join(plugin, 'Rakefile') => [],
142
- File.join(plugin, plugin + '.gemspec') => [
143
+ File.join(plugin, "Gemfile") => [],
144
+ File.join(plugin, "Rakefile") => [],
145
+ File.join(plugin, plugin + ".gemspec") => [
143
146
  /spec\.version\s+=\s+InspecPlugins::FunPlugin::VERSION/,
144
147
  /spec\.authors\s+=\s+\['Bob'\]/,
145
148
  /spec\.email\s+=\s+\['bob@example\.com'\]/,
@@ -148,14 +151,14 @@ class InitPluginCli < MiniTest::Test
148
151
  /spec\.homepage\s+=\s+'http:\/\/example.com'/,
149
152
  /spec\.license\s+=\s+'BSD-3-Clause'/,
150
153
  ],
151
- File.join(plugin, 'lib', plugin + '.rb') => [],
152
- File.join(plugin, 'lib', plugin, 'plugin.rb') => [],
153
- File.join(plugin, 'lib', plugin, 'version.rb') => [],
154
- File.join(plugin, 'lib', plugin, 'cli_command.rb') => [],
155
- File.join(plugin, 'test', 'helper.rb') => [],
156
- File.join(plugin, 'test', 'functional', snake_case + '_test.rb') => [],
157
- File.join(plugin, 'test', 'unit', 'plugin_def_test.rb') => [],
158
- File.join(plugin, 'test', 'unit', 'cli_args_test.rb') => [],
154
+ File.join(plugin, "lib", plugin + ".rb") => [],
155
+ File.join(plugin, "lib", plugin, "plugin.rb") => [],
156
+ File.join(plugin, "lib", plugin, "version.rb") => [],
157
+ File.join(plugin, "lib", plugin, "cli_command.rb") => [],
158
+ File.join(plugin, "test", "helper.rb") => [],
159
+ File.join(plugin, "test", "functional", snake_case + "_test.rb") => [],
160
+ File.join(plugin, "test", "unit", "plugin_def_test.rb") => [],
161
+ File.join(plugin, "test", "unit", "cli_args_test.rb") => [],
159
162
  }.each do |path, regexen|
160
163
  full_path = File.join(dir, path)
161
164
  assert(File.exist?(full_path), "#{path} should have been generated")
@@ -168,6 +171,4 @@ class InitPluginCli < MiniTest::Test
168
171
  end
169
172
  end
170
173
 
171
-
172
-
173
- end
174
+ end
@@ -1,32 +1,34 @@
1
- # encoding: utf-8
1
+ require "yaml"
2
+ require_relative "../../../shared/core_plugin_test_helper.rb"
2
3
 
3
- require 'yaml'
4
- require_relative '../../../shared/core_plugin_test_helper.rb'
5
-
6
- class InitCli < MiniTest::Test
4
+ class InitCli < Minitest::Test
7
5
  include CorePluginFunctionalHelper
8
6
 
7
+ def setup
8
+ skip_windows!
9
+ end
10
+
9
11
  def test_generating_inspec_profile
10
12
  Dir.mktmpdir do |dir|
11
- profile = File.join(dir, 'test-profile')
13
+ profile = File.join(dir, "test-profile")
12
14
  out = run_inspec_process("init profile test-profile", prefix: "cd #{dir} &&")
13
15
  assert_equal 0, out.exit_status
14
- assert_includes out.stdout, 'Creating new profile at'
16
+ assert_includes out.stdout, "Creating new profile at"
15
17
  assert_includes out.stdout, profile
16
- assert_includes Dir.entries(profile).join, 'inspec.yml'
17
- assert_includes Dir.entries(profile).join, 'README.md'
18
+ assert_includes Dir.entries(profile).join, "inspec.yml"
19
+ assert_includes Dir.entries(profile).join, "README.md"
18
20
  end
19
21
  end
20
22
 
21
23
  def test_generating_inspec_profile_with_explicit_platform
22
24
  Dir.mktmpdir do |dir|
23
- profile = File.join(dir, 'test-profile')
25
+ profile = File.join(dir, "test-profile")
24
26
  out = run_inspec_process("init profile --platform os test-profile", prefix: "cd #{dir} &&")
25
27
  assert_equal 0, out.exit_status
26
- assert_includes out.stdout, 'Creating new profile at'
28
+ assert_includes out.stdout, "Creating new profile at"
27
29
  assert_includes out.stdout, profile
28
- assert_includes Dir.entries(profile).join, 'inspec.yml'
29
- assert_includes Dir.entries(profile).join, 'README.md'
30
+ assert_includes Dir.entries(profile).join, "inspec.yml"
31
+ assert_includes Dir.entries(profile).join, "README.md"
30
32
  end
31
33
  end
32
34
 
@@ -34,67 +36,67 @@ class InitCli < MiniTest::Test
34
36
  Dir.mktmpdir do |dir|
35
37
  out = run_inspec_process("init profile --platform nonesuch test-profile", prefix: "cd #{dir} &&")
36
38
  assert_equal 1, out.exit_status
37
- assert_includes out.stdout, 'Unable to generate profile'
39
+ assert_includes out.stdout, "Unable to generate profile"
38
40
  assert_includes out.stdout, "No template available for platform 'nonesuch'"
39
41
  end
40
42
  end
41
43
 
42
44
  def test_profile_with_slash_name
43
45
  Dir.mktmpdir do |dir|
44
- profile = dir + '/test/deeper/profile'
46
+ profile = dir + "/test/deeper/profile"
45
47
  out = run_inspec_process("init profile test/deeper/profile", prefix: "cd #{dir} &&")
46
48
  assert_equal 0, out.exit_status
47
49
  assert_equal true, File.exist?(profile)
48
50
  profile = YAML.load_file("#{profile}/inspec.yml")
49
- assert_equal 'profile', profile['name']
51
+ assert_equal "profile", profile["name"]
50
52
  end
51
53
  end
52
54
 
53
55
  def test_generating_inspec_profile_gcp
54
56
  Dir.mktmpdir do |dir|
55
- profile = File.join(dir, 'test-gcp-profile')
57
+ profile = File.join(dir, "test-gcp-profile")
56
58
  out = run_inspec_process("init profile --platform gcp test-gcp-profile", prefix: "cd #{dir} &&")
57
59
  assert_equal 0, out.exit_status
58
- assert_includes out.stdout, 'Creating new profile at'
60
+ assert_includes out.stdout, "Creating new profile at"
59
61
  assert_includes out.stdout, profile
60
- assert_includes Dir.entries(profile).join, 'inspec.yml'
61
- assert_includes Dir.entries(profile).join, 'README.md'
62
+ assert_includes Dir.entries(profile).join, "inspec.yml"
63
+ assert_includes Dir.entries(profile).join, "README.md"
62
64
  end
63
65
  end
64
66
 
65
67
  def test_generating_inspec_profile_aws
66
68
  Dir.mktmpdir do |dir|
67
- profile = File.join(dir, 'test-aws-profile')
69
+ profile = File.join(dir, "test-aws-profile")
68
70
  out = run_inspec_process("init profile --platform aws test-aws-profile", prefix: "cd #{dir} &&")
69
71
  assert_equal 0, out.exit_status
70
- assert_includes out.stdout, 'Creating new profile at'
72
+ assert_includes out.stdout, "Creating new profile at"
71
73
  assert_includes out.stdout, profile
72
- assert_includes Dir.entries(profile).join, 'inspec.yml'
73
- assert_includes Dir.entries(profile).join, 'README.md'
74
+ assert_includes Dir.entries(profile).join, "inspec.yml"
75
+ assert_includes Dir.entries(profile).join, "README.md"
74
76
  end
75
77
  end
76
78
 
77
79
  def test_generating_inspec_profile_azure
78
80
  Dir.mktmpdir do |dir|
79
- profile = File.join(dir, 'test-azure-profile')
81
+ profile = File.join(dir, "test-azure-profile")
80
82
  out = run_inspec_process("init profile --platform azure test-azure-profile", prefix: "cd #{dir} &&")
81
83
  assert_equal 0, out.exit_status
82
- assert_includes out.stdout, 'Creating new profile at'
84
+ assert_includes out.stdout, "Creating new profile at"
83
85
  assert_includes out.stdout, profile
84
- assert_includes Dir.entries(profile).join, 'inspec.yml'
85
- assert_includes Dir.entries(profile).join, 'README.md'
86
+ assert_includes Dir.entries(profile).join, "inspec.yml"
87
+ assert_includes Dir.entries(profile).join, "README.md"
86
88
  end
87
89
  end
88
90
 
89
91
  def test_generating_inspec_profile_os
90
92
  Dir.mktmpdir do |dir|
91
- profile = File.join(dir, 'test-os-profile')
93
+ profile = File.join(dir, "test-os-profile")
92
94
  out = run_inspec_process("init profile --platform os test-os-profile", prefix: "cd #{dir} &&")
93
95
  assert_equal 0, out.exit_status
94
- assert_includes out.stdout, 'Creating new profile at'
96
+ assert_includes out.stdout, "Creating new profile at"
95
97
  assert_includes out.stdout, profile
96
- assert_includes Dir.entries(profile).join, 'inspec.yml'
97
- assert_includes Dir.entries(profile).join, 'README.md'
98
+ assert_includes Dir.entries(profile).join, "inspec.yml"
99
+ assert_includes Dir.entries(profile).join, "README.md"
98
100
  end
99
101
  end
100
- end
102
+ end