test-kitchen 1.14.1 → 1.14.2

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/Berksfile +1 -1
  3. data/CHANGELOG.md +7 -0
  4. data/Gemfile +1 -1
  5. data/Guardfile +5 -5
  6. data/Rakefile +5 -5
  7. data/bin/kitchen +1 -1
  8. data/features/step_definitions/gem_steps.rb +6 -6
  9. data/features/support/env.rb +6 -7
  10. data/lib/kitchen.rb +5 -7
  11. data/lib/kitchen/base64_stream.rb +2 -8
  12. data/lib/kitchen/cli.rb +76 -80
  13. data/lib/kitchen/collection.rb +0 -2
  14. data/lib/kitchen/color.rb +7 -9
  15. data/lib/kitchen/command.rb +0 -4
  16. data/lib/kitchen/command/action.rb +0 -3
  17. data/lib/kitchen/command/console.rb +4 -7
  18. data/lib/kitchen/command/diagnose.rb +7 -14
  19. data/lib/kitchen/command/driver_discover.rb +1 -4
  20. data/lib/kitchen/command/exec.rb +0 -3
  21. data/lib/kitchen/command/list.rb +9 -12
  22. data/lib/kitchen/command/login.rb +0 -3
  23. data/lib/kitchen/command/package.rb +0 -3
  24. data/lib/kitchen/command/sink.rb +6 -9
  25. data/lib/kitchen/command/test.rb +1 -4
  26. data/lib/kitchen/config.rb +25 -27
  27. data/lib/kitchen/configurable.rb +26 -31
  28. data/lib/kitchen/data_munger.rb +34 -36
  29. data/lib/kitchen/diagnostic.rb +5 -7
  30. data/lib/kitchen/driver.rb +3 -5
  31. data/lib/kitchen/driver/base.rb +0 -3
  32. data/lib/kitchen/driver/dummy.rb +0 -3
  33. data/lib/kitchen/driver/proxy.rb +0 -3
  34. data/lib/kitchen/driver/ssh_base.rb +13 -16
  35. data/lib/kitchen/errors.rb +11 -16
  36. data/lib/kitchen/generator/driver_create.rb +18 -21
  37. data/lib/kitchen/generator/init.rb +21 -26
  38. data/lib/kitchen/instance.rb +19 -23
  39. data/lib/kitchen/lazy_hash.rb +1 -2
  40. data/lib/kitchen/loader/yaml.rb +22 -25
  41. data/lib/kitchen/logger.rb +9 -14
  42. data/lib/kitchen/logging.rb +0 -3
  43. data/lib/kitchen/login_command.rb +0 -2
  44. data/lib/kitchen/metadata_chopper.rb +0 -2
  45. data/lib/kitchen/platform.rb +1 -3
  46. data/lib/kitchen/provisioner.rb +3 -5
  47. data/lib/kitchen/provisioner/base.rb +2 -5
  48. data/lib/kitchen/provisioner/chef/berkshelf.rb +1 -5
  49. data/lib/kitchen/provisioner/chef/common_sandbox.rb +24 -29
  50. data/lib/kitchen/provisioner/chef/librarian.rb +2 -6
  51. data/lib/kitchen/provisioner/chef/policyfile.rb +4 -8
  52. data/lib/kitchen/provisioner/chef_apply.rb +14 -17
  53. data/lib/kitchen/provisioner/chef_base.rb +43 -46
  54. data/lib/kitchen/provisioner/chef_solo.rb +10 -13
  55. data/lib/kitchen/provisioner/chef_zero.rb +22 -29
  56. data/lib/kitchen/provisioner/dummy.rb +0 -3
  57. data/lib/kitchen/provisioner/shell.rb +6 -9
  58. data/lib/kitchen/rake_tasks.rb +4 -6
  59. data/lib/kitchen/shell_out.rb +3 -5
  60. data/lib/kitchen/ssh.rb +16 -22
  61. data/lib/kitchen/state_file.rb +3 -5
  62. data/lib/kitchen/suite.rb +0 -2
  63. data/lib/kitchen/thor_tasks.rb +2 -4
  64. data/lib/kitchen/transport.rb +3 -5
  65. data/lib/kitchen/transport/base.rb +1 -7
  66. data/lib/kitchen/transport/dummy.rb +0 -4
  67. data/lib/kitchen/transport/ssh.rb +41 -47
  68. data/lib/kitchen/transport/winrm.rb +41 -40
  69. data/lib/kitchen/util.rb +1 -3
  70. data/lib/kitchen/verifier.rb +3 -5
  71. data/lib/kitchen/verifier/base.rb +2 -5
  72. data/lib/kitchen/verifier/busser.rb +24 -24
  73. data/lib/kitchen/verifier/dummy.rb +0 -3
  74. data/lib/kitchen/verifier/shell.rb +1 -3
  75. data/lib/kitchen/version.rb +1 -1
  76. data/lib/vendor/hash_recursive_merge.rb +0 -2
  77. data/spec/kitchen/base64_stream_spec.rb +3 -6
  78. data/spec/kitchen/cli_spec.rb +0 -2
  79. data/spec/kitchen/collection_spec.rb +4 -8
  80. data/spec/kitchen/color_spec.rb +0 -3
  81. data/spec/kitchen/config_spec.rb +91 -106
  82. data/spec/kitchen/configurable_spec.rb +44 -76
  83. data/spec/kitchen/data_munger_spec.rb +1178 -1247
  84. data/spec/kitchen/diagnostic_spec.rb +37 -38
  85. data/spec/kitchen/driver/base_spec.rb +7 -14
  86. data/spec/kitchen/driver/dummy_spec.rb +1 -7
  87. data/spec/kitchen/driver/proxy_spec.rb +2 -7
  88. data/spec/kitchen/driver/ssh_base_spec.rb +128 -149
  89. data/spec/kitchen/driver_spec.rb +7 -13
  90. data/spec/kitchen/errors_spec.rb +50 -60
  91. data/spec/kitchen/instance_spec.rb +217 -294
  92. data/spec/kitchen/lazy_hash_spec.rb +14 -18
  93. data/spec/kitchen/loader/yaml_spec.rb +201 -227
  94. data/spec/kitchen/logger_spec.rb +7 -15
  95. data/spec/kitchen/logging_spec.rb +1 -4
  96. data/spec/kitchen/login_command_spec.rb +3 -4
  97. data/spec/kitchen/metadata_chopper_spec.rb +0 -3
  98. data/spec/kitchen/platform_spec.rb +31 -32
  99. data/spec/kitchen/provisioner/base_spec.rb +22 -41
  100. data/spec/kitchen/provisioner/chef/policyfile_spec.rb +15 -15
  101. data/spec/kitchen/provisioner/chef_apply_spec.rb +8 -13
  102. data/spec/kitchen/provisioner/chef_base_spec.rb +150 -182
  103. data/spec/kitchen/provisioner/chef_solo_spec.rb +58 -72
  104. data/spec/kitchen/provisioner/chef_zero_spec.rb +99 -125
  105. data/spec/kitchen/provisioner/dummy_spec.rb +8 -11
  106. data/spec/kitchen/provisioner/shell_spec.rb +86 -103
  107. data/spec/kitchen/provisioner_spec.rb +5 -11
  108. data/spec/kitchen/shell_out_spec.rb +15 -19
  109. data/spec/kitchen/ssh_spec.rb +16 -35
  110. data/spec/kitchen/state_file_spec.rb +6 -11
  111. data/spec/kitchen/suite_spec.rb +5 -6
  112. data/spec/kitchen/transport/base_spec.rb +6 -14
  113. data/spec/kitchen/transport/ssh_spec.rb +39 -64
  114. data/spec/kitchen/transport/winrm_spec.rb +99 -127
  115. data/spec/kitchen/transport_spec.rb +7 -13
  116. data/spec/kitchen/util_spec.rb +17 -26
  117. data/spec/kitchen/verifier/base_spec.rb +24 -40
  118. data/spec/kitchen/verifier/busser_spec.rb +38 -68
  119. data/spec/kitchen/verifier/dummy_spec.rb +8 -11
  120. data/spec/kitchen/verifier/shell_spec.rb +14 -17
  121. data/spec/kitchen/verifier_spec.rb +7 -13
  122. data/spec/kitchen_spec.rb +4 -6
  123. data/spec/spec_helper.rb +1 -1
  124. data/spec/support/powershell_max_size_spec.rb +1 -2
  125. data/support/chef-client-zero.rb +3 -4
  126. data/test-kitchen.gemspec +4 -6
  127. metadata +9 -9
