kitchen-itamae 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ed0e3eca7d4f48b6b1d726cd2ea73d95f272f83
4
- data.tar.gz: 3709e5f151b761b8bb740c647364e57fa197c3ec
3
+ metadata.gz: 669a8e5d3ca1d9f48b8e6a435ce6d1083ff490e8
4
+ data.tar.gz: f38e2e8ed3d1f5f0ec3b4691cf79d7d6e64f1cfc
5
5
  SHA512:
6
- metadata.gz: 584d45d4b5275394fd83427072762c895a965f484a0b0f44f0888f6e0f0d3f17e7751b9187bbbc1d79c670d4f7b58698a98202f757645ed2c6488efbddba7f8d
7
- data.tar.gz: e1b5dcaea6e14b924ef50c36e32436e19cb421ee43d17063a3be43dc92af531b15e5d2bbdc0b16937d7cc22b881e001eb8ceba97f05b0d9b2a1239ef5fe77c31
6
+ metadata.gz: d554f62fd74b75fcecee83823febec9f70ead48ae93b44fab1c26b6fc9fa3a721fda74ffde3b00c750ebb7df419427caeda9abe3791c70372b15a33288670511
7
+ data.tar.gz: 1127b6a9f46d6a345ced9bc16588ecdb86c8a23cb8c6970591c9822b65bb92a309309422438ef21e092b6a26e9824e6a1c659bd3f779d077ea62a9909c3632a7
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --format documentation
@@ -1,5 +1,11 @@
1
1
  CHANGELOG of Itamae::Kitchen
2
2
 
3
+ ## 0.2.4
4
+
5
+ - Compati: include chef_helper as string
6
+ - for test-kitchen 1.4.0
7
+ - It is tempolaly imprement.
8
+
3
9
  ## 0.2.3
4
10
 
5
11
  - Bug: Clash on centos6 with Gemfile.
@@ -0,0 +1,77 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features)
6
+
7
+ ## Uncomment to clear the screen before every task
8
+ # clearing :on
9
+
10
+ ## Guard internally checks for changes in the Guardfile and exits.
11
+ ## If you want Guard to automatically start up again, run guard in a
12
+ ## shell loop, e.g.:
13
+ ##
14
+ ## $ while bundle exec guard; do echo "Restarting Guard..."; done
15
+ ##
16
+ ## Note: if you are using the `directories` clause above and you are not
17
+ ## watching the project directory ('.'), then you will want to move
18
+ ## the Guardfile to a watched dir and symlink it back, e.g.
19
+ #
20
+ # $ mkdir config
21
+ # $ mv Guardfile config/
22
+ # $ ln -s config/Guardfile .
23
+ #
24
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
25
+
26
+ # Note: The cmd option is now required due to the increasing number of ways
27
+ # rspec may be run, below are examples of the most common uses.
28
+ # * bundler: 'bundle exec rspec'
29
+ # * bundler binstubs: 'bin/rspec'
30
+ # * spring: 'bin/rspec' (This will use spring if running and you have
31
+ # installed the spring binstubs per the docs)
32
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
33
+ # * 'just' rspec: 'rspec'
34
+
35
+ guard :rspec, cmd: "bundle exec rspec" do
36
+ require "guard/rspec/dsl"
37
+ dsl = Guard::RSpec::Dsl.new(self)
38
+
39
+ # Feel free to open issues for suggestions and improvements
40
+
41
+ # RSpec files
42
+ rspec = dsl.rspec
43
+ watch(rspec.spec_helper) { rspec.spec_dir }
44
+ watch(rspec.spec_support) { rspec.spec_dir }
45
+ watch(rspec.spec_files)
46
+
47
+ # Ruby files
48
+ ruby = dsl.ruby
49
+ dsl.watch_spec_files_for(ruby.lib_files)
50
+
51
+ # Rails files
52
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
53
+ dsl.watch_spec_files_for(rails.app_files)
54
+ dsl.watch_spec_files_for(rails.views)
55
+
56
+ watch(rails.controllers) do |m|
57
+ [
58
+ rspec.spec.("routing/#{m[1]}_routing"),
59
+ rspec.spec.("controllers/#{m[1]}_controller"),
60
+ rspec.spec.("acceptance/#{m[1]}")
61
+ ]
62
+ end
63
+
64
+ # Rails config changes
65
+ watch(rails.spec_helper) { rspec.spec_dir }
66
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
67
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
68
+
69
+ # Capybara features specs
70
+ watch(rails.view_dirs) { |m| rspec.spec.("features/#{m[1]}") }
71
+
72
+ # Turnip features and steps
73
+ watch(%r{^spec/acceptance/(.+)\.feature$})
74
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
75
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
76
+ end
77
+ end
@@ -22,4 +22,6 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.7"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "guard-rspec"
25
27
  end
