capistrano-spec 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -126,6 +126,11 @@ One thing you might be wondering now is... that's cool, but what about working w
126
126
  @configuration.should have_gotten('/tmp/bar').to('bar')
127
127
  end
128
128
 
129
+ it "should have put" do
130
+ @configuration.put 'some: content', '/config.yml'
131
+ @configuration.should have_put('some: content').to('/config.yml')
132
+ end
133
+
129
134
  You also test [callbacks](http://rubydoc.info/github/capistrano/capistrano/master/Capistrano/Configuration/Callbacks) to see if your tasks are being called at the right time:
130
135
 
131
136
  require 'capistrano'
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "capistrano-spec"
8
- gem.version = '0.4.0'
8
+ gem.version = '0.5.0'
9
9
 
10
10
  gem.summary = %Q{Test your capistrano recipes}
11
11
  gem.description = %Q{Helpers and matchers for testing capistrano}
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "capistrano-spec"
8
- s.version = "0.4.0"
7
+ s.name = %q{capistrano-spec}
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Nichols", "Karl Matthias", "Peter M Souter", "Jan Graichen"]
12
- s.date = "2013-05-16"
13
- s.description = "Helpers and matchers for testing capistrano"
14
- s.email = "josh@technicalpickles.com"
12
+ s.date = %q{2013-06-21}
13
+ s.description = %q{Helpers and matchers for testing capistrano}
14
+ s.email = %q{josh@technicalpickles.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -34,13 +34,13 @@ Gem::Specification.new do |s|
34
34
  "spec/stub_commands_spec.rb",
35
35
  "spec/uploaded_spec.rb"
36
36
  ]
37
- s.homepage = "http://github.com/technicalpickles/capistrano-spec"
37
+ s.homepage = %q{http://github.com/technicalpickles/capistrano-spec}
38
38
  s.require_paths = ["lib"]
39
- s.rubygems_version = "2.0.3"
40
- s.summary = "Test your capistrano recipes"
39
+ s.rubygems_version = %q{1.6.2}
40
+ s.summary = %q{Test your capistrano recipes}
41
41
 
42
42
  if s.respond_to? :specification_version then
43
- s.specification_version = 4
43
+ s.specification_version = 3
44
44
 
45
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
46
  s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
@@ -176,6 +176,56 @@ module Capistrano
176
176
 
177
177
  end
178
178
 
179
+ define :have_put do |content|
180
+ @to = nil
181
+
182
+ match do |configuration|
183
+ uploads = configuration.uploads.reduce([]) do |memo, (upload, options)|
184
+ # the {#put} method creates a {StringIO} object.
185
+ # @see {StringIO#string}
186
+ if upload.respond_to?(:string) && upload.string == content
187
+ memo << options
188
+ end
189
+
190
+ memo
191
+ end
192
+
193
+ if @to
194
+ uploads.any? { |upload| upload[:to] == @to }
195
+ else
196
+ !uploads.empty?
197
+ end
198
+ end
199
+
200
+ def to(path)
201
+ @to = path
202
+ self
203
+ end
204
+
205
+ failure_message_for_should do |configuration|
206
+ if @to
207
+ "expected configuration to put #{content.inspect} to #{@to.inspect}, but did not"
208
+ else
209
+ "expected configuration to put #{content.inspect}, but did not"
210
+ end
211
+ end
212
+
213
+ failure_message_for_should_not do |configuration|
214
+ if @to
215
+ "expected configuration to not put #{content.inspect} to #{@to.inspect}, but did"
216
+ else
217
+ "expected configuration to not put #{content.inspect}, but did"
218
+ end
219
+ end
220
+
221
+ description do
222
+ if @to
223
+ "puts the content #{content.inspect} to #{@to.inspect}"
224
+ else
225
+ "puts the content #{content.inspect}"
226
+ end
227
+ end
228
+ end
179
229
  end
180
230
  end
181
231
  end
@@ -67,4 +67,38 @@ describe Capistrano::Spec do
67
67
  end
68
68
  end
69
69
 
70
+ describe 'have_put' do
71
+ context 'when a path is given' do
72
+ it "will not raise error when put is in recipe" do
73
+ fake_recipe.find_and_execute_task('fake:thing')
74
+ expect do
75
+ should have_put('fake content').to('/tmp/put')
76
+ end.to_not raise_error(RSpec::Expectations::ExpectationNotMetError, /expected configuration to put .*\s* to .*\s*, but did not/)
77
+ end
78
+
79
+ it "will raise error when put is not in recipe" do
80
+ fake_recipe.find_and_execute_task('fake:thing')
81
+ expect do
82
+ should have_put('real content').to('/tmp/wherever')
83
+ end.to raise_error(RSpec::Expectations::ExpectationNotMetError, /expected configuration to put .*\s* to .*\s*, but did not/)
84
+ end
85
+ end
86
+
87
+ context 'when a path is not given' do
88
+ it "will not raise error when put is in recipe" do
89
+ fake_recipe.find_and_execute_task('fake:thing')
90
+ expect do
91
+ should have_put('fake content')
92
+ end.to_not raise_error(RSpec::Expectations::ExpectationNotMetError, /expected configuration to put .*\s*, but did not/)
93
+ end
94
+
95
+ it "will raise error when put is not in recipe" do
96
+ fake_recipe.find_and_execute_task('fake:thing')
97
+ expect do
98
+ should have_put('real content')
99
+ end.to raise_error(RSpec::Expectations::ExpectationNotMetError, /expected configuration to put .*\s*, but did not/)
100
+ end
101
+ end
102
+ end
103
+
70
104
  end
@@ -14,6 +14,7 @@ require 'capistrano'
14
14
  run('do some stuff')
15
15
  upload("foo", "/tmp/foo")
16
16
  get('/tmp/baz', 'baz')
17
+ put('fake content', '/tmp/put')
17
18
  end
18
19
  desc "More fake tasks!"
19
20
  task :before_this_execute_thing do
@@ -37,4 +38,4 @@ require 'capistrano'
37
38
 
38
39
  if Capistrano::Configuration.instance
39
40
  Capistrano::FakeRecipe.load_into(Capistrano::Configuration.instance)
40
- end
41
+ end
metadata CHANGED
@@ -1,9 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: capistrano-spec
3
- version: !ruby/object:Gem::Version
4
- version: 0.4.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Joshua Nichols
8
14
  - Karl Matthias
9
15
  - Peter M Souter
@@ -11,30 +17,36 @@ authors:
11
17
  autorequire:
12
18
  bindir: bin
13
19
  cert_chain: []
14
- date: 2013-05-16 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: rspec
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
20
+
21
+ date: 2013-06-21 00:00:00 +02:00
22
+ default_executable:
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 15
31
+ segments:
32
+ - 2
33
+ - 0
34
+ - 0
22
35
  version: 2.0.0
23
36
  type: :development
37
+ name: rspec
38
+ version_requirements: *id001
24
39
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: 2.0.0
30
40
  description: Helpers and matchers for testing capistrano
31
41
  email: josh@technicalpickles.com
32
42
  executables: []
43
+
33
44
  extensions: []
34
- extra_rdoc_files:
45
+
46
+ extra_rdoc_files:
35
47
  - LICENSE
36
48
  - README.rdoc
37
- files:
49
+ files:
38
50
  - .document
39
51
  - .travis.yml
40
52
  - Gemfile
@@ -51,27 +63,39 @@ files:
51
63
  - spec/spec_helper.rb
52
64
  - spec/stub_commands_spec.rb
53
65
  - spec/uploaded_spec.rb
66
+ has_rdoc: true
54
67
  homepage: http://github.com/technicalpickles/capistrano-spec
55
68
  licenses: []
56
- metadata: {}
69
+
57
70
  post_install_message:
58
71
  rdoc_options: []
59
- require_paths:
72
+
73
+ require_paths:
60
74
  - lib
61
- required_ruby_version: !ruby/object:Gem::Requirement
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
66
- required_rubygems_version: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 3
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
71
93
  requirements: []
94
+
72
95
  rubyforge_project:
73
- rubygems_version: 2.0.3
96
+ rubygems_version: 1.6.2
74
97
  signing_key:
75
- specification_version: 4
98
+ specification_version: 3
76
99
  summary: Test your capistrano recipes
77
100
  test_files: []
101
+
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDU4NmVlNjQyZWFhYTZkMWIwYjMwMmQxMGI4ZGYzMGVkOWI1Y2U1Ng==
5
- data.tar.gz: !binary |-
6
- ZTM0Y2VhYTdkMWVlZTZkYTgxZDE3YWM3MzIxNWNmMjUyZmRkNWFjZQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- OGZlNjE2YzJhODU0NmZiZDFlMjg3MmMxNjdhYWZkZjM2MzMxODBlMzlhMmYz
10
- MDRjMjE3NzlhOTIyZjVkYmM3NWY4NTIwZWYxMDU3OWJiMTk3NzVkNThlNjA5
11
- ZDNmN2M5ZmVkZmU2ODdlNGNiNWY0OTVjNDU0ODQ1ZTU0ZjQ5ZDQ=
12
- data.tar.gz: !binary |-
13
- NzQzMDVhNjhiNDUyOTQ3YzM0YjM5NDdiY2E4ZDY2MWZhM2ZjMDA5NWRkMzU0
14
- NmIzZmM0YThiNTI1NDgyNzE1MWQ2YTMyYzhjY2ExZGNiMDlhOGFiMmNlM2Fj
15
- MDg1ZGY0MzUyY2IxMjFjMTEyMDkyNzk5NGExMzVhYmE4YWExYzk=