@@ -25,14 +25,11 @@ require "kitchen/provisioner"
25
25
  require "kitchen/provisioner/base"
26
26
 
27
27
  module Kitchen
28
-
29
28
  module Provisioner
30
-
31
29
  class Coolbeans < Kitchen::Provisioner::Base
32
30
  end
33
31
 
34
32
  class ItDepends < Kitchen::Provisioner::Base
35
-
36
33
  attr_reader :verify_call_count
37
34
 
38
35
  def initialize(config = {})
@@ -46,7 +43,6 @@ module Kitchen
46
43
  end
47
44
 
48
45
  class UnstableDepends < Kitchen::Provisioner::Base
49
-
50
46
  def verify_dependencies
51
47
  raise UserError, "Oh noes, you don't have software!"
52
48
  end
@@ -55,9 +51,7 @@ module Kitchen
55
51
  end
56
52
 
57
53
  describe Kitchen::Provisioner do
58
-
59
54
  describe ".for_plugin" do
60
-
61
55
  before do
62
56
  Kitchen::Provisioner.stubs(:require).returns(true)
63
57
  end
@@ -69,7 +63,7 @@ describe Kitchen::Provisioner do
69
63
  end
70
64
 
71
65
  it "returns a provisioner initialized with its config" do
72
- provisioner = Kitchen::Provisioner.for_plugin("coolbeans", :foo => "bar")
66
+ provisioner = Kitchen::Provisioner.for_plugin("coolbeans", foo: "bar")
73
67
 
