test-kitchen 1.23.3 → 1.23.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kitchen/version.rb +1 -1
- data/support/chef-client-zero.rb +1 -1
- metadata +5 -324
- data/.gitattributes +0 -3
- data/.github/ISSUE_TEMPLATE.md +0 -56
- data/.github/lock.yml +0 -1
- data/.gitignore +0 -38
- data/.gitmodules +0 -0
- data/.kitchen.appveyor.yml +0 -25
- data/.kitchen.dokken.yml +0 -31
- data/.kitchen.proxy.yml +0 -27
- data/.rubocop.yml +0 -5
- data/.travis.yml +0 -57
- data/.yardopts +0 -3
- data/Berksfile +0 -3
- data/CHANGELOG.md +0 -1510
- data/CONTRIBUTING.md +0 -14
- data/ECOSYSTEM.md +0 -93
- data/Gemfile +0 -40
- data/Gemfile.proxy_tests +0 -4
- data/Guardfile +0 -42
- data/MAINTAINERS.md +0 -29
- data/README.md +0 -138
- data/RELEASE_NOTES.md +0 -167
- data/Rakefile +0 -77
- data/appveyor.yml +0 -47
- data/docs/CONTRIBUTING.md +0 -8
- data/docs/LICENSE +0 -22
- data/docs/README.md +0 -78
- data/docs/archetypes/default.md +0 -6
- data/docs/config.toml +0 -36
- data/docs/content/docs/_index.md +0 -5
- data/docs/content/docs/drivers/_index.md +0 -27
- data/docs/content/docs/drivers/azurerm.md +0 -44
- data/docs/content/docs/drivers/vagrant.md +0 -39
- data/docs/content/docs/getting-started/00-introduction.md +0 -14
- data/docs/content/docs/getting-started/01-installing.md +0 -64
- data/docs/content/docs/getting-started/02-getting-help.md +0 -59
- data/docs/content/docs/getting-started/03-creating-cookbook.md +0 -46
- data/docs/content/docs/getting-started/04-kitchen-yml.md +0 -56
- data/docs/content/docs/getting-started/05-instances.md +0 -79
- data/docs/content/docs/getting-started/06-writing-recipe.md +0 -21
- data/docs/content/docs/getting-started/07-running-converge.md +0 -134
- data/docs/content/docs/getting-started/08-manually-verifying.md +0 -55
- data/docs/content/docs/getting-started/09-writing-test.md +0 -49
- data/docs/content/docs/getting-started/10-running-verify.md +0 -120
- data/docs/content/docs/getting-started/11-running-test.md +0 -168
- data/docs/content/docs/getting-started/12-adding-platform.md +0 -206
- data/docs/content/docs/getting-started/13-adding-feature.md +0 -30
- data/docs/content/docs/getting-started/14-adding-suite.md +0 -60
- data/docs/content/docs/getting-started/15-adding-test.md +0 -66
- data/docs/content/docs/getting-started/16-adding-recipe.md +0 -53
- data/docs/content/docs/getting-started/17-excluding-platforms.md +0 -101
- data/docs/content/docs/getting-started/18-next-steps.md +0 -23
- data/docs/content/docs/getting-started/_index.md +0 -5
- data/docs/content/docs/provisioners/_index.md +0 -36
- data/docs/content/docs/provisioners/chef.md +0 -69
- data/docs/content/docs/provisioners/shell.md +0 -31
- data/docs/content/docs/reference/_index.md +0 -5
- data/docs/content/docs/reference/configuration.md +0 -53
- data/docs/content/docs/reference/examples.md +0 -97
- data/docs/content/docs/reference/faq.md +0 -58
- data/docs/content/docs/reference/fixtures.md +0 -32
- data/docs/content/docs/reference/glossary.md +0 -34
- data/docs/content/docs/reference/lifecycle-hooks.md +0 -68
- data/docs/content/docs/reference/reboots.md +0 -24
- data/docs/content/docs/verifiers/_index.md +0 -14
- data/docs/content/docs/verifiers/inspec.md +0 -44
- data/docs/content/docs/verifiers/serverspec.md +0 -20
- data/docs/static/images/chef-logo.png +0 -0
- data/docs/static/images/chef-logo.svg +0 -1
- data/docs/static/images/github-banner.png +0 -0
- data/docs/static/images/github-banner.svg +0 -71
- data/docs/static/images/kitchen-logo.png +0 -0
- data/docs/static/images/logo-block.svg +0 -222
- data/docs/static/images/logo.png +0 -0
- data/docs/static/images/logos-group.png +0 -0
- data/docs/static/images/terminal-1.png +0 -0
- data/docs/static/images/terminal-1.svg +0 -589
- data/docs/static/images/terminal-2.png +0 -0
- data/docs/static/images/terminal-2.svg +0 -235
- data/docs/static/images/terminal-3.png +0 -0
- data/docs/static/images/terminal-3.svg +0 -439
- data/docs/static/index.html +0 -59
- data/docs/static/javascripts/all.js +0 -348
- data/docs/static/javascripts/vendor/foundation.min.js +0 -4
- data/docs/static/javascripts/vendor/jquery.min.js +0 -5
- data/docs/static/javascripts/vendor/what-input.js +0 -336
- data/docs/static/stylesheets/site.css +0 -4667
- data/docs/themes/kitchen/layouts/_default/baseof.html +0 -53
- data/docs/themes/kitchen/layouts/_default/list.html +0 -4
- data/docs/themes/kitchen/layouts/_default/redirect.html +0 -10
- data/docs/themes/kitchen/layouts/_default/single.html +0 -6
- data/docs/themes/kitchen/layouts/partials/core/head.html +0 -6
- data/docs/themes/kitchen/layouts/partials/kitchen/footer.html +0 -18
- data/docs/themes/kitchen/layouts/partials/kitchen/head.html +0 -4
- data/docs/themes/kitchen/layouts/partials/kitchen/header.html +0 -26
- data/docs/themes/kitchen/layouts/partials/search-docs.html +0 -3
- data/docs/themes/kitchen/layouts/partials/sidebar.html +0 -33
- data/docs/themes/kitchen/layouts/shortcodes/button.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/codeblock.html +0 -8
- data/docs/themes/kitchen/layouts/shortcodes/cta.html +0 -5
- data/docs/themes/kitchen/layouts/shortcodes/danger.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/example_fqdn.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/info.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/ol-styled.html +0 -3
- data/docs/themes/kitchen/layouts/shortcodes/success.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/tip.html +0 -1
- data/docs/themes/kitchen/layouts/shortcodes/warning.html +0 -1
- data/docs/themes/kitchen/static/css/kitchen.css +0 -10
- data/docs/themes/kitchen/static/css/kitchen.css.map +0 -7
- data/docs/themes/kitchen/static/fonts/Muli-Bold.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/Muli-Regular.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/Muli-SemiBold.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.svg +0 -1104
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff2 +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.svg +0 -372
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff2 +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.svg +0 -1896
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff2 +0 -0
- data/docs/themes/kitchen/static/images/chef-logo-light.svg +0 -36
- data/docs/themes/kitchen/static/images/chef-logo-white.svg +0 -38
- data/docs/themes/kitchen/static/images/chef-logo.svg +0 -37
- data/docs/themes/kitchen/static/images/favicon.ico +0 -0
- data/docs/themes/kitchen/static/js/scripts-all.js +0 -7
- data/docs/themes/kitchen/static/js/source/chef-hugo.js +0 -116
- data/docs/themes/kitchen/static/js/source/omnitruck.js +0 -82
- data/docs/themes/kitchen/static/js/source/segment.js +0 -52
- data/docs/themes/kitchen/static/sass/_buttons.scss +0 -161
- data/docs/themes/kitchen/static/sass/_core.scss +0 -24
- data/docs/themes/kitchen/static/sass/_forms.scss +0 -14
- data/docs/themes/kitchen/static/sass/_mixins.scss +0 -133
- data/docs/themes/kitchen/static/sass/_typography.scss +0 -34
- data/docs/themes/kitchen/static/sass/_variables.scss +0 -82
- data/docs/themes/kitchen/static/sass/kitchen.scss +0 -7
- data/docs/themes/kitchen/static/sass/kitchen/_footer.scss +0 -50
- data/docs/themes/kitchen/static/sass/kitchen/_header.scss +0 -187
- data/docs/themes/kitchen/static/sass/kitchen/_homepage.scss +0 -27
- data/docs/themes/kitchen/static/sass/kitchen/_utility-bar.scss +0 -173
- data/docs/themes/kitchen/static/sass/partials/_alerts.scss +0 -32
- data/docs/themes/kitchen/static/sass/partials/_bg.scss +0 -19
- data/docs/themes/kitchen/static/sass/partials/_blurbs.scss +0 -25
- data/docs/themes/kitchen/static/sass/partials/_callout.scss +0 -15
- data/docs/themes/kitchen/static/sass/partials/_cards.scss +0 -54
- data/docs/themes/kitchen/static/sass/partials/_dropdown.scss +0 -77
- data/docs/themes/kitchen/static/sass/partials/_grid.scss +0 -87
- data/docs/themes/kitchen/static/sass/partials/_padding.scss +0 -73
- data/docs/themes/kitchen/static/sass/partials/_sidebar.scss +0 -71
- data/docs/themes/kitchen/static/sass/partials/_tabs.scss +0 -125
- data/docs/themes/kitchen/static/sass/typography/_chroma.scss +0 -366
- data/docs/themes/kitchen/static/sass/typography/_code.scss +0 -72
- data/docs/themes/kitchen/static/sass/typography/_headers.scss +0 -90
- data/docs/themes/kitchen/static/sass/typography/_links.scss +0 -127
- data/docs/themes/kitchen/static/sass/typography/_lists.scss +0 -155
- data/docs/themes/kitchen/static/sass/typography/_prose.scss +0 -29
- data/docs/themes/kitchen/static/sass/typography/_text.scss +0 -221
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_animated.scss +0 -20
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_bordered-pulled.scss +0 -20
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_core.scss +0 -16
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_fixed-width.scss +0 -6
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_icons.scss +0 -992
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_larger.scss +0 -23
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_list.scss +0 -18
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_mixins.scss +0 -57
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_rotated-flipped.scss +0 -23
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_screen-reader.scss +0 -5
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_stacked.scss +0 -31
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_variables.scss +0 -1005
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-brands.scss +0 -21
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-regular.scss +0 -22
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-solid.scss +0 -23
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fontawesome.scss +0 -16
- data/docs/themes/kitchen/theme.toml +0 -8
- data/features/kitchen_action_commands.feature +0 -164
- data/features/kitchen_command.feature +0 -16
- data/features/kitchen_console_command.feature +0 -35
- data/features/kitchen_defaults.feature +0 -38
- data/features/kitchen_diagnose_command.feature +0 -96
- data/features/kitchen_help_command.feature +0 -16
- data/features/kitchen_init_command.feature +0 -254
- data/features/kitchen_list_command.feature +0 -140
- data/features/kitchen_login_command.feature +0 -62
- data/features/kitchen_sink_command.feature +0 -30
- data/features/kitchen_test_command.feature +0 -88
- data/features/step_definitions/gem_steps.rb +0 -24
- data/features/step_definitions/git_steps.rb +0 -5
- data/features/step_definitions/output_steps.rb +0 -5
- data/features/support/env.rb +0 -74
- data/spec/kitchen/base64_stream_spec.rb +0 -74
- data/spec/kitchen/cli_spec.rb +0 -54
- data/spec/kitchen/collection_spec.rb +0 -76
- data/spec/kitchen/color_spec.rb +0 -51
- data/spec/kitchen/config_spec.rb +0 -434
- data/spec/kitchen/configurable_spec.rb +0 -1113
- data/spec/kitchen/data_munger_spec.rb +0 -2800
- data/spec/kitchen/diagnostic_spec.rb +0 -128
- data/spec/kitchen/driver/base_spec.rb +0 -132
- data/spec/kitchen/driver/dummy_spec.rb +0 -193
- data/spec/kitchen/driver/exec_spec.rb +0 -75
- data/spec/kitchen/driver/proxy_spec.rb +0 -127
- data/spec/kitchen/driver/ssh_base_spec.rb +0 -1136
- data/spec/kitchen/driver_spec.rb +0 -106
- data/spec/kitchen/errors_spec.rb +0 -317
- data/spec/kitchen/instance_spec.rb +0 -1372
- data/spec/kitchen/lazy_hash_spec.rb +0 -113
- data/spec/kitchen/lifecycle_hooks_spec.rb +0 -171
- data/spec/kitchen/loader/yaml_spec.rb +0 -787
- data/spec/kitchen/logger_spec.rb +0 -425
- data/spec/kitchen/logging_spec.rb +0 -56
- data/spec/kitchen/login_command_spec.rb +0 -67
- data/spec/kitchen/metadata_chopper_spec.rb +0 -79
- data/spec/kitchen/platform_spec.rb +0 -88
- data/spec/kitchen/provisioner/base_spec.rb +0 -393
- data/spec/kitchen/provisioner/chef/policyfile_spec.rb +0 -140
- data/spec/kitchen/provisioner/chef_apply_spec.rb +0 -131
- data/spec/kitchen/provisioner/chef_base_spec.rb +0 -1565
- data/spec/kitchen/provisioner/chef_solo_spec.rb +0 -602
- data/spec/kitchen/provisioner/chef_zero_spec.rb +0 -1013
- data/spec/kitchen/provisioner/dummy_spec.rb +0 -96
- data/spec/kitchen/provisioner/shell_spec.rb +0 -623
- data/spec/kitchen/provisioner_spec.rb +0 -101
- data/spec/kitchen/shell_out_spec.rb +0 -146
- data/spec/kitchen/ssh_spec.rb +0 -584
- data/spec/kitchen/state_file_spec.rb +0 -122
- data/spec/kitchen/suite_spec.rb +0 -61
- data/spec/kitchen/transport/base_spec.rb +0 -140
- data/spec/kitchen/transport/exec_spec.rb +0 -79
- data/spec/kitchen/transport/ssh_spec.rb +0 -1317
- data/spec/kitchen/transport/winrm_spec.rb +0 -1320
- data/spec/kitchen/transport_spec.rb +0 -106
- data/spec/kitchen/util_spec.rb +0 -250
- data/spec/kitchen/verifier/base_spec.rb +0 -346
- data/spec/kitchen/verifier/busser_spec.rb +0 -580
- data/spec/kitchen/verifier/dummy_spec.rb +0 -96
- data/spec/kitchen/verifier/shell_spec.rb +0 -157
- data/spec/kitchen/verifier_spec.rb +0 -114
- data/spec/kitchen_spec.rb +0 -112
- data/spec/spec_helper.rb +0 -110
- data/spec/support/powershell_max_size_spec.rb +0 -39
- data/test-kitchen.gemspec +0 -49
- data/test/cookbooks/test_cookbook/metadata.rb +0 -6
- data/test/cookbooks/test_cookbook/recipes/default.rb +0 -1
- data/test/integration/default/default_spec.rb +0 -3
- data/testing_windows.md +0 -38
@@ -1,30 +0,0 @@
|
|
1
|
-
Feature: The `kitchen sink` command
|
2
|
-
In order to have fun and provide an Easter Egg for users
|
3
|
-
As a Test Kitchen user
|
4
|
-
I want a `sink` command that displays ASCII art
|
5
|
-
|
6
|
-
Scenario: Displaying help
|
7
|
-
When I run `kitchen help`
|
8
|
-
Then the exit status should be 0
|
9
|
-
And the output should not contain "kitchen sink"
|
10
|
-
|
11
|
-
Scenario: Displaying the sink
|
12
|
-
When I run `kitchen sink`
|
13
|
-
Then the exit status should be 0
|
14
|
-
And the output should contain:
|
15
|
-
"""
|
16
|
-
___
|
17
|
-
' _ '.
|
18
|
-
/ /` `\ \
|
19
|
-
| | [__]
|
20
|
-
| | {{
|
21
|
-
| | }}
|
22
|
-
_ | | _ {{
|
23
|
-
___________<_>_| |_<_>}}________
|
24
|
-
.=======^=(___)=^={{====.
|
25
|
-
/ .----------------}}---. \
|
26
|
-
/ / {{ \ \
|
27
|
-
/ / }} \ \
|
28
|
-
( '=========================' )
|
29
|
-
'-----------------------------'
|
30
|
-
"""
|
@@ -1,88 +0,0 @@
|
|
1
|
-
Feature: Running a full test instance test
|
2
|
-
In order to "fire-and-forget" or run help setup a CI job
|
3
|
-
As an operator or CI script
|
4
|
-
I want to run a command that will fully test one or more instances
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given a file named ".kitchen.yml" with:
|
8
|
-
"""
|
9
|
-
---
|
10
|
-
driver:
|
11
|
-
name: dummy
|
12
|
-
|
13
|
-
provisioner:
|
14
|
-
name: dummy
|
15
|
-
|
16
|
-
platforms:
|
17
|
-
- name: cool
|
18
|
-
- name: beans
|
19
|
-
|
20
|
-
suites:
|
21
|
-
- name: client
|
22
|
-
- name: server
|
23
|
-
"""
|
24
|
-
|
25
|
-
@spawn
|
26
|
-
Scenario: Running a single instance
|
27
|
-
When I run `kitchen test client-beans`
|
28
|
-
Then the output should contain "Starting Kitchen"
|
29
|
-
Then the output should contain "Cleaning up any prior instances of <client-beans>"
|
30
|
-
Then the output should contain "Testing <client-beans>"
|
31
|
-
Then the output should contain "Finished testing <client-beans>"
|
32
|
-
Then the output should contain "Kitchen is finished."
|
33
|
-
And the exit status should be 0
|
34
|
-
|
35
|
-
@spawn
|
36
|
-
Scenario: Running a single instance never destroying an instance
|
37
|
-
When I successfully run `kitchen test client-beans --destroy=never`
|
38
|
-
And I successfully run `kitchen list client-beans`
|
39
|
-
Then the output should match /^client-beans\s+.+\s+Verified\s+\<None\>$/
|
40
|
-
|
41
|
-
@spawn
|
42
|
-
Scenario: Running a single instance always destroying an instance
|
43
|
-
Given a file named ".kitchen.local.yml" with:
|
44
|
-
"""
|
45
|
-
---
|
46
|
-
provisioner:
|
47
|
-
fail: true
|
48
|
-
"""
|
49
|
-
When I run `kitchen test client-beans --destroy=always`
|
50
|
-
Then the exit status should not be 0
|
51
|
-
When I successfully run `kitchen list client-beans`
|
52
|
-
Then the output should match /^client-beans\s+.+\s+\<Not Created\>\s+\<None\>$/
|
53
|
-
|
54
|
-
@spawn
|
55
|
-
Scenario: Running a single instance not destroying an instance on failure
|
56
|
-
Given a file named ".kitchen.local.yml" with:
|
57
|
-
"""
|
58
|
-
---
|
59
|
-
provisioner:
|
60
|
-
fail: true
|
61
|
-
"""
|
62
|
-
When I run `kitchen test client-beans --destroy=passing`
|
63
|
-
Then the exit status should not be 0
|
64
|
-
When I successfully run `kitchen list client-beans`
|
65
|
-
Then the output should match /^client-beans\s+.+\s+Created\s+Kitchen::ActionFailed$/
|
66
|
-
|
67
|
-
@spawn
|
68
|
-
Scenario: Running a single instance destroying an instance on success
|
69
|
-
When I run `kitchen test client-beans --destroy=passing`
|
70
|
-
Then the exit status should be 0
|
71
|
-
When I successfully run `kitchen list client-beans`
|
72
|
-
Then the output should match /^client-beans\s+.+\s+\<Not Created\>\s+\<None\>$/
|
73
|
-
|
74
|
-
@spawn
|
75
|
-
Scenario: Running all instances
|
76
|
-
When I run `kitchen test`
|
77
|
-
Then the output should contain "Starting Kitchen"
|
78
|
-
Then the output should contain "Finished testing <client-cool>"
|
79
|
-
Then the output should contain "Finished testing <client-beans>"
|
80
|
-
Then the output should contain "Finished testing <server-cool>"
|
81
|
-
Then the output should contain "Finished testing <server-beans>"
|
82
|
-
Then the output should contain "Kitchen is finished."
|
83
|
-
And the exit status should be 0
|
84
|
-
When I successfully run `kitchen list`
|
85
|
-
Then the output should match /^client-cool\s+.+\s+\<Not Created\>\s+\<None\>$/
|
86
|
-
Then the output should match /^client-beans\s+.+\s+\<Not Created\>\s+\<None\>$/
|
87
|
-
Then the output should match /^server-cool\s+.+\s+\<Not Created\>\s+\<None\>$/
|
88
|
-
Then the output should match /^server-beans\s+.+\s+\<Not Created\>\s+\<None\>$/
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require "tmpdir"
|
4
|
-
require "pathname"
|
5
|
-
|
6
|
-
Then(/^a gem named "(.*?)" is installed with version "(.*?)"$/) do |name, version|
|
7
|
-
unbundlerize do
|
8
|
-
run_simple(
|
9
|
-
sanitize_text("gem list #{name} --version #{version} -i"),
|
10
|
-
fail_on_error: true,
|
11
|
-
exit_timeout: nil
|
12
|
-
)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
Then(/^a gem named "(.*?)" is installed$/) do |name|
|
17
|
-
unbundlerize do
|
18
|
-
run_simple(
|
19
|
-
sanitize_text("gem list #{name} -i"),
|
20
|
-
fail_on_error: true,
|
21
|
-
exit_timeout: nil
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
# Set up the environment for testing
|
4
|
-
require "aruba/cucumber"
|
5
|
-
require "aruba/in_process"
|
6
|
-
require "aruba/spawn_process"
|
7
|
-
require "kitchen"
|
8
|
-
require "kitchen/cli"
|
9
|
-
|
10
|
-
class ArubaHelper
|
11
|
-
def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
|
12
|
-
@argv = argv
|
13
|
-
@stdin = stdin
|
14
|
-
@stdout = stdout
|
15
|
-
@stderr = stderr
|
16
|
-
@kernel = kernel
|
17
|
-
end
|
18
|
-
|
19
|
-
def execute!
|
20
|
-
$stdout = @stdout
|
21
|
-
$stdin = @stdin
|
22
|
-
|
23
|
-
kitchen_cli = Kitchen::CLI
|
24
|
-
kitchen_cli.start(@argv)
|
25
|
-
@kernel.exit(0)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
Before do
|
30
|
-
@aruba_timeout_seconds = 15
|
31
|
-
@cleanup_dirs = []
|
32
|
-
|
33
|
-
aruba.config.command_launcher = :in_process
|
34
|
-
aruba.config.main_class = ArubaHelper
|
35
|
-
end
|
36
|
-
|
37
|
-
Before("@spawn") do
|
38
|
-
aruba.config.command_launcher = :spawn
|
39
|
-
end
|
40
|
-
|
41
|
-
After do |s|
|
42
|
-
# Tell Cucumber to quit after this scenario is done - if it failed.
|
43
|
-
# This is useful to inspect the 'tmp/aruba' directory before any other
|
44
|
-
# steps are executed and clear it out.
|
45
|
-
Cucumber.wants_to_quit = true if s.failed?
|
46
|
-
|
47
|
-
# Restore environment variables to their original settings, if they have
|
48
|
-
# been saved off
|
49
|
-
env = aruba.environment
|
50
|
-
env.to_h.keys.select { |key| key =~ /^_CUKE_/ }
|
51
|
-
.each do |backup_key|
|
52
|
-
env[backup_key.sub(/^_CUKE_/, "")] = env[backup_key]
|
53
|
-
env.delete(backup_key)
|
54
|
-
end
|
55
|
-
|
56
|
-
@cleanup_dirs.each { |dir| FileUtils.rm_rf(dir) }
|
57
|
-
end
|
58
|
-
|
59
|
-
def backup_envvar(key)
|
60
|
-
aruba.environment["_CUKE_#{key}"] = aruba.environment[key]
|
61
|
-
end
|
62
|
-
|
63
|
-
def restore_envvar(key)
|
64
|
-
aruba.environment[key] = aruba.environment["_CUKE_#{key}"]
|
65
|
-
aruba.environment.delete("_CUKE_#{key}")
|
66
|
-
end
|
67
|
-
|
68
|
-
def unbundlerize
|
69
|
-
keys = %w{BUNDLER_EDITOR BUNDLE_BIN_PATH BUNDLE_GEMFILE RUBYOPT}
|
70
|
-
|
71
|
-
keys.each { |key| backup_envvar(key); aruba.environment.delete(key) }
|
72
|
-
yield
|
73
|
-
keys.each { |key| restore_envvar(key) }
|
74
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2014, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require_relative "../spec_helper"
|
20
|
-
require "base64"
|
21
|
-
require "stringio"
|
22
|
-
require "securerandom"
|
23
|
-
|
24
|
-
require "kitchen/base64_stream"
|
25
|
-
|
26
|
-
describe Kitchen::Base64Stream do
|
27
|
-
SHORT_BODIES = %w{you test wakkawakkawakka}.freeze
|
28
|
-
|
29
|
-
describe ".strict_encode" do
|
30
|
-
SHORT_BODIES.each do |body|
|
31
|
-
it "encodes short payload ('#{body}') from input IO to output IO" do
|
32
|
-
output = StringIO.new("", "wb")
|
33
|
-
StringIO.open(body) do |input|
|
34
|
-
Kitchen::Base64Stream.strict_encode(input, output)
|
35
|
-
end
|
36
|
-
|
37
|
-
output.string.must_equal Base64.strict_encode64(body)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
it "encodes a large payload from input IO to output IO" do
|
42
|
-
body = SecureRandom.random_bytes(1_048_576 * 8)
|
43
|
-
output = StringIO.new("", "wb")
|
44
|
-
StringIO.open(body) do |input|
|
45
|
-
Kitchen::Base64Stream.strict_encode(input, output)
|
46
|
-
end
|
47
|
-
|
48
|
-
output.string.must_equal Base64.strict_encode64(body)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe ".strict_decode" do
|
53
|
-
SHORT_BODIES.map { |b| Base64.strict_encode64(b) }.each do |body|
|
54
|
-
it "decodes short payload ('#{body}') from input IO to output IO" do
|
55
|
-
output = StringIO.new("", "wb")
|
56
|
-
StringIO.open(body) do |input|
|
57
|
-
Kitchen::Base64Stream.strict_decode(input, output)
|
58
|
-
end
|
59
|
-
|
60
|
-
output.string.must_equal Base64.strict_decode64(body)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
it "decodes a large payload from input IO to output IO" do
|
65
|
-
body = Base64.strict_encode64(SecureRandom.hex(1_048_576 * 8))
|
66
|
-
output = StringIO.new("", "wb")
|
67
|
-
StringIO.open(body) do |input|
|
68
|
-
Kitchen::Base64Stream.strict_decode(input, output)
|
69
|
-
end
|
70
|
-
|
71
|
-
output.string.must_equal Base64.strict_decode64(body)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
data/spec/kitchen/cli_spec.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Tyler Ball (<tball@chef.io>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2015, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require_relative "../spec_helper"
|
20
|
-
|
21
|
-
require "kitchen/cli"
|
22
|
-
require "kitchen"
|
23
|
-
|
24
|
-
module Kitchen
|
25
|
-
describe CLI do
|
26
|
-
let(:cli) { CLI.new }
|
27
|
-
|
28
|
-
before do
|
29
|
-
@orig_env = ENV.to_hash
|
30
|
-
end
|
31
|
-
|
32
|
-
after do
|
33
|
-
ENV.clear
|
34
|
-
@orig_env.each do |k, v|
|
35
|
-
ENV[k] = v
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe "#initialize" do
|
40
|
-
it "does not set logging config when environment variables are missing" do
|
41
|
-
assert_equal Kitchen::DEFAULT_LOG_LEVEL, cli.config.log_level
|
42
|
-
assert_equal Kitchen::DEFAULT_LOG_OVERWRITE, cli.config.log_overwrite
|
43
|
-
end
|
44
|
-
|
45
|
-
it "does set logging config when environment variables are present" do
|
46
|
-
ENV["KITCHEN_LOG"] = "warn"
|
47
|
-
ENV["KITCHEN_LOG_OVERWRITE"] = "false"
|
48
|
-
|
49
|
-
assert_equal :warn, cli.config.log_level
|
50
|
-
assert_equal false, cli.config.log_overwrite
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2012, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require_relative "../spec_helper"
|
20
|
-
require "ostruct"
|
21
|
-
|
22
|
-
require "kitchen/collection"
|
23
|
-
|
24
|
-
describe Kitchen::Collection do
|
25
|
-
let(:collection) do
|
26
|
-
Kitchen::Collection.new([
|
27
|
-
obj("one"), obj("two", "a"), obj("two", "b"), obj("three")
|
28
|
-
])
|
29
|
-
end
|
30
|
-
|
31
|
-
it "transparently wraps an Array" do
|
32
|
-
collection.must_be_instance_of Array
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "#get" do
|
36
|
-
it "returns a single object by its name" do
|
37
|
-
collection.get("three").must_equal obj("three")
|
38
|
-
end
|
39
|
-
|
40
|
-
it "returns the first occurance of an object by its name" do
|
41
|
-
collection.get("two").must_equal obj("two", "a")
|
42
|
-
end
|
43
|
-
|
44
|
-
it "returns nil if an object cannot be found by its name" do
|
45
|
-
collection.get("nope").must_be_nil
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "#get_all" do
|
50
|
-
it "returns a Collection of objects whose name matches the regex" do
|
51
|
-
result = collection.get_all(/(one|three)/)
|
52
|
-
result.size.must_equal 2
|
53
|
-
result[0].must_equal obj("one")
|
54
|
-
result[1].must_equal obj("three")
|
55
|
-
result.get_all(/one/).size.must_equal 1
|
56
|
-
end
|
57
|
-
|
58
|
-
it "returns an empty Collection if no matches are found" do
|
59
|
-
result = collection.get_all(/noppa/)
|
60
|
-
result.must_equal []
|
61
|
-
result.get("nahuh").must_be_nil
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "#as_name" do
|
66
|
-
it "returns an Array of names as strings" do
|
67
|
-
collection.as_names.must_equal %w{one two two three}
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
|
73
|
-
def obj(name, extra = nil)
|
74
|
-
OpenStruct.new(name: name, extra: extra)
|
75
|
-
end
|
76
|
-
end
|
data/spec/kitchen/color_spec.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
4
|
-
#
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
|
19
|
-
require_relative "../spec_helper"
|
20
|
-
|
21
|
-
require "kitchen/color"
|
22
|
-
|
23
|
-
describe Kitchen::Color do
|
24
|
-
describe ".escape" do
|
25
|
-
it "returns an empty string if name is nil" do
|
26
|
-
Kitchen::Color.escape(nil).must_equal ""
|
27
|
-
end
|
28
|
-
|
29
|
-
it "returns an empty string if name is not in the ANSI hash" do
|
30
|
-
Kitchen::Color.escape(:puce).must_equal ""
|
31
|
-
end
|
32
|
-
|
33
|
-
it "returns an ansi escape sequence string for cyan" do
|
34
|
-
Kitchen::Color.escape(:cyan).must_equal "\e[36m"
|
35
|
-
end
|
36
|
-
|
37
|
-
it "returns an ansi escape sequence string for reset" do
|
38
|
-
Kitchen::Color.escape(:reset).must_equal "\e[0m"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe ".colorize" do
|
43
|
-
it "returns an ansi escaped string colored yellow" do
|
44
|
-
Kitchen::Color.colorize("hello", :yellow).must_equal "\e[33mhello\e[0m"
|
45
|
-
end
|
46
|
-
|
47
|
-
it "returns an unescaped string if color is not in the ANSI hash" do
|
48
|
-
Kitchen::Color.colorize("double", :rainbow).must_equal "double"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|