cuken 0.1.4 → 0.1.7

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 (41) hide show
  1. data/.relish +2 -0
  2. data/Gemfile +4 -4
  3. data/Gemfile.lock +17 -23
  4. data/VERSION +1 -1
  5. data/cuken.gems +108 -0
  6. data/cuken.gemspec +33 -10
  7. data/features/about.md +15 -2
  8. data/features/chef_examples/cookbooks_cookbook.feature +38 -3
  9. data/features/chef_examples/cookbooks_remote_repo.feature +10 -0
  10. data/features/chef_examples/cookbooks_repo.feature +5 -5
  11. data/features/{chef_steps → chef_examples}/knife_admin_client.feature +4 -4
  12. data/features/chef_examples/knife_client_create.feature +13 -0
  13. data/features/chef_steps/common_steps.feature +2 -2
  14. data/features/chef_steps/cookbook_steps.feature +12 -5
  15. data/features/chef_steps/node_steps.feature +1 -1
  16. data/features/file_steps/file_steps.feature +11 -11
  17. data/lib/cuken/all.rb +4 -0
  18. data/lib/cuken/api/chef/common.rb +46 -8
  19. data/lib/cuken/api/chef/knife.rb +107 -0
  20. data/lib/cuken/api/chef.rb +21 -13
  21. data/lib/cuken/api/common.rb +12 -0
  22. data/lib/cuken/api/rvm.rb +501 -0
  23. data/lib/cuken/api/ssh-forever.rb +237 -0
  24. data/lib/cuken/chef.rb +2 -0
  25. data/lib/cuken/common.rb +1 -0
  26. data/lib/cuken/cucumber/chef/common.rb +4 -2
  27. data/lib/cuken/cucumber/chef/cookbook.rb +87 -12
  28. data/lib/cuken/cucumber/chef/data_bag.rb +27 -0
  29. data/lib/cuken/cucumber/chef/knife.rb +10 -0
  30. data/lib/cuken/cucumber/chef/node.rb +20 -8
  31. data/lib/cuken/cucumber/chef/role.rb +18 -1
  32. data/lib/cuken/cucumber/chef.rb +5 -3
  33. data/lib/cuken/cucumber/cmd.rb +1 -1
  34. data/lib/cuken/cucumber/file.rb +18 -2
  35. data/lib/cuken/cucumber/rvm.rb +4 -0
  36. data/lib/cuken/rvm.rb +3 -0
  37. data/spec/api/knife_spec.rb +94 -0
  38. data/spec/api/rvm_spec.rb +274 -0
  39. data/spec/api/rvmrc_processor_spec.rb +288 -0
  40. data/spec/spec_helper.rb +58 -2
  41. metadata +67 -30
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,68 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
- require 'cuken'
4
+ require 'stringio'
5
+ require 'fakefs/safe'
6
+ require 'fakefs/spec_helpers'
7
+ require 'rvm'
8
+ require 'rr'
9
+ require 'chef/mixins'
10
+ require 'chef/knife/configure'
11
+ require 'chef/knife/client_create'
12
+
13
+ require 'cuken/api/rvm'
14
+ require 'cuken/api/chef'
15
+ require 'cuken/api/chef/knife'
5
16
 
6
17
  # Requires supporting files with custom matchers and macros, etc,
7
18
  # in ./support/ and its subdirectories.
8
19
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
20
 
10
21
  RSpec.configure do |config|
11
-
22
+
23
+ config.mock_with :rr
24
+ include ::Cuken::Api::Chef
25
+ # or if that doesn't work due to a version incompatibility
26
+ # config.mock_with RR::Adapters::Rspec
12
27
  end
28
+
29
+ def test_rvmrc(rubie, gemset_name)
30
+ %Q{
31
+ ruby_id="#{rubie}"
32
+ gemset_id="#{gemset_name}"
33
+ environment_id=${ruby_id}@${gemset_id}
34
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
35
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] ; then
36
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
37
+ else
38
+ # If the environment file has not yet been created, use the RVM CLI to select.
39
+ rvm --create "$environment_id"
40
+ fi
41
+ filename=${gemset_id}.gems
42
+ if [[ -s "$filename" ]] ; then
43
+ rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
44
+ fi
45
+ }
46
+ end
47
+
48
+ def test_gems
49
+ %Q{
50
+ # cuken.gems generated gem export file. Note that any env variable settings will be missing. Append these after using a ';' field separator
51
+ 1 -v1.0.0
52
+ 2 -v3.0.5
53
+ 3 -v0.6.7
54
+ }
55
+ end
56
+
57
+ def setup_rvmrc_gems_files(count)
58
+ root= FileUtils.mkpath("/path/to/dir", :mode => 0755)
59
+ full="/path/to/dir/#{(1..count).to_a.join('/')}"
60
+ FileUtils.mkpath(full, :mode => 0755)
61
+ Pathname(full).ascend do |d|
62
+ num = File.basename d
63
+ File.open("#{d.to_s}/.rvmrc", "w") { |f| f << test_rvmrc("ruby-1.9.2-p136", num) }
64
+ File.open("#{d.to_s}/#{num}.gems", "w") { |f| f << test_gems }
65
+ end
66
+ root.to_s
67
+ end
68
+
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cuken
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.4
5
+ version: 0.1.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Hedgehog
@@ -10,8 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-29 00:00:00 +11:00
14
- default_executable:
13
+ date: 2011-04-17 00:00:00 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: aruba
@@ -25,63 +24,74 @@ dependencies:
25
24
  prerelease: false