74
68
  provisioner[:foo].must_equal "bar"
75
69
  end
@@ -92,16 +86,16 @@ describe Kitchen::Provisioner do
92
86
  it "raises ClientError if the provisioner could not be required" do
93
87
  Kitchen::Provisioner.stubs(:require).raises(LoadError)
94
88
 
95
- proc { Kitchen::Provisioner.for_plugin("coolbeans", {}) }.
96
- must_raise Kitchen::ClientError
89
+ proc { Kitchen::Provisioner.for_plugin("coolbeans", {}) }
90
+ .must_raise Kitchen::ClientError
97
91
  end
98
92
 
99
93
  it "raises ClientError if the provisioner's class constant was not found" do
100
94
  # pretend require worked
101
95
  Kitchen::Provisioner.stubs(:require).returns(true)
102
96
 
103
- proc { Kitchen::Provisioner.for_plugin("nope", {}) }.
104
- must_raise Kitchen::ClientError
97
+ proc { Kitchen::Provisioner.for_plugin("nope", {}) }
98
+ .must_raise Kitchen::ClientError
105
99
  end
106
100
  end
107
101
  end
@@ -23,9 +23,7 @@ require "kitchen/shell_out"
23
23
  require "kitchen/util"
24
24
 
25
25
  module Kitchen
26
-
27
26
  class Shelly
28
-
29
27
  include Kitchen::ShellOut
30
28
 
31
29
  attr_reader :logs
@@ -42,22 +40,20 @@ module Kitchen
42
40
  end
43
41
 
44
42
  describe Kitchen::ShellOut do
45
-
46
43
  let(:command) do
