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,16 +1,16 @@
|
|
|
1
|
-
Feature: A command line interface for Test Kitchen
|
|
2
|
-
In order to provide a quick and response development workflow
|
|
3
|
-
As a Test Kitchen user
|
|
4
|
-
I want a command line interface that has sane defaults and built in help
|
|
5
|
-
|
|
6
|
-
@spawn
|
|
7
|
-
Scenario: Displaying help
|
|
8
|
-
When I run `kitchen help`
|
|
9
|
-
Then the exit status should be 0
|
|
10
|
-
And the output should contain "kitchen console"
|
|
11
|
-
And the output should contain "kitchen version"
|
|
12
|
-
|
|
13
|
-
Scenario: Displaying the version of Test Kitchen
|
|
14
|
-
When I run `kitchen version`
|
|
15
|
-
Then the exit status should be 0
|
|
16
|
-
And the output should contain "Test Kitchen version"
|
|
1
|
+
Feature: A command line interface for Test Kitchen
|
|
2
|
+
In order to provide a quick and response development workflow
|
|
3
|
+
As a Test Kitchen user
|
|
4
|
+
I want a command line interface that has sane defaults and built in help
|
|
5
|
+
|
|
6
|
+
@spawn
|
|
7
|
+
Scenario: Displaying help
|
|
8
|
+
When I run `kitchen help`
|
|
9
|
+
Then the exit status should be 0
|
|
10
|
+
And the output should contain "kitchen console"
|
|
11
|
+
And the output should contain "kitchen version"
|
|
12
|
+
|
|
13
|
+
Scenario: Displaying the version of Test Kitchen
|
|
14
|
+
When I run `kitchen version`
|
|
15
|
+
Then the exit status should be 0
|
|
16
|
+
And the output should contain "Test Kitchen version"
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
Feature: Running a console command
|
|
2
|
-
In order to interactively explore Kitchen's internals and wiring
|
|
3
|
-
As an opterator
|
|
4
|
-
I want to run a command to launch an interactive console session
|
|
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: flebian
|
|
18
|
-
|
|
19
|
-
suites:
|
|
20
|
-
- name: default
|
|
21
|
-
- name: full
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
@spawn
|
|
25
|
-
Scenario: Launching a session
|
|
26
|
-
When I run `kitchen console` interactively
|
|
27
|
-
And I type "instances.map { |i| i.name }"
|
|
28
|
-
And I type "exit"
|
|
29
|
-
Then the output should contain "kc(Kitchen::Config)> "
|
|
30
|
-
Then the output should contain:
|
|
31
|
-
"""
|
|
32
|
-
["default-flebian", "full-flebian"]
|
|
33
|
-
"""
|
|
34
|
-
And the exit status should be 0
|
|
1
|
+
Feature: Running a console command
|
|
2
|
+
In order to interactively explore Kitchen's internals and wiring
|
|
3
|
+
As an opterator
|
|
4
|
+
I want to run a command to launch an interactive console session
|
|
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: flebian
|
|
18
|
+
|
|
19
|
+
suites:
|
|
20
|
+
- name: default
|
|
21
|
+
- name: full
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
@spawn
|
|
25
|
+
Scenario: Launching a session
|
|
26
|
+
When I run `kitchen console` interactively
|
|
27
|
+
And I type "instances.map { |i| i.name }"
|
|
28
|
+
And I type "exit"
|
|
29
|
+
Then the output should contain "kc(Kitchen::Config)> "
|
|
30
|
+
Then the output should contain:
|
|
31
|
+
"""
|
|
32
|
+
["default-flebian", "full-flebian"]
|
|
33
|
+
"""
|
|
34
|
+
And the exit status should be 0
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
Feature: Test Kitchen defaults
|
|
2
|
-
In order to have a more pleasant out of the box experience
|
|
3
|
-
As a user of Test Kitchen
|
|
4
|
-
I want to have some common defaults handled for me
|
|
5
|
-
|
|
6
|
-
Scenario: Windows platforms get the Winrm Transport by default
|
|
7
|
-
Given a file named ".kitchen.yml" with:
|
|
8
|
-
"""
|
|
9
|
-
---
|
|
10
|
-
driver: dummy
|
|
11
|
-
provisioner: dummy
|
|
12
|
-
verifier: dummy
|
|
13
|
-
|
|
14
|
-
platforms:
|
|
15
|
-
- name: win-8.1
|
|
16
|
-
|
|
17
|
-
suites:
|
|
18
|
-
- name: default
|
|
19
|
-
"""
|
|
20
|
-
When I successfully run `kitchen list`
|
|
21
|
-
Then the output should match /^default-win-81\s+Dummy\s+Dummy\s+Dummy\s+Winrm\s+\<Not Created\>$/
|
|
22
|
-
|
|
23
|
-
Scenario: Non-Windows platforms get the Ssh Transport by default
|
|
24
|
-
Given a file named ".kitchen.yml" with:
|
|
25
|
-
"""
|
|
26
|
-
---
|
|
27
|
-
driver: dummy
|
|
28
|
-
provisioner: dummy
|
|
29
|
-
verifier: dummy
|
|
30
|
-
|
|
31
|
-
platforms:
|
|
32
|
-
- name: ubuntu-14.04
|
|
33
|
-
|
|
34
|
-
suites:
|
|
35
|
-
- name: default
|
|
36
|
-
"""
|
|
37
|
-
When I successfully run `kitchen list`
|
|
38
|
-
Then the output should match /^default-ubuntu-1404\s+Dummy\s+Dummy\s+Dummy\s+Ssh\s+\<Not Created\>$/
|
|
1
|
+
Feature: Test Kitchen defaults
|
|
2
|
+
In order to have a more pleasant out of the box experience
|
|
3
|
+
As a user of Test Kitchen
|
|
4
|
+
I want to have some common defaults handled for me
|
|
5
|
+
|
|
6
|
+
Scenario: Windows platforms get the Winrm Transport by default
|
|
7
|
+
Given a file named ".kitchen.yml" with:
|
|
8
|
+
"""
|
|
9
|
+
---
|
|
10
|
+
driver: dummy
|
|
11
|
+
provisioner: dummy
|
|
12
|
+
verifier: dummy
|
|
13
|
+
|
|
14
|
+
platforms:
|
|
15
|
+
- name: win-8.1
|
|
16
|
+
|
|
17
|
+
suites:
|
|
18
|
+
- name: default
|
|
19
|
+
"""
|
|
20
|
+
When I successfully run `kitchen list`
|
|
21
|
+
Then the output should match /^default-win-81\s+Dummy\s+Dummy\s+Dummy\s+Winrm\s+\<Not Created\>$/
|
|
22
|
+
|
|
23
|
+
Scenario: Non-Windows platforms get the Ssh Transport by default
|
|
24
|
+
Given a file named ".kitchen.yml" with:
|
|
25
|
+
"""
|
|
26
|
+
---
|
|
27
|
+
driver: dummy
|
|
28
|
+
provisioner: dummy
|
|
29
|
+
verifier: dummy
|
|
30
|
+
|
|
31
|
+
platforms:
|
|
32
|
+
- name: ubuntu-14.04
|
|
33
|
+
|
|
34
|
+
suites:
|
|
35
|
+
- name: default
|
|
36
|
+
"""
|
|
37
|
+
When I successfully run `kitchen list`
|
|
38
|
+
Then the output should match /^default-ubuntu-1404\s+Dummy\s+Dummy\s+Dummy\s+Ssh\s+\<Not Created\>$/
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
Feature: Running a diagnosis command
|
|
2
|
-
In order to understand how Kitchen is wired together
|
|
3
|
-
As an operator and configuration sleuth
|
|
4
|
-
I want to run a command to get configuration information
|
|
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
|
-
transport:
|
|
17
|
-
name: dummy
|
|
18
|
-
|
|
19
|
-
verifier:
|
|
20
|
-
name: dummy
|
|
21
|
-
|
|
22
|
-
platforms:
|
|
23
|
-
- name: cool
|
|
24
|
-
- name: beans
|
|
25
|
-
|
|
26
|
-
suites:
|
|
27
|
-
- name: client
|
|
28
|
-
- name: server
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
@spawn
|
|
32
|
-
Scenario: Displaying help
|
|
33
|
-
When I run `kitchen help diagnose`
|
|
34
|
-
Then the output should contain:
|
|
35
|
-
"""
|
|
36
|
-
Usage:
|
|
37
|
-
kitchen diagnose
|
|
38
|
-
"""
|
|
39
|
-
And the exit status should be 0
|
|
40
|
-
|
|
41
|
-
@spawn
|
|
42
|
-
Scenario: Showing all instances
|
|
43
|
-
When I run `kitchen diagnose`
|
|
44
|
-
Then the output should contain "timestamp: "
|
|
45
|
-
Then the output should contain "kitchen_version: "
|
|
46
|
-
Then the output should contain " client-cool:"
|
|
47
|
-
Then the output should contain " client-beans:"
|
|
48
|
-
Then the output should contain " server-cool:"
|
|
49
|
-
Then the output should contain " server-beans:"
|
|
50
|
-
And the exit status should be 0
|
|
51
|
-
|
|
52
|
-
@spawn
|
|
53
|
-
Scenario: Showing all instances with loader configuration
|
|
54
|
-
When I run `kitchen diagnose --loader`
|
|
55
|
-
Then the output should contain:
|
|
56
|
-
"""
|
|
57
|
-
loader:
|
|
58
|
-
process_erb: true
|
|
59
|
-
process_local: true
|
|
60
|
-
process_global: true
|
|
61
|
-
"""
|
|
62
|
-
And the exit status should be 0
|
|
63
|
-
|
|
64
|
-
@spawn
|
|
65
|
-
Scenario: Showing all instances with plugin configuration
|
|
66
|
-
When I run `kitchen diagnose --plugins`
|
|
67
|
-
Then the output should contain "plugins:"
|
|
68
|
-
Then the output should contain " class: Kitchen::Driver::Dummy"
|
|
69
|
-
Then the output should contain " class: Kitchen::Provisioner::Dummy"
|
|
70
|
-
Then the output should contain " class: Kitchen::Transport::Dummy"
|
|
71
|
-
Then the output should contain " class: Kitchen::Verifier::Dummy"
|
|
72
|
-
And the exit status should be 0
|
|
73
|
-
|
|
74
|
-
@spawn
|
|
75
|
-
Scenario: Coping with loading failure
|
|
76
|
-
Given a file named ".kitchen.local.yml" with:
|
|
77
|
-
"""
|
|
78
|
-
I'm a little teapot
|
|
79
|
-
"""
|
|
80
|
-
When I run `kitchen diagnose --all`
|
|
81
|
-
Then the output should contain:
|
|
82
|
-
"""
|
|
83
|
-
raw_data:
|
|
84
|
-
error:
|
|
85
|
-
"""
|
|
86
|
-
And the output should contain:
|
|
87
|
-
"""
|
|
88
|
-
instances:
|
|
89
|
-
error:
|
|
90
|
-
"""
|
|
91
|
-
And the output should contain:
|
|
92
|
-
"""
|
|
93
|
-
plugins:
|
|
94
|
-
error:
|
|
95
|
-
"""
|
|
96
|
-
And the exit status should be 0
|
|
1
|
+
Feature: Running a diagnosis command
|
|
2
|
+
In order to understand how Kitchen is wired together
|
|
3
|
+
As an operator and configuration sleuth
|
|
4
|
+
I want to run a command to get configuration information
|
|
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
|
+
transport:
|
|
17
|
+
name: dummy
|
|
18
|
+
|
|
19
|
+
verifier:
|
|
20
|
+
name: dummy
|
|
21
|
+
|
|
22
|
+
platforms:
|
|
23
|
+
- name: cool
|
|
24
|
+
- name: beans
|
|
25
|
+
|
|
26
|
+
suites:
|
|
27
|
+
- name: client
|
|
28
|
+
- name: server
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
@spawn
|
|
32
|
+
Scenario: Displaying help
|
|
33
|
+
When I run `kitchen help diagnose`
|
|
34
|
+
Then the output should contain:
|
|
35
|
+
"""
|
|
36
|
+
Usage:
|
|
37
|
+
kitchen diagnose
|
|
38
|
+
"""
|
|
39
|
+
And the exit status should be 0
|
|
40
|
+
|
|
41
|
+
@spawn
|
|
42
|
+
Scenario: Showing all instances
|
|
43
|
+
When I run `kitchen diagnose`
|
|
44
|
+
Then the output should contain "timestamp: "
|
|
45
|
+
Then the output should contain "kitchen_version: "
|
|
46
|
+
Then the output should contain " client-cool:"
|
|
47
|
+
Then the output should contain " client-beans:"
|
|
48
|
+
Then the output should contain " server-cool:"
|
|
49
|
+
Then the output should contain " server-beans:"
|
|
50
|
+
And the exit status should be 0
|
|
51
|
+
|
|
52
|
+
@spawn
|
|
53
|
+
Scenario: Showing all instances with loader configuration
|
|
54
|
+
When I run `kitchen diagnose --loader`
|
|
55
|
+
Then the output should contain:
|
|
56
|
+
"""
|
|
57
|
+
loader:
|
|
58
|
+
process_erb: true
|
|
59
|
+
process_local: true
|
|
60
|
+
process_global: true
|
|
61
|
+
"""
|
|
62
|
+
And the exit status should be 0
|
|
63
|
+
|
|
64
|
+
@spawn
|
|
65
|
+
Scenario: Showing all instances with plugin configuration
|
|
66
|
+
When I run `kitchen diagnose --plugins`
|
|
67
|
+
Then the output should contain "plugins:"
|
|
68
|
+
Then the output should contain " class: Kitchen::Driver::Dummy"
|
|
69
|
+
Then the output should contain " class: Kitchen::Provisioner::Dummy"
|
|
70
|
+
Then the output should contain " class: Kitchen::Transport::Dummy"
|
|
71
|
+
Then the output should contain " class: Kitchen::Verifier::Dummy"
|
|
72
|
+
And the exit status should be 0
|
|
73
|
+
|
|
74
|
+
@spawn
|
|
75
|
+
Scenario: Coping with loading failure
|
|
76
|
+
Given a file named ".kitchen.local.yml" with:
|
|
77
|
+
"""
|
|
78
|
+
I'm a little teapot
|
|
79
|
+
"""
|
|
80
|
+
When I run `kitchen diagnose --all`
|
|
81
|
+
Then the output should contain:
|
|
82
|
+
"""
|
|
83
|
+
raw_data:
|
|
84
|
+
error:
|
|
85
|
+
"""
|
|
86
|
+
And the output should contain:
|
|
87
|
+
"""
|
|
88
|
+
instances:
|
|
89
|
+
error:
|
|
90
|
+
"""
|
|
91
|
+
And the output should contain:
|
|
92
|
+
"""
|
|
93
|
+
plugins:
|
|
94
|
+
error:
|
|
95
|
+
"""
|
|
96
|
+
And the exit status should be 0
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
Feature: Create a new Test Kitchen Driver project
|
|
2
|
-
In order to make plugin development a snap
|
|
3
|
-
As a user of Test Kitchen
|
|
4
|
-
I want a command to run that will give me a driver gem project scaffold
|
|
5
|
-
|
|
6
|
-
@spawn
|
|
7
|
-
Scenario: Displaying help
|
|
8
|
-
When I run `kitchen help driver create`
|
|
9
|
-
Then the output should contain:
|
|
10
|
-
"""
|
|
11
|
-
Usage:
|
|
12
|
-
kitchen driver create [NAME]
|
|
13
|
-
"""
|
|
14
|
-
And the exit status should be 0
|
|
15
|
-
|
|
16
|
-
Scenario: Running with default values
|
|
17
|
-
When I run `kitchen driver create qemu`
|
|
18
|
-
Then a directory named "kitchen-qemu" should exist
|
|
19
|
-
And the file "kitchen-qemu/CHANGELOG.md" should contain:
|
|
20
|
-
"""
|
|
21
|
-
## 0.1.0 / Unreleased
|
|
22
|
-
"""
|
|
23
|
-
And the file "kitchen-qemu/Gemfile" should contain "gemspec"
|
|
24
|
-
And the file "kitchen-qemu/Rakefile" should contain "task :stats"
|
|
25
|
-
And the file "kitchen-qemu/README.md" should contain:
|
|
26
|
-
"""
|
|
27
|
-
Kitchen::Qemu
|
|
28
|
-
"""
|
|
29
|
-
And the file "kitchen-qemu/kitchen-qemu.gemspec" should contain:
|
|
30
|
-
"""
|
|
31
|
-
require 'kitchen/driver/qemu_version'
|
|
32
|
-
"""
|
|
33
|
-
And the file "kitchen-qemu/LICENSE" should contain:
|
|
34
|
-
"""
|
|
35
|
-
Licensed under the Apache License, Version 2.0
|
|
36
|
-
"""
|
|
37
|
-
And the file "kitchen-qemu/.gitignore" should contain:
|
|
38
|
-
"""
|
|
39
|
-
Gemfile.lock
|
|
40
|
-
"""
|
|
41
|
-
And the file "kitchen-qemu/.tailor" should contain:
|
|
42
|
-
"""
|
|
43
|
-
config.file_set 'lib/**/*.rb'
|
|
44
|
-
"""
|
|
45
|
-
And the file "kitchen-qemu/.travis.yml" should contain:
|
|
46
|
-
"""
|
|
47
|
-
language: ruby
|
|
48
|
-
"""
|
|
49
|
-
And a file named "kitchen-qemu/.cane" should exist
|
|
50
|
-
And the file "kitchen-qemu/lib/kitchen/driver/qemu_version.rb" should contain:
|
|
51
|
-
"""
|
|
52
|
-
QEMU_VERSION = "0.1.0.dev"
|
|
53
|
-
"""
|
|
54
|
-
And the file "kitchen-qemu/lib/kitchen/driver/qemu.rb" should contain:
|
|
55
|
-
"""
|
|
56
|
-
class Qemu < Kitchen::Driver::SSHBase
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
Scenario: Running with an alternate license
|
|
60
|
-
When I successfully run `kitchen driver create foo --license=reserved`
|
|
61
|
-
Then the file "kitchen-foo/LICENSE" should contain:
|
|
62
|
-
"""
|
|
63
|
-
All rights reserved - Do Not Redistribute
|
|
64
|
-
"""
|
|
1
|
+
Feature: Create a new Test Kitchen Driver project
|
|
2
|
+
In order to make plugin development a snap
|
|
3
|
+
As a user of Test Kitchen
|
|
4
|
+
I want a command to run that will give me a driver gem project scaffold
|
|
5
|
+
|
|
6
|
+
@spawn
|
|
7
|
+
Scenario: Displaying help
|
|
8
|
+
When I run `kitchen help driver create`
|
|
9
|
+
Then the output should contain:
|
|
10
|
+
"""
|
|
11
|
+
Usage:
|
|
12
|
+
kitchen driver create [NAME]
|
|
13
|
+
"""
|
|
14
|
+
And the exit status should be 0
|
|
15
|
+
|
|
16
|
+
Scenario: Running with default values
|
|
17
|
+
When I run `kitchen driver create qemu`
|
|
18
|
+
Then a directory named "kitchen-qemu" should exist
|
|
19
|
+
And the file "kitchen-qemu/CHANGELOG.md" should contain:
|
|
20
|
+
"""
|
|
21
|
+
## 0.1.0 / Unreleased
|
|
22
|
+
"""
|
|
23
|
+
And the file "kitchen-qemu/Gemfile" should contain "gemspec"
|
|
24
|
+
And the file "kitchen-qemu/Rakefile" should contain "task :stats"
|
|
25
|
+
And the file "kitchen-qemu/README.md" should contain:
|
|
26
|
+
"""
|
|
27
|
+
Kitchen::Qemu
|
|
28
|
+
"""
|
|
29
|
+
And the file "kitchen-qemu/kitchen-qemu.gemspec" should contain:
|
|
30
|
+
"""
|
|
31
|
+
require 'kitchen/driver/qemu_version'
|
|
32
|
+
"""
|
|
33
|
+
And the file "kitchen-qemu/LICENSE" should contain:
|
|
34
|
+
"""
|
|
35
|
+
Licensed under the Apache License, Version 2.0
|
|
36
|
+
"""
|
|
37
|
+
And the file "kitchen-qemu/.gitignore" should contain:
|
|
38
|
+
"""
|
|
39
|
+
Gemfile.lock
|
|
40
|
+
"""
|
|
41
|
+
And the file "kitchen-qemu/.tailor" should contain:
|
|
42
|
+
"""
|
|
43
|
+
config.file_set 'lib/**/*.rb'
|
|
44
|
+
"""
|
|
45
|
+
And the file "kitchen-qemu/.travis.yml" should contain:
|
|
46
|
+
"""
|
|
47
|
+
language: ruby
|
|
48
|
+
"""
|
|
49
|
+
And a file named "kitchen-qemu/.cane" should exist
|
|
50
|
+
And the file "kitchen-qemu/lib/kitchen/driver/qemu_version.rb" should contain:
|
|
51
|
+
"""
|
|
52
|
+
QEMU_VERSION = "0.1.0.dev"
|
|
53
|
+
"""
|
|
54
|
+
And the file "kitchen-qemu/lib/kitchen/driver/qemu.rb" should contain:
|
|
55
|
+
"""
|
|
56
|
+
class Qemu < Kitchen::Driver::SSHBase
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
Scenario: Running with an alternate license
|
|
60
|
+
When I successfully run `kitchen driver create foo --license=reserved`
|
|
61
|
+
Then the file "kitchen-foo/LICENSE" should contain:
|
|
62
|
+
"""
|
|
63
|
+
All rights reserved - Do Not Redistribute
|
|
64
|
+
"""
|