test-kitchen 1.7.0 → 1.7.1.dev
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.
- checksums.yaml +4 -4
- data/.cane +8 -8
- data/.gitattributes +3 -0
- data/.github/ISSUE_TEMPLATE.md +55 -55
- data/.gitignore +28 -28
- data/.kitchen.ci.yml +23 -23
- data/.kitchen.proxy.yml +27 -27
- data/.rubocop.yml +3 -3
- data/.travis.yml +70 -70
- data/.yardopts +3 -3
- data/Berksfile +3 -3
- data/CHANGELOG.md +1090 -1083
- data/CONTRIBUTING.md +14 -14
- data/Gemfile +19 -19
- data/Gemfile.proxy_tests +4 -4
- data/Guardfile +42 -42
- data/LICENSE +15 -15
- data/MAINTAINERS.md +23 -23
- data/README.md +135 -135
- data/Rakefile +61 -61
- data/appveyor.yml +44 -44
- data/features/kitchen_action_commands.feature +164 -164
- data/features/kitchen_command.feature +16 -16
- data/features/kitchen_console_command.feature +34 -34
- data/features/kitchen_defaults.feature +38 -38
- data/features/kitchen_diagnose_command.feature +96 -96
- data/features/kitchen_driver_create_command.feature +64 -64
- data/features/kitchen_driver_discover_command.feature +25 -25
- data/features/kitchen_help_command.feature +16 -16
- data/features/kitchen_init_command.feature +274 -274
- data/features/kitchen_list_command.feature +104 -104
- data/features/kitchen_login_command.feature +62 -62
- data/features/kitchen_sink_command.feature +30 -30
- data/features/kitchen_test_command.feature +88 -88
- data/features/step_definitions/gem_steps.rb +36 -36
- data/features/step_definitions/git_steps.rb +5 -5
- data/features/step_definitions/output_steps.rb +5 -5
- data/features/support/env.rb +75 -75
- data/lib/kitchen.rb +150 -150
- data/lib/kitchen/base64_stream.rb +55 -55
- data/lib/kitchen/cli.rb +419 -419
- data/lib/kitchen/collection.rb +55 -55
- data/lib/kitchen/color.rb +65 -65
- data/lib/kitchen/command.rb +185 -185
- data/lib/kitchen/command/action.rb +45 -45
- data/lib/kitchen/command/console.rb +58 -58
- data/lib/kitchen/command/diagnose.rb +92 -92
- data/lib/kitchen/command/driver_discover.rb +105 -105
- data/lib/kitchen/command/exec.rb +41 -41
- data/lib/kitchen/command/list.rb +119 -119
- data/lib/kitchen/command/login.rb +43 -43
- data/lib/kitchen/command/sink.rb +54 -54
- data/lib/kitchen/command/test.rb +51 -51
- data/lib/kitchen/config.rb +322 -322
- data/lib/kitchen/configurable.rb +529 -529
- data/lib/kitchen/data_munger.rb +959 -959
- data/lib/kitchen/diagnostic.rb +141 -141
- data/lib/kitchen/driver.rb +56 -56
- data/lib/kitchen/driver/base.rb +134 -134
- data/lib/kitchen/driver/dummy.rb +108 -108
- data/lib/kitchen/driver/proxy.rb +72 -72
- data/lib/kitchen/driver/ssh_base.rb +357 -357
- data/lib/kitchen/errors.rb +229 -229
- data/lib/kitchen/generator/driver_create.rb +177 -177
- data/lib/kitchen/generator/init.rb +296 -296
- data/lib/kitchen/instance.rb +662 -662
- data/lib/kitchen/lazy_hash.rb +142 -142
- data/lib/kitchen/loader/yaml.rb +349 -349
- data/lib/kitchen/logger.rb +423 -423
- data/lib/kitchen/logging.rb +56 -56
- data/lib/kitchen/login_command.rb +52 -52
- data/lib/kitchen/metadata_chopper.rb +52 -52
- data/lib/kitchen/platform.rb +67 -67
- data/lib/kitchen/provisioner.rb +54 -54
- data/lib/kitchen/provisioner/base.rb +236 -236
- data/lib/kitchen/provisioner/chef/berkshelf.rb +114 -114
- data/lib/kitchen/provisioner/chef/common_sandbox.rb +322 -322
- data/lib/kitchen/provisioner/chef/librarian.rb +112 -112
- data/lib/kitchen/provisioner/chef_apply.rb +124 -124
- data/lib/kitchen/provisioner/chef_base.rb +341 -341
- data/lib/kitchen/provisioner/chef_solo.rb +88 -88
- data/lib/kitchen/provisioner/chef_zero.rb +245 -245
- data/lib/kitchen/provisioner/dummy.rb +79 -79
- data/lib/kitchen/provisioner/shell.rb +138 -138
- data/lib/kitchen/rake_tasks.rb +63 -63
- data/lib/kitchen/shell_out.rb +93 -93
- data/lib/kitchen/ssh.rb +276 -276
- data/lib/kitchen/state_file.rb +120 -120
- data/lib/kitchen/suite.rb +51 -51
- data/lib/kitchen/thor_tasks.rb +66 -66
- data/lib/kitchen/transport.rb +54 -54
- data/lib/kitchen/transport/base.rb +176 -176
- data/lib/kitchen/transport/dummy.rb +79 -79
- data/lib/kitchen/transport/ssh.rb +364 -364
- data/lib/kitchen/transport/winrm.rb +486 -486
- data/lib/kitchen/util.rb +147 -147
- data/lib/kitchen/verifier.rb +55 -55
- data/lib/kitchen/verifier/base.rb +235 -235
- data/lib/kitchen/verifier/busser.rb +277 -277
- data/lib/kitchen/verifier/dummy.rb +79 -79
- data/lib/kitchen/verifier/shell.rb +101 -101
- data/lib/kitchen/version.rb +21 -21
- data/lib/vendor/hash_recursive_merge.rb +82 -82
- data/spec/kitchen/base64_stream_spec.rb +77 -77
- data/spec/kitchen/cli_spec.rb +56 -56
- data/spec/kitchen/collection_spec.rb +80 -80
- data/spec/kitchen/color_spec.rb +54 -54
- data/spec/kitchen/config_spec.rb +408 -408
- data/spec/kitchen/configurable_spec.rb +1095 -1095
- data/spec/kitchen/data_munger_spec.rb +2694 -2694
- data/spec/kitchen/diagnostic_spec.rb +129 -129
- data/spec/kitchen/driver/base_spec.rb +121 -121
- data/spec/kitchen/driver/dummy_spec.rb +199 -199
- data/spec/kitchen/driver/proxy_spec.rb +138 -138
- data/spec/kitchen/driver/ssh_base_spec.rb +1115 -1115
- data/spec/kitchen/driver_spec.rb +112 -112
- data/spec/kitchen/errors_spec.rb +309 -309
- data/spec/kitchen/instance_spec.rb +1419 -1419
- data/spec/kitchen/lazy_hash_spec.rb +117 -117
- data/spec/kitchen/loader/yaml_spec.rb +774 -774
- data/spec/kitchen/logger_spec.rb +429 -429
- data/spec/kitchen/logging_spec.rb +59 -59
- data/spec/kitchen/login_command_spec.rb +68 -68
- data/spec/kitchen/metadata_chopper_spec.rb +82 -82
- data/spec/kitchen/platform_spec.rb +89 -89
- data/spec/kitchen/provisioner/base_spec.rb +386 -386
- data/spec/kitchen/provisioner/chef_apply_spec.rb +136 -136
- data/spec/kitchen/provisioner/chef_base_spec.rb +1161 -1161
- data/spec/kitchen/provisioner/chef_solo_spec.rb +557 -557
- data/spec/kitchen/provisioner/chef_zero_spec.rb +1001 -1001
- data/spec/kitchen/provisioner/dummy_spec.rb +99 -99
- data/spec/kitchen/provisioner/shell_spec.rb +566 -566
- data/spec/kitchen/provisioner_spec.rb +107 -107
- data/spec/kitchen/shell_out_spec.rb +150 -150
- data/spec/kitchen/ssh_spec.rb +693 -693
- data/spec/kitchen/state_file_spec.rb +129 -129
- data/spec/kitchen/suite_spec.rb +62 -62
- data/spec/kitchen/transport/base_spec.rb +89 -89
- data/spec/kitchen/transport/ssh_spec.rb +1255 -1255
- data/spec/kitchen/transport/winrm_spec.rb +1143 -1143
- data/spec/kitchen/transport_spec.rb +112 -112
- data/spec/kitchen/util_spec.rb +165 -165
- data/spec/kitchen/verifier/base_spec.rb +362 -362
- data/spec/kitchen/verifier/busser_spec.rb +610 -610
- data/spec/kitchen/verifier/dummy_spec.rb +99 -99
- data/spec/kitchen/verifier/shell_spec.rb +160 -160
- data/spec/kitchen/verifier_spec.rb +120 -120
- data/spec/kitchen_spec.rb +114 -114
- data/spec/spec_helper.rb +85 -85
- data/spec/support/powershell_max_size_spec.rb +40 -40
- data/support/busser_install_command.ps1 +14 -14
- data/support/busser_install_command.sh +14 -14
- data/support/chef-client-zero.rb +77 -77
- data/support/chef_base_init_command.ps1 +18 -18
- data/support/chef_base_init_command.sh +2 -2
- data/support/chef_base_install_command.ps1 +85 -85
- data/support/chef_base_install_command.sh +229 -229
- data/support/chef_zero_prepare_command_legacy.ps1 +9 -9
- data/support/chef_zero_prepare_command_legacy.sh +10 -10
- data/support/download_helpers.sh +109 -109
- data/support/dummy-validation.pem +27 -27
- data/templates/driver/CHANGELOG.md.erb +3 -3
- data/templates/driver/Gemfile.erb +3 -3
- data/templates/driver/README.md.erb +64 -64
- data/templates/driver/Rakefile.erb +21 -21
- data/templates/driver/driver.rb.erb +23 -23
- data/templates/driver/gemspec.erb +29 -29
- data/templates/driver/gitignore.erb +17 -17
- data/templates/driver/license_apachev2.erb +15 -15
- data/templates/driver/license_lgplv3.erb +16 -16
- data/templates/driver/license_mit.erb +22 -22
- data/templates/driver/license_reserved.erb +5 -5
- data/templates/driver/tailor.erb +4 -4
- data/templates/driver/travis.yml.erb +11 -11
- data/templates/driver/version.rb.erb +12 -12
- data/templates/init/chefignore.erb +1 -1
- data/templates/init/kitchen.yml.erb +18 -18
- data/test-kitchen.gemspec +62 -62
- data/test/integration/default/default_spec.rb +3 -3
- data/testing_windows.md +37 -37
- metadata +5 -4
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
Feature: Listing Test Kitchen instances
|
|
2
|
-
In order to understand how the .kitchen.yml is consumed
|
|
3
|
-
As a user of Test Kitchen
|
|
4
|
-
I want to run a command to see the state of my instances
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given a file named ".kitchen.yml" with:
|
|
8
|
-
"""
|
|
9
|
-
---
|
|
10
|
-
driver: dummy
|
|
11
|
-
provisioner: chef_solo
|
|
12
|
-
|
|
13
|
-
platforms:
|
|
14
|
-
- name: ubuntu-13.04
|
|
15
|
-
- name: centos-6.4
|
|
16
|
-
- name: centos-6.4-with-small-mem
|
|
17
|
-
|
|
18
|
-
suites:
|
|
19
|
-
- name: foobar
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
Scenario: Listing instances
|
|
23
|
-
When I run `kitchen list`
|
|
24
|
-
Then the exit status should be 0
|
|
25
|
-
And the output should match /^foobar-ubuntu-1304\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
|
|
26
|
-
And the output should match /^foobar-centos-64\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
|
|
27
|
-
|
|
28
|
-
Scenario: Listing instances with the --bare option
|
|
29
|
-
When I run `kitchen list --bare`
|
|
30
|
-
Then the exit status should be 0
|
|
31
|
-
And the output should contain exactly:
|
|
32
|
-
"""
|
|
33
|
-
foobar-ubuntu-1304
|
|
34
|
-
foobar-centos-64
|
|
35
|
-
foobar-centos-64-with-small-mem
|
|
36
|
-
|
|
37
|
-
"""
|
|
38
|
-
|
|
39
|
-
Scenario: Listing instances with a simple regular expression glob
|
|
40
|
-
When I successfully run `kitchen list ubun --bare`
|
|
41
|
-
Then the output should contain exactly:
|
|
42
|
-
"""
|
|
43
|
-
foobar-ubuntu-1304
|
|
44
|
-
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
Scenario: Listing instances with a Ruby regular expression glob, requiring
|
|
48
|
-
signle quoting on the command line
|
|
49
|
-
When I successfully run `kitchen list '^foo.*\-(10|13)04$' --bare`
|
|
50
|
-
Then the output should contain exactly:
|
|
51
|
-
"""
|
|
52
|
-
foobar-ubuntu-1304
|
|
53
|
-
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
@spawn
|
|
57
|
-
Scenario: Listing instances with a regular expression yielding no results
|
|
58
|
-
When I run `kitchen list freebsd --bare`
|
|
59
|
-
Then the exit status should not be 0
|
|
60
|
-
And the output should contain "No instances for regex `freebsd', try running `kitchen list'"
|
|
61
|
-
|
|
62
|
-
@spawn
|
|
63
|
-
Scenario: Listing instances with a bad regular expression
|
|
64
|
-
When I run `kitchen list *centos* --bare`
|
|
65
|
-
Then the exit status should not be 0
|
|
66
|
-
And the output should contain "Invalid Ruby regular expression"
|
|
67
|
-
|
|
68
|
-
Scenario: Listing a full instance name returns an exact match, not fuzzy matches
|
|
69
|
-
When I successfully run `kitchen list foobar-centos-64 --bare`
|
|
70
|
-
Then the output should contain exactly:
|
|
71
|
-
"""
|
|
72
|
-
foobar-centos-64
|
|
73
|
-
|
|
74
|
-
"""
|
|
75
|
-
|
|
76
|
-
Scenario: Listing a full instance name returns an exact match, not fuzzy matches at start
|
|
77
|
-
Given a file named ".kitchen.yml" with:
|
|
78
|
-
"""
|
|
79
|
-
---
|
|
80
|
-
driver: dummy
|
|
81
|
-
provisioner: chef_solo
|
|
82
|
-
|
|
83
|
-
platforms:
|
|
84
|
-
- name: ubuntu-12.04
|
|
85
|
-
|
|
86
|
-
suites:
|
|
87
|
-
- name: gdb01-master
|
|
88
|
-
- name: logdb01-master
|
|
89
|
-
"""
|
|
90
|
-
When I successfully run `kitchen list gdb01-master-ubuntu-1204 --bare`
|
|
91
|
-
Then the output should contain exactly:
|
|
92
|
-
"""
|
|
93
|
-
gdb01-master-ubuntu-1204
|
|
94
|
-
|
|
95
|
-
"""
|
|
96
|
-
|
|
97
|
-
Scenario: Listing a full instance with regex returns all regex matches
|
|
98
|
-
When I successfully run `kitchen list 'foobar-centos-64.*' --bare`
|
|
99
|
-
Then the output should contain exactly:
|
|
100
|
-
"""
|
|
101
|
-
foobar-centos-64
|
|
102
|
-
foobar-centos-64-with-small-mem
|
|
103
|
-
|
|
104
|
-
"""
|
|
1
|
+
Feature: Listing Test Kitchen instances
|
|
2
|
+
In order to understand how the .kitchen.yml is consumed
|
|
3
|
+
As a user of Test Kitchen
|
|
4
|
+
I want to run a command to see the state of my instances
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named ".kitchen.yml" with:
|
|
8
|
+
"""
|
|
9
|
+
---
|
|
10
|
+
driver: dummy
|
|
11
|
+
provisioner: chef_solo
|
|
12
|
+
|
|
13
|
+
platforms:
|
|
14
|
+
- name: ubuntu-13.04
|
|
15
|
+
- name: centos-6.4
|
|
16
|
+
- name: centos-6.4-with-small-mem
|
|
17
|
+
|
|
18
|
+
suites:
|
|
19
|
+
- name: foobar
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
Scenario: Listing instances
|
|
23
|
+
When I run `kitchen list`
|
|
24
|
+
Then the exit status should be 0
|
|
25
|
+
And the output should match /^foobar-ubuntu-1304\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
|
|
26
|
+
And the output should match /^foobar-centos-64\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
|
|
27
|
+
|
|
28
|
+
Scenario: Listing instances with the --bare option
|
|
29
|
+
When I run `kitchen list --bare`
|
|
30
|
+
Then the exit status should be 0
|
|
31
|
+
And the output should contain exactly:
|
|
32
|
+
"""
|
|
33
|
+
foobar-ubuntu-1304
|
|
34
|
+
foobar-centos-64
|
|
35
|
+
foobar-centos-64-with-small-mem
|
|
36
|
+
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
Scenario: Listing instances with a simple regular expression glob
|
|
40
|
+
When I successfully run `kitchen list ubun --bare`
|
|
41
|
+
Then the output should contain exactly:
|
|
42
|
+
"""
|
|
43
|
+
foobar-ubuntu-1304
|
|
44
|
+
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: Listing instances with a Ruby regular expression glob, requiring
|
|
48
|
+
signle quoting on the command line
|
|
49
|
+
When I successfully run `kitchen list '^foo.*\-(10|13)04$' --bare`
|
|
50
|
+
Then the output should contain exactly:
|
|
51
|
+
"""
|
|
52
|
+
foobar-ubuntu-1304
|
|
53
|
+
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
@spawn
|
|
57
|
+
Scenario: Listing instances with a regular expression yielding no results
|
|
58
|
+
When I run `kitchen list freebsd --bare`
|
|
59
|
+
Then the exit status should not be 0
|
|
60
|
+
And the output should contain "No instances for regex `freebsd', try running `kitchen list'"
|
|
61
|
+
|
|
62
|
+
@spawn
|
|
63
|
+
Scenario: Listing instances with a bad regular expression
|
|
64
|
+
When I run `kitchen list *centos* --bare`
|
|
65
|
+
Then the exit status should not be 0
|
|
66
|
+
And the output should contain "Invalid Ruby regular expression"
|
|
67
|
+
|
|
68
|
+
Scenario: Listing a full instance name returns an exact match, not fuzzy matches
|
|
69
|
+
When I successfully run `kitchen list foobar-centos-64 --bare`
|
|
70
|
+
Then the output should contain exactly:
|
|
71
|
+
"""
|
|
72
|
+
foobar-centos-64
|
|
73
|
+
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
Scenario: Listing a full instance name returns an exact match, not fuzzy matches at start
|
|
77
|
+
Given a file named ".kitchen.yml" with:
|
|
78
|
+
"""
|
|
79
|
+
---
|
|
80
|
+
driver: dummy
|
|
81
|
+
provisioner: chef_solo
|
|
82
|
+
|
|
83
|
+
platforms:
|
|
84
|
+
- name: ubuntu-12.04
|
|
85
|
+
|
|
86
|
+
suites:
|
|
87
|
+
- name: gdb01-master
|
|
88
|
+
- name: logdb01-master
|
|
89
|
+
"""
|
|
90
|
+
When I successfully run `kitchen list gdb01-master-ubuntu-1204 --bare`
|
|
91
|
+
Then the output should contain exactly:
|
|
92
|
+
"""
|
|
93
|
+
gdb01-master-ubuntu-1204
|
|
94
|
+
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
Scenario: Listing a full instance with regex returns all regex matches
|
|
98
|
+
When I successfully run `kitchen list 'foobar-centos-64.*' --bare`
|
|
99
|
+
Then the output should contain exactly:
|
|
100
|
+
"""
|
|
101
|
+
foobar-centos-64
|
|
102
|
+
foobar-centos-64-with-small-mem
|
|
103
|
+
|
|
104
|
+
"""
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
Feature: Logging into a Kitchen instance
|
|
2
|
-
In order to iterate, explore, and debug
|
|
3
|
-
As a crafty developer
|
|
4
|
-
I want to run a command that will give me a terminal session
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given a file named ".kitchen.yml" with:
|
|
8
|
-
"""
|
|
9
|
-
---
|
|
10
|
-
driver:
|
|
11
|
-
name: dummy
|
|
12
|
-
|
|
13
|
-
transport:
|
|
14
|
-
name: dummy
|
|
15
|
-
|
|
16
|
-
provisioner:
|
|
17
|
-
name: dummy
|
|
18
|
-
|
|
19
|
-
platforms:
|
|
20
|
-
- name: flebian
|
|
21
|
-
|
|
22
|
-
suites:
|
|
23
|
-
- name: default
|
|
24
|
-
- name: full
|
|
25
|
-
"""
|
|
26
|
-
And I successfully run `kitchen create default-flebian`
|
|
27
|
-
|
|
28
|
-
@spawn
|
|
29
|
-
Scenario: Logging in to an instance
|
|
30
|
-
When I run `kitchen login default-flebian`
|
|
31
|
-
Then the output should contain:
|
|
32
|
-
"""
|
|
33
|
-
Remote login not supported in Kitchen::Transport::Dummy::Connection.
|
|
34
|
-
"""
|
|
35
|
-
And the exit status should not be 0
|
|
36
|
-
|
|
37
|
-
@spawn
|
|
38
|
-
Scenario: Attempting to log into a non-created instance
|
|
39
|
-
When I run `kitchen login full-flebian`
|
|
40
|
-
Then the output should contain:
|
|
41
|
-
"""
|
|
42
|
-
Instance <full-flebian> has not yet been created
|
|
43
|
-
"""
|
|
44
|
-
And the exit status should not be 0
|
|
45
|
-
|
|
46
|
-
@spawn
|
|
47
|
-
Scenario: Attempting to log into a non-existent instance
|
|
48
|
-
When I run `kitchen login nope`
|
|
49
|
-
Then the output should contain "No instances for regex `nope'"
|
|
50
|
-
And the exit status should not be 0
|
|
51
|
-
|
|
52
|
-
@spawn
|
|
53
|
-
Scenario: Attempting to log into an instance with an overly fuzzy match
|
|
54
|
-
When I run `kitchen login flebian`
|
|
55
|
-
Then the output should contain:
|
|
56
|
-
"""
|
|
57
|
-
Argument `flebian' returned multiple results:
|
|
58
|
-
* default-flebian
|
|
59
|
-
* full-flebian
|
|
60
|
-
"""
|
|
61
|
-
And the exit status should not be 0
|
|
62
|
-
|
|
1
|
+
Feature: Logging into a Kitchen instance
|
|
2
|
+
In order to iterate, explore, and debug
|
|
3
|
+
As a crafty developer
|
|
4
|
+
I want to run a command that will give me a terminal session
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named ".kitchen.yml" with:
|
|
8
|
+
"""
|
|
9
|
+
---
|
|
10
|
+
driver:
|
|
11
|
+
name: dummy
|
|
12
|
+
|
|
13
|
+
transport:
|
|
14
|
+
name: dummy
|
|
15
|
+
|
|
16
|
+
provisioner:
|
|
17
|
+
name: dummy
|
|
18
|
+
|
|
19
|
+
platforms:
|
|
20
|
+
- name: flebian
|
|
21
|
+
|
|
22
|
+
suites:
|
|
23
|
+
- name: default
|
|
24
|
+
- name: full
|
|
25
|
+
"""
|
|
26
|
+
And I successfully run `kitchen create default-flebian`
|
|
27
|
+
|
|
28
|
+
@spawn
|
|
29
|
+
Scenario: Logging in to an instance
|
|
30
|
+
When I run `kitchen login default-flebian`
|
|
31
|
+
Then the output should contain:
|
|
32
|
+
"""
|
|
33
|
+
Remote login not supported in Kitchen::Transport::Dummy::Connection.
|
|
34
|
+
"""
|
|
35
|
+
And the exit status should not be 0
|
|
36
|
+
|
|
37
|
+
@spawn
|
|
38
|
+
Scenario: Attempting to log into a non-created instance
|
|
39
|
+
When I run `kitchen login full-flebian`
|
|
40
|
+
Then the output should contain:
|
|
41
|
+
"""
|
|
42
|
+
Instance <full-flebian> has not yet been created
|
|
43
|
+
"""
|
|
44
|
+
And the exit status should not be 0
|
|
45
|
+
|
|
46
|
+
@spawn
|
|
47
|
+
Scenario: Attempting to log into a non-existent instance
|
|
48
|
+
When I run `kitchen login nope`
|
|
49
|
+
Then the output should contain "No instances for regex `nope'"
|
|
50
|
+
And the exit status should not be 0
|
|
51
|
+
|
|
52
|
+
@spawn
|
|
53
|
+
Scenario: Attempting to log into an instance with an overly fuzzy match
|
|
54
|
+
When I run `kitchen login flebian`
|
|
55
|
+
Then the output should contain:
|
|
56
|
+
"""
|
|
57
|
+
Argument `flebian' returned multiple results:
|
|
58
|
+
* default-flebian
|
|
59
|
+
* full-flebian
|
|
60
|
+
"""
|
|
61
|
+
And the exit status should not be 0
|
|
62
|
+
|
|
@@ -1,30 +1,30 @@
|
|
|
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
|
+
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 +1,88 @@
|
|
|
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$/
|
|
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\>$/
|
|
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$/
|
|
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\>$/
|
|
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\>$/
|
|
86
|
-
Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
|
|
87
|
-
Then the output should match /^server-cool\s+.+\s+\<Not Created\>$/
|
|
88
|
-
Then the output should match /^server-beans\s+.+\s+\<Not Created\>$/
|
|
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$/
|
|
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\>$/
|
|
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$/
|
|
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\>$/
|
|
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\>$/
|
|
86
|
+
Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
|
|
87
|
+
Then the output should match /^server-cool\s+.+\s+\<Not Created\>$/
|
|
88
|
+
Then the output should match /^server-beans\s+.+\s+\<Not Created\>$/
|