47
44
  stub(
48
- :run_command => true,
49
- :error! => true,
50
- :stdout => "",
51
- :execution_time => 123
45
+ run_command: true,
46
+ error!: true,
47
+ stdout: "",
48
+ execution_time: 123
52
49
  )
53
50
  end
54
51
 
55
52
  let(:subject) { Kitchen::Shelly.new }
56
53
 
57
54
  describe "#run_command" do
58
-
59
55
  let(:opts) do
60
- { :live_stream => "alogger", :timeout => 60000 }
56
+ { live_stream: "alogger", timeout: 60_000 }
61
57
  end
62
58
 
63
59
  before do
@@ -89,11 +85,11 @@ describe Kitchen::ShellOut do
89
85
  end
90
86
 
91
87
  it "raises a ShellCommandFailed if the command does not cleanly exit" do
92
- command.stubs(:error!).
93
- raises(Mixlib::ShellOut::ShellCommandFailed, "boom bad")
88
+ command.stubs(:error!)
89
+ .raises(Mixlib::ShellOut::ShellCommandFailed, "boom bad")
94
90
 
95
- err = proc { subject.run_command("boom") }.
96
- must_raise Kitchen::ShellOut::ShellCommandFailed
91
+ err = proc { subject.run_command("boom") }
92
+ .must_raise Kitchen::ShellOut::ShellCommandFailed
97
93
  err.message.must_equal "boom bad"
98
94
  end
99
95
 
@@ -109,25 +105,25 @@ describe Kitchen::ShellOut do
109
105
  Mixlib::ShellOut.unstub(:new)
110
106
  Mixlib::ShellOut.expects(:new).with("sudo -E yo", opts).returns(command)
111
107
 
112
- subject.run_command("yo", :use_sudo => true)
108
+ subject.run_command("yo", use_sudo: true)
113
109
  end
114
110
 
115
111
  it "prepends with custom :sudo_command if :use_sudo is truthy" do
116
112
  Mixlib::ShellOut.unstub(:new)
117
113
  Mixlib::ShellOut.expects(:new).with("wat yo", opts).returns(command)
118
114
 
119
- subject.run_command("yo", :use_sudo => true, :sudo_command => "wat")
115
+ subject.run_command("yo", use_sudo: true, sudo_command: "wat")
120
116
  end
121
117
 
122
118
  it "logs a debug BEGIN message" do
123
119
  subject.run_command("echo whoopa\ndoopa\ndo")
124
120
 
125
- subject.logs.first.
126
- must_equal "[local command] BEGIN (echo whoopa\ndoopa\ndo)"
121
+ subject.logs.first
122
+ .must_equal "[local command] BEGIN (echo whoopa\ndoopa\ndo)"
127
123
  end
128
124
 
129
125
  it "logs a debug BEGIN message with custom log subject" do
130
- subject.run_command("tenac", :log_subject => "thed")
126
+ subject.run_command("tenac", log_subject: "thed")
131
127
 
132
128
  subject.logs.first.must_equal "[thed command] BEGIN (tenac)"
133
129
  end
@@ -142,7 +138,7 @@ describe Kitchen::ShellOut do
142
138
  end
143
139
 
144
140
  it "logs a debug END message with custom log subject" do
145
- subject.run_command("tenac", :log_subject => "thed")
141
+ subject.run_command("tenac", log_subject: "thed")
146
142
 
147
143
  subject.logs.last.must_equal "[thed command] END (2m3.00s)"
148
144
  end
@@ -87,13 +87,9 @@ end
87
87
  # An upstream patch to Net::SSH will be required to retire this yak shave ;)
88
88
  require "net/ssh/test/channel"
89
89
  module Net
90
-
91
90
  module SSH
92
-
93
91
  module Test
94
-
95
92
  class Channel
96
-
97
93
  def sends_request_pty
98
94
  pty_data = ["xterm", 80, 24, 640, 480, "\0"]
99
95
 