26
25
  version_requirements: *id001
27
26
  - !ruby/object:Gem::Dependency
28
- name: ssh-forever
27
+ name: chef
29
28
  requirement: &id002 !ruby/object:Gem::Requirement
30
29
  none: false
31
30
  requirements:
32
31
  - - ~>
33
32
  - !ruby/object:Gem::Version
34
- version: 0.4.0
33
+ version: 0.9.12
35
34
  type: :runtime
36
35
  prerelease: false
37
36
  version_requirements: *id002
38
37
  - !ruby/object:Gem::Dependency
39
- name: chef
38
+ name: grit
40
39
  requirement: &id003 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
- version: 0.9.12
44
+ version: 2.4.1
46
45
  type: :runtime
47
46
  prerelease: false
48
47
  version_requirements: *id003
49
48
  - !ruby/object:Gem::Dependency
50
- name: grit
49
+ name: rvm
51
50
  requirement: &id004 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
54
53
  - - ~>
55
54
  - !ruby/object:Gem::Version
56
- version: 2.4.1
55
+ version: 1.5.2
57
56
  type: :runtime
58
57
  prerelease: false
59
58
  version_requirements: *id004
60
59
  - !ruby/object:Gem::Dependency
61
- name: rspec
60
+ name: rr
62
61
  requirement: &id005 !ruby/object:Gem::Requirement
63
62
  none: false
64
63
  requirements:
65
64
  - - ~>
66
65
  - !ruby/object:Gem::Version
67
- version: 2.5.0
66
+ version: 1.0.2
68
67
  type: :development
69
68
  prerelease: false
70
69
  version_requirements: *id005
71
70
  - !ruby/object:Gem::Dependency
72
- name: yard
71
+ name: rspec
73
72
  requirement: &id006 !ruby/object:Gem::Requirement
74
73
  none: false
75
74
  requirements:
76
75
  - - ~>
77
76
  - !ruby/object:Gem::Version
78
- version: 0.6.0
77
+ version: 2.5.0
79
78
  type: :development
80
79
  prerelease: false
81
80
  version_requirements: *id006
82
81
  - !ruby/object:Gem::Dependency
83
- name: cucumber
82
+ name: yard
84
83
  requirement: &id007 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 0.6.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: cucumber
94
+ requirement: &id008 !ruby/object:Gem::Requirement
85
95
  none: false
86
96
  requirements:
87
97
  - - ">="
@@ -89,21 +99,21 @@ dependencies:
89
99
  version: "0"
90
100
  type: :development
91
101
  prerelease: false
92
- version_requirements: *id007
102
+ version_requirements: *id008
93
103
  - !ruby/object:Gem::Dependency
94
104
  name: bundler
95
- requirement: &id008 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
96
106
  none: false
97
107
  requirements:
98
108
  - - ~>
99
109
  - !ruby/object:Gem::Version
100
- version: 1.0.10
110
+ version: 1.0.11
101
111
  type: :development
102
112
  prerelease: false
103
- version_requirements: *id008
113
+ version_requirements: *id009
104
114
  - !ruby/object:Gem::Dependency
105
115
  name: jeweler
106
- requirement: &id009 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
107
117
  none: false
108
118
  requirements:
109
119
  - - ~>
@@ -111,10 +121,10 @@ dependencies:
111
121
  version: 1.5.2
112
122
  type: :development
113
123
  prerelease: false
114
- version_requirements: *id009
124
+ version_requirements: *id010
115
125
  - !ruby/object:Gem::Dependency
116
126
  name: rcov
117
- requirement: &id010 !ruby/object:Gem::Requirement
127
+ requirement: &id011 !ruby/object:Gem::Requirement
118
128
  none: false
119
129
  requirements:
120
130
  - - ">="
@@ -122,10 +132,10 @@ dependencies:
122
132
  version: "0"
123
133
  type: :development
124
134
  prerelease: false
125
- version_requirements: *id010
135
+ version_requirements: *id011
126
136
  - !ruby/object:Gem::Dependency
127
137
  name: reek
128
- requirement: &id011 !ruby/object:Gem::Requirement
138
+ requirement: &id012 !ruby/object:Gem::Requirement
129
139
  none: false
130
140
  requirements:
131
141
  - - ~>
@@ -133,10 +143,10 @@ dependencies:
133
143
  version: 1.2.8
134
144
  type: :development
135
145
  prerelease: false
136
- version_requirements: *id011
146
+ version_requirements: *id012
137
147
  - !ruby/object:Gem::Dependency
138
148
  name: roodi
139
- requirement: &id012 !ruby/object:Gem::Requirement
149
+ requirement: &id013 !ruby/object:Gem::Requirement
140
150
  none: false