@@ -1,5 +1,5 @@
1
1
  module Kitchen
2
2
  module Itamae
3
- VERSION = "0.2.3"
3
+ VERSION = "0.2.4"
4
4
  end
5
5
  end
@@ -97,9 +97,34 @@ module Kitchen
97
97
  end
98
98
 
99
99
  def chef_helpers
100
- IO.read(
101
- Gem.find_files_from_load_path('../support/chef_helpers.sh').first
102
- )
100
+ # test-kitchen removes chef_helper at 1.4.0.
101
+ # It is tempolaly imprement.
102
+ <<-CHEF_HELPER
103
+ should_update_chef() {
104
+ if test ! -d "$1" ; then return 0
105
+ elif test "$2" = "true" ; then return 1
106
+ elif test "$2" = "latest" ; then return 0
107
+ fi
108
+
109
+ local version="`$1/bin/chef-solo -v | cut -d " " -f 2`"
110
+
111
+ echo "$version" | grep "^$2" 2>&1 >/dev/null
112
+ if test $? -eq 0 ; then
113
+ return 1
114
+ else
115
+ return 0
116
+ fi
117
+ }
118
+
119
+ should_update_chef "$chef_omnibus_root" "$version"
120
+ if test $? -eq 0 ; then
121
+ echo "-----> Installing Chef Omnibus ($pretty_version)"
122
+ do_download "$chef_omnibus_url" /tmp/install.sh
123
+ $sudo_sh /tmp/install.sh $install_flags
124
+ else
125
+ echo "-----> Chef Omnibus installation detected ($pretty_version)"
126
+ fi
127
+ CHEF_HELPER
103
128
  end
104
129
 
105
130
  def chef_install_function