@@ -116,7 +112,6 @@ module Net
116
112
  end
117
113
 
118
114
  describe Kitchen::SSH do
119
-
120
115
  include Net::SSH::Test
121
116
 
122
117
  let(:logged_output) { StringIO.new }
@@ -137,14 +132,12 @@ describe Kitchen::SSH do
137
132
  end
138
133
 
139
134
  describe "establishing a connection" do
140
-
141
135
  [
142
136
  Errno::EACCES, Errno::EADDRINUSE, Errno::ECONNREFUSED,
143
137
  Errno::ECONNRESET, Errno::ENETUNREACH, Errno::EHOSTUNREACH,
144
138
  Net::SSH::Disconnect, Net::SSH::AuthenticationFailed, Net::SSH::ConnectionTimeout
145
139
  ].each do |klass|
146
140
  describe "raising #{klass}" do
147
-
148
141
  before do
149
142
  Net::SSH.stubs(:start).raises(klass)
150
143
  opts[:ssh_retries] = 3
@@ -161,9 +154,9 @@ describe Kitchen::SSH do
161
154
  rescue # rubocop:disable Lint/HandleExceptions
162
155
  end
163
156
 
164
- logged_output.string.lines.count { |l|
157
+ logged_output.string.lines.count do |l|
165
158
  l =~ debug_line("[SSH] opening connection to me@foo:22<{:ssh_retries=>3}>")
166
- }.must_equal opts[:ssh_retries]
159
+ end.must_equal opts[:ssh_retries]
167
160
  end
168
161
 
169
162
  it "sleeps for 1 second between retries" do
@@ -182,9 +175,9 @@ describe Kitchen::SSH do
182
175
  rescue # rubocop:disable Lint/HandleExceptions
183
176
  end
184
177
 
185
- logged_output.string.lines.count { |l|
178
+ logged_output.string.lines.count do |l|
186
179
  l =~ info_line_with("[SSH] connection failed, retrying ")
187
- }.must_equal 2
180
+ end.must_equal 2
188
181
  end
189
182
 
190
183
  it "logs the last retry failures on warn" do
@@ -193,18 +186,16 @@ describe Kitchen::SSH do
193
186
  rescue # rubocop:disable Lint/HandleExceptions
194
187
  end
195
188
 
196
- logged_output.string.lines.count { |l|
189
+ logged_output.string.lines.count do |l|
197
190
  l =~ warn_line_with("[SSH] connection failed, terminating ")
198
- }.must_equal 1
191
+ end.must_equal 1
199
192
  end
200
193
  end
201
194
  end
202
195
  end
203
196
 
204
197
  describe "#exec" do
205
-
206
198
  describe "for a successful command" do
207
-
208
199
  before do
209
200
  story do |script|
210
201
  channel = script.opens_channel
@@ -248,7 +239,6 @@ describe Kitchen::SSH do
248
239
  end
249
240
 
250
241
  describe "for a failed command" do
251
-
252
242
  before do
253
243
  story do |script|
254
244
  channel = script.opens_channel
@@ -310,7 +300,6 @@ describe Kitchen::SSH do
310
300
  end
311
301
 
312
302
  describe "#upload!" do
313
-
314
303
  let(:content) { "a" * 1234 }
315
304
 
316
305
  let(:src) do
@@ -358,7 +347,6 @@ describe Kitchen::SSH do
358
347
  end
359
348
 
360
349
  describe "#upload_path!" do
361
-
362
350
  before do
363
351
  @dir = Dir.mktmpdir("local")
364
352
 
@@ -438,7 +426,6 @@ describe Kitchen::SSH do
438
426
  end
439
427
 
440
428
  describe "#shutdown" do
441
-
442
429
  before do
443
430
  story do |script|
444
431
  channel = script.opens_channel
@@ -477,7 +464,6 @@ describe Kitchen::SSH do
477
464
  end
478
465
 
479
466
  describe "block form" do
480
-
481
467
  before do