141
151
  requirements:
142
152
  - - ~>
@@ -144,7 +154,18 @@ dependencies:
144
154
  version: 2.1.0
145
155
  type: :development
146
156
  prerelease: false
147
- version_requirements: *id012
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
159
+ name: fakefs
160
+ requirement: &id014 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.3.1
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: *id014
148
169
  description: Reusable Cucumber steps and API for post-convergence system integration descriptions
149
170
  email: hedgehogshiatus@gmail.com
150
171
  executables: []
@@ -156,6 +177,7 @@ extra_rdoc_files:
156
177
  - README.md
157
178
  files:
158
179
  - .document
180
+ - .relish
159
181
  - .rspec
160
182
  - Gemfile
161
183
  - Gemfile.lock
@@ -165,16 +187,19 @@ files:
165
187
  - Rakefile
166
188
  - VERSION
167
189
  - cucumber.yml
190
+ - cuken.gems
168
191
  - cuken.gemspec
169
192
  - examples/chef/features/support/env.rb
170
193
  - features/.nav
171
194
  - features/about.md
172
195
  - features/chef_examples/cookbooks_cookbook.feature
173
196
  - features/chef_examples/cookbooks_metadata.feature
197
+ - features/chef_examples/cookbooks_remote_repo.feature
174
198
  - features/chef_examples/cookbooks_repo.feature
199
+ - features/chef_examples/knife_admin_client.feature
200
+ - features/chef_examples/knife_client_create.feature
175
201
  - features/chef_steps/common_steps.feature
176
202
  - features/chef_steps/cookbook_steps.feature
177
- - features/chef_steps/knife_admin_client.feature
178
203
  - features/chef_steps/knife_steps.feature
179
204
  - features/chef_steps/node_steps.feature
180
205
  - features/command_examples/commands.feature
@@ -532,11 +557,15 @@ files:
532
557
  - features/step_definitions/cuken_steps.rb
533
558
  - features/support/env.rb
534
559
  - lib/cuken.rb
560
+ - lib/cuken/all.rb
535
561
  - lib/cuken/api/chef.rb
536
562
  - lib/cuken/api/chef/common.rb
563
+ - lib/cuken/api/chef/knife.rb
537
564
  - lib/cuken/api/cmd.rb
538
565
  - lib/cuken/api/common.rb
539
566
  - lib/cuken/api/file.rb
567
+ - lib/cuken/api/rvm.rb
568
+ - lib/cuken/api/ssh-forever.rb
540
569
  - lib/cuken/api/ssh.rb
541
570
  - lib/cuken/api/ssh/password.rb
542
571
  - lib/cuken/chef.rb
@@ -546,6 +575,7 @@ files:
546
575
  - lib/cuken/cucumber/chef/common.rb
547
576
  - lib/cuken/cucumber/chef/cookbook.rb
548
577
  - lib/cuken/cucumber/chef/cookbook_steps.rb
578
+ - lib/cuken/cucumber/chef/data_bag.rb
549
579
  - lib/cuken/cucumber/chef/deploy_steps.rb
550
580
  - lib/cuken/cucumber/chef/done_directory_steps.rb
551
581
  - lib/cuken/cucumber/chef/done_file_steps.rb
@@ -569,12 +599,16 @@ files:
569
599
  - lib/cuken/cucumber/cmd.rb
570
600
  - lib/cuken/cucumber/common.rb
571
601
  - lib/cuken/cucumber/file.rb
602
+ - lib/cuken/cucumber/rvm.rb
572
603
  - lib/cuken/cucumber/ssh.rb
573
604
  - lib/cuken/file.rb
605
+ - lib/cuken/rvm.rb
574
606
  - lib/cuken/ssh.rb
607
+ - spec/api/knife_spec.rb
608
+ - spec/api/rvm_spec.rb
609
+ - spec/api/rvmrc_processor_spec.rb
575
610
  - spec/cuken_spec.rb
576
611
  - spec/spec_helper.rb
577
- has_rdoc: true
578
612
  homepage: http://github.com/hedgehog/cuken
579
613
  licenses:
580
614
  - Apache 2.0
@@ -588,7 +622,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
588
622
  requirements:
589
623
  - - ">="
590
624
  - !ruby/object:Gem::Version
591
- hash: -277200992008000239
625
+ hash: -3536209968277030369
592
626
  segments:
593
627
  - 0
594
628
  version: "0"
@@ -601,11 +635,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
601
635
  requirements: []
602
636
 
603
637
  rubyforge_project:
604
- rubygems_version: 1.6.2
638
+ rubygems_version: 1.7.2
605
639
  signing_key:
606
640
  specification_version: 3
607
641
  summary: Reusable Cucumber steps and API for post-convergence system integration descriptions
608
642
  test_files:
609
643
  - examples/chef/features/support/env.rb
644
+ - spec/api/knife_spec.rb
645
+ - spec/api/rvm_spec.rb
646
+ - spec/api/rvmrc_processor_spec.rb
610
647
  - spec/cuken_spec.rb
611
648
  - spec/spec_helper.rb