@@ -0,0 +1,104 @@
1
+ require_relative '../../spec_helper'
2
+ require 'kitchen'
3
+
4
+ require 'kitchen/provisioner/itamae'
5
+
6
+ describe Kitchen::Provisioner::Itamae do
7
+ let(:logger) { Logger.new(nil) }
8
+
9
+ let(:provisioner) do
10
+ Kitchen::Provisioner::Itamae.new(config).finalize_config!(instance)
11
+ end
12
+
13
+ let(:suite) do
14
+ double(name: "test-default")
15
+ end
16
+
17
+ let(:instance) do
18
+ double(name: "itamae_node", logger: logger, suite: suite)
19
+ end
20
+
21
+ let(:config) do
22
+ { test_base_path: "/basist", kitchen_root: "/rooty", itamae_root: 'kitchen' }
23
+ end
24
+
25
+ describe Kitchen::Provisioner::Itamae, "prepare_command" do
26
+ it "returns nil prepare_command with default configration" do
27
+ expect(provisioner.prepare_command).to be_nil
28
+ end
29
+
30
+ context "with Gemfile" do
31
+ it "returns bundler prepare_command" do
32
+ allow(File).to receive(:exists?).with(
33
+ File.join(config[:kitchen_root], config[:itamae_root], 'Gemfile')
34
+ ).and_return(true)
35
+ expect(provisioner.prepare_command).to match regexify("bundle config shebang", :partial_line)
36
+ expect(provisioner.prepare_command).to match regexify("bundle install --binstubs", :partial_line)
37
+ end
38
+ end
39
+ end
40
+
41
+ describe Kitchen::Provisioner::Itamae, "run_command" do
42
+ it "returns run_command with recipe" do
43
+ config[:run_list] = %w[tamatama itaita]
44
+ expect(provisioner.run_command).to match regexify("tamatama.rb", :partial_line)
45
+ expect(provisioner.run_command).to match regexify("itaita.rb", :partial_line)
46
+ end
47
+
48
+ context "with Gemfile" do
49
+ it "returns bundler run_command" do
50
+ config[:run_list] = %w[tamatama itaita]
51
+ config[:use_bundler] = true
52
+ allow(File).to receive(:exists?).with(
53
+ File.join(config[:kitchen_root], config[:itamae_root], 'Gemfile')
54
+ ).and_return(true)
55
+ expect(provisioner.run_command).to match regexify("export PATH=", :partial_line)
56
+ expect(provisioner.run_command).to match regexify("tamatama.rb", :partial_line)
57
+ expect(provisioner.run_command).to match regexify("itaita.rb", :partial_line)
58
+ end
59
+ end
60
+ end
61
+
62
+ describe Kitchen::Provisioner::Itamae, "prepare_json" do
63
+ before do
64
+ @root = Dir.mktmpdir
65
+ config[:kitchen_root] = @root
66
+ end
67
+
68
+ after do
69
+ FileUtils.remove_entry(@root)
70
+ begin
71
+ provisioner.cleanup_sandbox
72
+ rescue # rubocop:disable Lint/HandleExceptions
73
+ end
74
+ end
75
+
76
+ let(:attrs) do
77
+ JSON.parse(File.read(File.join(provisioner.sandbox_path, 'dna.json')))
78
+ end
79
+
80
+ it "creates dna.json to sandbox_path" do
81
+ provisioner.create_sandbox
82
+ provisioner.send(:prepare_json)
83
+ expect(attrs).to be_empty
84
+ end
85
+
86
+ context "with Attributes" do
87
+ it "creates dna.json with attributes" do
88
+ config[:attributes] = {
89
+ key: "value"
90
+ }
91
+ provisioner.create_sandbox
92
+ provisioner.send(:prepare_json)
93
+ expect(attrs['key']).to eq "value"
94
+ end
95
+ end
96
+ end
97
+
98
+ # see spec/provisioner/shell_spec
99
+ def regexify(str, line = :whole_line)
100
+ r = Regexp.escape(str)
101
+ r = "^\s*#{r}$" if line == :whole_line
102
+ Regexp.new(r)
103
+ end
104
+ end
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rspec'
4
+
5
+ RSpec.configure do |config|
6
+ config.tty = true
7
+ config.color = true
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-itamae
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - sawanoboly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  description: itamae provisioner for test-kitchen
56
84
  email:
57
85
  - sawanoboriyu@higanworks.com
@@ -60,14 +88,18 @@ extensions: []
60
88
  extra_rdoc_files: []
61
89
  files:
62
90
  - ".gitignore"
91
+ - ".rspec"
63
92
  - CHANGELOG.md
64
93
  - Gemfile
94
+ - Guardfile
65
95
  - LICENSE.txt
66
96
  - README.md
67
97
  - Rakefile
68
98
  - kitchen-itamae.gemspec
69
99
  - lib/kitchen-itamae/version.rb
70
100
  - lib/kitchen/provisioner/itamae.rb
101
+ - spec/kitchen/provisioner/itamae_spec.rb
102
+ - spec/spec_helper.rb
71
103
  homepage: https://github.com/OpsRockin/kitchen-itamae
72
104
  licenses:
73
105
  - apache2
@@ -88,9 +120,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
120
  version: '0'
89
121
  requirements: []
90
122
  rubyforge_project:
91
- rubygems_version: 2.4.5
123
+ rubygems_version: 2.4.6
92
124
  signing_key:
93
125
  specification_version: 4
94
126
  summary: itamae provisioner for test-kitchen
95
- test_files: []
96
- has_rdoc:
127
+ test_files:
128
+ - spec/kitchen/provisioner/itamae_spec.rb
129
+ - spec/spec_helper.rb