482
468
  story do |script|
483
469
  channel = script.opens_channel
@@ -500,7 +486,6 @@ describe Kitchen::SSH do
500
486
  end
501
487
 
502
488
  describe "#login_command" do
503
-
504
489
  let(:login_command) { ssh.login_command }
505
490
  let(:args) { login_command.arguments.join(" ") }
506
491
 
@@ -566,7 +551,7 @@ describe Kitchen::SSH do
566
551
  end
567
552
 
568
553
  it "sets SSH keys options if given" do
569
- opts[:keys] = %w[one two]
554
+ opts[:keys] = %w{one two}
570
555
 
571
556
  args.must_match regexify(" -i one ")
572
557
  args.must_match regexify(" -i two ")
@@ -584,8 +569,7 @@ describe Kitchen::SSH do
584
569
  end
585
570
 
586
571
  describe "#test_ssh" do
587
-
588
- let(:tcp_socket) { stub(:select_for_read? => true, :close => true) }
572
+ let(:tcp_socket) { stub(select_for_read?: true, close: true) }
589
573
 
590
574
  before { ssh.stubs(:sleep) }
591
575
 
@@ -609,7 +593,6 @@ describe Kitchen::SSH do
609
593
  Errno::ENETUNREACH, IOError
610
594
  ].each do |klass|
611
595
  describe "when #{klass} is raised" do
612
-
613
596
  before { TCPSocket.stubs(:new).raises(klass) }
614
597
 
615
598
  it "returns false" do
@@ -628,7 +611,6 @@ describe Kitchen::SSH do
628
611
  Errno::EPERM, Errno::ETIMEDOUT
629
612
  ].each do |klass|
630
613
  describe "when #{klass} is raised" do
631
-
632
614
  it "returns false when #{klass} is raised" do
633
615
  TCPSocket.stubs(:new).raises(klass)
634
616
 
@@ -639,22 +621,21 @@ describe Kitchen::SSH do
639
621
  end
640
622
 
641
623
  describe "#wait" do
642
-
643
624
  let(:not_ready) do
644
- stub(:select_for_read? => false, :idle! => true, :close => true)
625
+ stub(select_for_read?: false, idle!: true, close: true)
645
626
  end
646
627
 
647
628
  let(:ready) do
648
- stub(:select_for_read? => true, :close => true)
629
+ stub(select_for_read?: true, close: true)
649
630
  end
650
631
 
651
632
  it "logs to info for each retry" do
652
633
  TCPSocket.stubs(:new).returns(not_ready, not_ready, ready)
653
634
  ssh.wait
654
635
 
655
- logged_output.string.lines.count { |l|
636
+ logged_output.string.lines.count do |l|
656
637
  l =~ info_line_with("Waiting for foo:22...")
657
- }.must_equal 2
638
+ end.must_equal 2
658
639
  end
659
640
  end
660
641
 
@@ -676,18 +657,18 @@ describe Kitchen::SSH do
676
657
  end
677
658
 
678
659
  def debug_line(msg)
679
- %r{^D, .* : #{Regexp.escape(msg)}$}
660
+ /^D, .* : #{Regexp.escape(msg)}$/
680
661
  end
681
662
 
682
663
  def debug_line_with(msg)
683
- %r{^D, .* : #{Regexp.escape(msg)}}
664
+ /^D, .* : #{Regexp.escape(msg)}/
684
665
  end
685
666
 
686
667
  def info_line_with(msg)
687
- %r{^I, .* : #{Regexp.escape(msg)}}
668
+ /^I, .* : #{Regexp.escape(msg)}/
688
669
  end
689
670
 
690
671
  def warn_line_with(msg)
691
- %r{^W, .* : #{Regexp.escape(msg)}}
672
+ /^W, .* : #{Regexp.escape(msg)}/
692
673
  end
693
674
  end
@@ -27,7 +27,6 @@ class YamledState
27
27
  end
28
28
 
29
29
  describe Kitchen::StateFile do
30
-
31
30
  let(:state_file) { Kitchen::StateFile.new("/tmp", "oftheunion") }
32
31
  let(:file_name) { "/tmp/.kitchen/oftheunion.yml" }
33
32
 
@@ -42,23 +41,22 @@ describe Kitchen::StateFile do
42
41
  end
43
42
 
44
43
  describe "#read" do
45
-
46
44
  it "returns an empty hash if the file does not exist" do
47
- state_file.read.must_equal(Hash.new)
45
+ state_file.read.must_equal({})
48
46
  end
49
47
 
50
48
  it "returns and empty hash if the file is zero length" do
51
49
  stub_state_file!("")
52
50
 
53
- state_file.read.must_equal(Hash.new)
51
+ state_file.read.must_equal({})
54
52
  end
55
53
 
56
54
  it "returns a Hash with symbolized keys from the state file" do
57
55
  stub_state_file!
58
56
 
59
57
  state_file.read.must_equal(
60
- :cloud_id => 42,
61
- :flavor => "extra_crispy"
58
+ cloud_id: 42,
59
+ flavor: "extra_crispy"
62
60
  )
63
61
  end
64
62
 
@@ -70,7 +68,7 @@ describe Kitchen::StateFile do
70
68
 
71
69
  state_file.read.class.wont_equal YamledState
72
70
  state_file.read.class.must_equal Hash
73
- state_file.read.must_equal(:yoinks => "zoinks")
71
+ state_file.read.must_equal(yoinks: "zoinks")
74
72
  end
75
73
 
76
74
  it "raises a StateFileLoadError if the state file cannot be parsed" do
@@ -78,11 +76,9 @@ describe Kitchen::StateFile do
78
76
 
79
77
  proc { state_file.read }.must_raise Kitchen::StateFileLoadError
80
78
  end
81
-
82
79
  end
83
80
 
84
81
  describe "#write" do
85
-
86
82
  it "creates the directory path to the state file" do
87
83
  File.directory?("/tmp/.kitchen").must_equal false
88
84
  state_file.write({})
@@ -90,14 +86,13 @@ describe Kitchen::StateFile do
90
86
  end
91
87
 
92
88
  it "writes a state file with stringified keys" do
93
- state_file.write(:thekey => "thyself")
89
+ state_file.write(thekey: "thyself")
94
90
 
95
91
  IO.read(file_name).split("\n").must_include "thekey: thyself"
96
92
  end
97
93
  end
98
94
 
99
95
  describe "#destroy" do
100
-
101
96
  it "executes if no file exists" do
102
97
  File.exist?(file_name).must_equal false
103
98
  state_file.destroy
@@ -22,12 +22,11 @@ require "kitchen/errors"
22
22
  require "kitchen/suite"
23
23
 
24
24
  describe Kitchen::Suite do
25
-
26
25
  let(:opts) do
27
26
  {
28
- :name => "suitezy",
29
- :includes => %w[testbuntu testcent],
30
- :excludes => %w[prodbuntu]
27
+ name: "suitezy",
28
+ includes: %w{testbuntu testcent},
29
+ excludes: %w{prodbuntu},
31
30
  }
32
31
  end
33
32
 
@@ -43,7 +42,7 @@ describe Kitchen::Suite do
43
42
  end
44
43
 
45
44
  it "returns the includes" do
46
- suite.includes.must_equal %w[testbuntu testcent]
45
+ suite.includes.must_equal %w{testbuntu testcent}
47
46
  end
48
47
 
49
48
  it "returns an empty Array when includes not given" do
@@ -52,7 +51,7 @@ describe Kitchen::Suite do
52
51
  end
53
52
 
54
53
  it "returns the excludes" do
55
- suite.excludes.must_equal %w[prodbuntu]
54
+ suite.excludes.must_equal %w{prodbuntu}
56
55
  end
57
56
 
58
57
  it "returns an empty Array when excludes not given" do