bosh-workspace 0.8.0 → 0.8.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e7ec012c1379173ecbf91bc2592edf84a13df4e
4
- data.tar.gz: f6cd1d81669866d40090afc48dfb3721873fc8da
3
+ metadata.gz: 6fb508481c57fa872d5d518608450a9c0747307a
4
+ data.tar.gz: 7fe9a93d76ec7097a551c994d683aa1d8c74811f
5
5
  SHA512:
6
- metadata.gz: 09373b79183e0bfc9c0b2ba75d9023815290331158c62f540d71a7d51bb7f0cf672138f3a50bf6fb2d9301ad02daa3a61e955c6fa563999596f84aaf57180873
7
- data.tar.gz: 936be7053d02d221496fa4133a52ace97fce10d8fbba755a3f3e782e55b18716f98d07a68f069ec6ed59d3b0e320257b7e0c6d66dbf265ee7e3b9711d88c74f8
6
+ metadata.gz: 7251cdc365208e92f87eeb8a3166a773b6fbf28de55cb1673b42d95100c6e12572859f79a1b6fe5b18afaf2deb07635a88d3a32eacd49b2ebcc293a6e5b5f290
7
+ data.tar.gz: 20096fa74e4f9c1676999cc5701bd83ae99653a3d7f6b5b26c2dc10d2ec385da0c884c4cda21f15abe66f5a69a358d24e7c61bccd54dccf74cc2fc3a13ec6817
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gemspec
5
5
 
6
6
  group :development do
7
7
  gem "guard-rspec"
8
+ gem "rubocop"
8
9
  end
9
10
 
10
11
  group :test do
data/Guardfile CHANGED
@@ -1,4 +1,4 @@
1
- guard 'rspec', spec_paths: ["spec"] do
1
+ guard :rspec, cmd: 'rspec' do
2
2
  notification :off
3
3
  watch(%r{^spec/(.+_spec)\.rb$})
4
4
  watch(%r{^lib/bosh/cli/commands/(.+)\.rb$}) { |m| "spec/commands/#{m[1]}_spec.rb" }
@@ -20,15 +20,15 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.required_ruby_version = '>= 2.0.0'
22
22
 
23
- spec.add_runtime_dependency "bosh_cli", ">= 1.1722.0"
24
- spec.add_runtime_dependency "bosh_common", ">= 1.1722.0"
23
+ spec.add_runtime_dependency "bosh_cli", ">= 1.2682.0"
24
+ spec.add_runtime_dependency "bosh_common", ">= 1.2682.0"
25
25
  spec.add_runtime_dependency "semi_semantic", "~> 1.1.0"
26
26
  spec.add_runtime_dependency "membrane", "~>0.0.2"
27
27
  spec.add_runtime_dependency "git", "~> 1.2.6"
28
28
 
29
29
  spec.add_development_dependency "bundler", "~> 1.6"
30
- spec.add_development_dependency "rspec", "~> 2.13.0"
31
- spec.add_development_dependency "rspec-fire"
30
+ spec.add_development_dependency "rspec", "~> 3.1.0"
31
+ spec.add_development_dependency "rspec-its", '~> 1.0.1'
32
32
  spec.add_development_dependency "rake"
33
33
  spec.add_development_dependency "archive-zip", "~> 0.6.0"
34
34
  end
@@ -26,7 +26,7 @@ module Bosh::Workspace
26
26
  private
27
27
 
28
28
  def release_cmd
29
- @release_cmd ||= Bosh::Cli::Command::Release.new
29
+ @release_cmd ||= Bosh::Cli::Command::Release::UploadRelease.new
30
30
  end
31
31
  end
32
32
  end
@@ -13,10 +13,12 @@ module Bosh::Workspace
13
13
  }
14
14
  end
15
15
 
16
+ STEMCELL_VERSION = /^\d+\.\d+$/
17
+
16
18
  STEMCELL_SCHEMA = Membrane::SchemaParser.parse do
17
19
  {
18
20
  "name" => String,
19
- "version" => enum(Integer, "latest"),
21
+ "version" => enum(Integer, STEMCELL_VERSION, "latest"),
20
22
  }
21
23
  end
22
24
 
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Manifests
3
- VERSION = "0.8.0"
3
+ VERSION = "0.8.1"
4
4
  end
5
5
  end
@@ -15,10 +15,12 @@ describe Bosh::Cli::Command::Prepare do
15
15
  end
16
16
 
17
17
  before do
18
- command.stub(:require_project_deployment)
19
- command.stub(:auth_required)
20
- command.stub(:project_deployment_releases).and_return(releases)
21
- command.stub(:project_deployment_stemcells).and_return(stemcells)
18
+ allow(command).to receive(:require_project_deployment)
19
+ allow(command).to receive(:auth_required)
20
+ allow(command).to receive(:project_deployment_releases)
21
+ .and_return(releases)
22
+ allow(command).to receive(:project_deployment_stemcells)
23
+ .and_return(stemcells)
22
24
  end
23
25
 
24
26
  describe "prepare_release(s/_repos)" do
@@ -26,8 +28,8 @@ describe Bosh::Cli::Command::Prepare do
26
28
  let(:stemcells) { [] }
27
29
 
28
30
  before do
29
- release.should_receive(:update_repo)
30
- command.should_receive(:release_uploaded?)
31
+ expect(release).to receive(:update_repo)
32
+ expect(command).to receive(:release_uploaded?)
31
33
  .with(release.name, release.version).and_return(release_uploaded)
32
34
  end
33
35
 
@@ -35,7 +37,7 @@ describe Bosh::Cli::Command::Prepare do
35
37
  let(:release_uploaded) { true }
36
38
 
37
39
  it "does not upload the release" do
38
- command.should_not_receive(:release_upload)
40
+ expect(command).to_not receive(:release_upload)
39
41
  command.prepare
40
42
  end
41
43
  end
@@ -44,7 +46,7 @@ describe Bosh::Cli::Command::Prepare do
44
46
  let(:release_uploaded) { false }
45
47
 
46
48
  it "does not upload the release" do
47
- command.should_receive(:release_upload).with(release.manifest_file)
49
+ expect(command).to receive(:release_upload).with(release.manifest_file)
48
50
  command.prepare
49
51
  end
50
52
  end
@@ -55,16 +57,16 @@ describe Bosh::Cli::Command::Prepare do
55
57
  let(:stemcells) { [ stemcell ] }
56
58
 
57
59
  before do
58
- command.should_receive(:stemcell_uploaded?)
60
+ expect(command).to receive(:stemcell_uploaded?)
59
61
  .with(stemcell.name, stemcell.version).and_return(stemcell_uploaded)
60
62
  end
61
63
 
62
64
  context "stemcell uploaded" do
63
65
  let(:stemcell_uploaded) { true }
64
-
66
+
65
67
  it "does not upload the stemcell" do
66
- command.should_not_receive(:stemcell_download)
67
- command.should_not_receive(:stemcell_upload)
68
+ expect(command).to_not receive(:stemcell_download)
69
+ expect(command).to_not receive(:stemcell_upload)
68
70
  command.prepare
69
71
  end
70
72
  end
@@ -72,14 +74,17 @@ describe Bosh::Cli::Command::Prepare do
72
74
  context "stemcell not uploaded" do
73
75
  let(:stemcell_uploaded) { false }
74
76
 
75
- before { stemcell.should_receive(:downloaded?).and_return(stemcell_downloaded) }
77
+ before do
78
+ allow(stemcell).to receive(:downloaded?)
79
+ .and_return(stemcell_downloaded)
80
+ end
76
81
 
77
82
  context "stemcell downloaded" do
78
83
  let(:stemcell_downloaded) { true }
79
84
 
80
85
  it "does not upload the stemcell" do
81
- command.should_not_receive(:stemcell_download)
82
- command.should_receive(:stemcell_upload).with(stemcell.file)
86
+ expect(command).to_not receive(:stemcell_download)
87
+ expect(command).to receive(:stemcell_upload).with(stemcell.file)
83
88
  command.prepare
84
89
  end
85
90
  end
@@ -88,8 +93,8 @@ describe Bosh::Cli::Command::Prepare do
88
93
  let(:stemcell_downloaded) { false }
89
94
 
90
95
  it "does not upload the stemcell" do
91
- command.should_receive(:stemcell_download).with(stemcell.file_name)
92
- command.should_receive(:stemcell_upload).with(stemcell.file)
96
+ expect(command).to receive(:stemcell_download).with(stemcell.file_name)
97
+ expect(command).to receive(:stemcell_upload).with(stemcell.file)
93
98
  command.prepare
94
99
  end
95
100
  end
@@ -12,7 +12,7 @@ describe Bosh::Cli::Command::ProjectDeployment do
12
12
  setup_home_dir
13
13
  command.add_option(:config, home_file(".bosh_config"))
14
14
  command.add_option(:non_interactive, true)
15
- deployment_cmd.stub(:add_option)
15
+ allow(deployment_cmd).to receive(:add_option)
16
16
  end
17
17
 
18
18
  describe "#deployment" do
@@ -21,7 +21,7 @@ describe Bosh::Cli::Command::ProjectDeployment do
21
21
  let(:filename) { "foo" }
22
22
 
23
23
  before do
24
- Bosh::Cli::Command::Deployment.should_receive(:new)
24
+ expect(Bosh::Cli::Command::Deployment).to receive(:new)
25
25
  .and_return(deployment_cmd)
26
26
  end
27
27
 
@@ -30,18 +30,19 @@ describe Bosh::Cli::Command::ProjectDeployment do
30
30
  let(:merged_file) { ".manifests/foo.yml" }
31
31
 
32
32
  it "sets filename to merged file" do
33
- command.should_receive(:find_deployment).with(filename)
33
+ expect(command).to receive(:find_deployment).with(filename)
34
34
  .and_return(deployment)
35
- command.should_receive(:project_deployment_file?).with(deployment)
35
+ expect(command).to receive(:project_deployment_file?).with(deployment)
36
36
  .and_return(true)
37
- command.should_receive(:project_deployment=).with(deployment)
38
- command.should_receive(:validate_project_deployment)
39
- File.should_receive(:exists?).with(merged_file).and_return(false)
40
- command.should_receive(:create_placeholder_deployment)
41
- command.should_receive(:project_deployment)
37
+ expect(command).to receive(:project_deployment=).with(deployment)
38
+ expect(command).to receive(:validate_project_deployment)
39
+ expect(File).to receive(:exists?).with(merged_file).and_return(false)
40
+ expect(command).to receive(:create_placeholder_deployment)
41
+ expect(command).to receive(:project_deployment)
42
42
  .and_return(project_deployment)
43
- project_deployment.should_receive(:merged_file).and_return(merged_file)
44
- deployment_cmd.should_receive(:set_current).with(merged_file)
43
+ expect(project_deployment).to receive(:merged_file)
44
+ .and_return(merged_file)
45
+ expect(deployment_cmd).to receive(:set_current).with(merged_file)
45
46
  subject
46
47
  end
47
48
  end
@@ -50,7 +51,7 @@ describe Bosh::Cli::Command::ProjectDeployment do
50
51
  let(:filename) { nil }
51
52
 
52
53
  it "returns current deployment" do
53
- deployment_cmd.should_receive(:set_current).with(filename)
54
+ expect(deployment_cmd).to receive(:set_current).with(filename)
54
55
  subject
55
56
  end
56
57
  end
@@ -60,19 +61,19 @@ describe Bosh::Cli::Command::ProjectDeployment do
60
61
  subject { command.deploy }
61
62
 
62
63
  before do
63
- Bosh::Cli::Command::Deployment.should_receive(:new)
64
+ expect(Bosh::Cli::Command::Deployment).to receive(:new)
64
65
  .and_return(deployment_cmd)
65
- command.should_receive(:project_deployment?)
66
+ expect(command).to receive(:project_deployment?)
66
67
  .and_return(is_project_deployment)
67
- deployment_cmd.should_receive(:perform)
68
+ expect(deployment_cmd).to receive(:perform)
68
69
  end
69
70
 
70
71
  context "with project deployment" do
71
72
  let(:is_project_deployment) { true }
72
73
 
73
74
  it "requires project deployment" do
74
- command.should_receive(:require_project_deployment)
75
- command.should_receive(:build_project_deployment)
75
+ expect(command).to receive(:require_project_deployment)
76
+ expect(command).to receive(:build_project_deployment)
76
77
  subject
77
78
  end
78
79
  end
@@ -28,17 +28,17 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
28
28
  context "deployment" do
29
29
  context "without associated project deployment" do
30
30
  let(:deployment_path) { "deployments/bar.yml" }
31
- it { should be_false }
31
+ it { should be false }
32
32
  end
33
33
  context "with associated project deployment" do
34
34
  let(:deployment_path) { ".manifests/foo.yml" }
35
- it { should be_true }
35
+ it { should be true }
36
36
  end
37
37
  end
38
38
 
39
39
  context "project deployment" do
40
40
  let(:deployment_path) { "deployments/foo.yml" }
41
- it { should be_true }
41
+ it { should be true }
42
42
  end
43
43
  end
44
44
 
@@ -48,7 +48,7 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
48
48
  let(:deployment_path) { "deployments/foo.yml" }
49
49
 
50
50
  before do
51
- Bosh::Workspace::ProjectDeployment.should_receive(:new)
51
+ expect(Bosh::Workspace::ProjectDeployment).to receive(:new)
52
52
  .with(deployment).and_return(project_deployment)
53
53
  end
54
54
 
@@ -70,12 +70,12 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
70
70
 
71
71
  context "project deployment" do
72
72
  let(:content) { { "name" => "foo", "templates" => ["bar.yml"] } }
73
- it { should be_true }
73
+ it { should be true }
74
74
  end
75
75
 
76
76
  context "normal deployment" do
77
77
  let(:content) { { "name" => "foo" } }
78
- it { should be_false }
78
+ it { should be false }
79
79
  end
80
80
  end
81
81
 
@@ -83,14 +83,14 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
83
83
  let(:project_deployment_helper) { ProjectDeploymentHelperTester.new(director, deployment) }
84
84
 
85
85
  before do
86
- subject.should_receive(:project_deployment?)
86
+ expect(subject).to receive(:project_deployment?)
87
87
  .and_return(:is_project_deployment)
88
88
  end
89
89
 
90
90
  context "project deployment" do
91
91
  let(:is_project_deployment) { true }
92
92
  it "validates & builds" do
93
- subject.should_receive(:validate_project_deployment)
93
+ expect(subject).to receive(:validate_project_deployment)
94
94
  subject.require_project_deployment
95
95
  end
96
96
  end
@@ -113,21 +113,21 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
113
113
  let(:content) { "director_uuid #{uuid}" }
114
114
 
115
115
  it "creates placeholder deployment" do
116
- project_deployment_helper.should_receive(:resolve_director_uuid)
117
- project_deployment.should_receive(:merged_file).and_return(merged_file)
118
- project_deployment.should_receive(:file).and_return(deployment)
119
- project_deployment.should_receive(:director_uuid).and_return(uuid)
120
- File.should_receive(:open).with(merged_file, "w").and_yield(file)
121
- file.should_receive(:write).with(/#{uuid}\s# Don't edit/)
116
+ expect(project_deployment_helper).to receive(:resolve_director_uuid)
117
+ expect(project_deployment).to receive(:merged_file).and_return(merged_file)
118
+ expect(project_deployment).to receive(:file).and_return(deployment)
119
+ expect(project_deployment).to receive(:director_uuid).and_return(uuid)
120
+ expect(File).to receive(:open).with(merged_file, "w").and_yield(file)
121
+ expect(file).to receive(:write).with(/#{uuid}\s# Don't edit/)
122
122
  subject
123
123
  end
124
124
  end
125
125
 
126
126
  describe "#validate_project_deployment" do
127
127
  it "raises an error" do
128
- project_deployment.should_receive(:valid?).and_return(false)
129
- project_deployment.should_receive(:errors).and_return(["foo"])
130
- project_deployment.should_receive(:file).and_return(["foo.yml"])
128
+ expect(project_deployment).to receive(:valid?).and_return(false)
129
+ expect(project_deployment).to receive(:errors).and_return(["foo"])
130
+ expect(project_deployment).to receive(:file).and_return(["foo.yml"])
131
131
  expect { subject.validate_project_deployment }.to raise_error(/foo/)
132
132
  end
133
133
  end
@@ -138,14 +138,17 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
138
138
  let(:merged_file) { "foo/bar" }
139
139
 
140
140
  it "builds project deployment manifest" do
141
- project_deployment_helper.should_receive(:resolve_director_uuid)
142
- project_deployment_helper.should_receive(:work_dir).and_return(work_dir)
143
- project_deployment.should_receive(:domain_name).and_return(domain_name)
144
- project_deployment.should_receive(:merged_file).and_return(merged_file)
145
-
146
- Bosh::Workspace::ManifestBuilder.should_receive(:build)
141
+ expect(project_deployment_helper).to receive(:resolve_director_uuid)
142
+ expect(project_deployment_helper).to receive(:work_dir)
143
+ .and_return(work_dir)
144
+ expect(project_deployment).to receive(:domain_name)
145
+ .and_return(domain_name)
146
+ expect(project_deployment).to receive(:merged_file)
147
+ .and_return(merged_file)
148
+
149
+ expect(Bosh::Workspace::ManifestBuilder).to receive(:build)
147
150
  .with(project_deployment, work_dir)
148
- Bosh::Workspace::DnsHelper.should_receive(:transform)
151
+ expect(Bosh::Workspace::DnsHelper).to receive(:transform)
149
152
  .with(merged_file, domain_name)
150
153
 
151
154
  subject
@@ -158,8 +161,8 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
158
161
  let(:current_uuid) { "current-uuid" }
159
162
 
160
163
  before do
161
- project_deployment.should_receive(:director_uuid).and_return(uuid)
162
- director.stub(:get_status).and_return(status)
164
+ expect(project_deployment).to receive(:director_uuid).and_return(uuid)
165
+ allow(director).to receive(:get_status).and_return(status)
163
166
  end
164
167
 
165
168
  context "using the warden cpi" do
@@ -168,7 +171,7 @@ describe Bosh::Workspace::ProjectDeploymentHelper do
168
171
  context "with director uuid current" do
169
172
  let(:uuid) { "current" }
170
173
  it "builds manifest" do
171
- project_deployment.should_receive(:director_uuid=).with(current_uuid)
174
+ expect(project_deployment).to receive(:director_uuid=).with(current_uuid)
172
175
  subject
173
176
  end
174
177
  end
@@ -16,14 +16,20 @@ describe Bosh::Workspace::ReleaseHelper do
16
16
  let(:work_dir) { asset_dir("manifests-repo") }
17
17
 
18
18
  describe "#release_upload" do
19
- let(:release_cmd) { instance_double("Bosh::Cli::Command::Release") }
20
- before { Bosh::Cli::Command::Release.stub(:new).and_return(release_cmd) }
21
-
19
+ let(:release_cmd) do
20
+ instance_double "Bosh::Cli::Command::Release::UploadRelease"
21
+ end
22
+
23
+ before do
24
+ allow(Bosh::Cli::Command::Release::UploadRelease).to receive(:new)
25
+ .and_return(release_cmd)
26
+ end
27
+
22
28
  let(:manifest_file) { "foo-1.yml." }
23
29
  subject { release_helper.release_upload(manifest_file) }
24
-
30
+
25
31
  it "uploads release" do
26
- release_cmd.should_receive(:upload).with(manifest_file)
32
+ expect(release_cmd).to receive(:upload).with(manifest_file)
27
33
  subject
28
34
  end
29
35
  end
@@ -31,24 +37,30 @@ describe Bosh::Workspace::ReleaseHelper do
31
37
  describe "#release_uploaded?" do
32
38
  let(:releases) { { "versions" => %w(1 2 3) } }
33
39
  subject { release_helper.release_uploaded?("foo", version) }
34
- before { director.should_receive(:get_release).with("foo").and_return(releases) }
40
+ before do
41
+ expect(director).to receive(:get_release)
42
+ .with("foo").and_return(releases)
43
+ end
35
44
 
36
45
  context "release exists" do
37
46
  let(:version) { 2 }
38
- it { should be_true }
47
+ it { should be true }
39
48
  end
40
49
 
41
50
  context "release not found" do
42
51
  let(:version) { "8" }
43
- it { should be_false }
52
+ it { should be false }
44
53
  end
45
54
  end
46
-
55
+
47
56
  describe "#release_dir" do
48
57
  let(:releases_dir) { File.join(work_dir, ".releases") }
49
58
  subject { release_helper.releases_dir }
50
-
51
- before { FileUtils.should_receive(:mkdir_p).once.with(releases_dir).and_return([releases_dir]) }
59
+
60
+ before do
61
+ expect(FileUtils).to receive(:mkdir_p).once
62
+ .with(releases_dir).and_return([releases_dir])
63
+ end
52
64
 
53
65
  it { should eq releases_dir }
54
66
 
@@ -64,10 +76,14 @@ describe Bosh::Workspace::ReleaseHelper do
64
76
  let(:release_data) { { name: "foo" } }
65
77
  let(:releases) { [release_data, release_data] }
66
78
 
67
- before { release_helper.stub_chain("project_deployment.releases").and_return(releases) }
79
+ before do
80
+ expect(release_helper)
81
+ .to receive_message_chain("project_deployment.releases")
82
+ .and_return(releases)
83
+ end
68
84
 
69
85
  it "inits releases once" do
70
- Bosh::Workspace::Release.should_receive(:new).twice
86
+ expect(Bosh::Workspace::Release).to receive(:new).twice
71
87
  .with(release_data, /\/.releases/).and_return(release)
72
88
  subject
73
89
  expect(subject).to eq [release, release]
@@ -16,7 +16,7 @@ describe Bosh::Workspace::SpiffHelper do
16
16
  end
17
17
 
18
18
  before do
19
- subject.should_receive(:sh).and_yield(result)
19
+ expect(subject).to receive(:sh).and_yield(result)
20
20
  end
21
21
 
22
22
  context "spiff not in path" do
@@ -34,7 +34,7 @@ describe Bosh::Workspace::SpiffHelper do
34
34
  let(:result) { Bosh::Exec::Result.new("spiff", "spiff error", 1, false) }
35
35
 
36
36
  it "raises an error" do
37
- subject.should_receive(:say).with(/Command failed/)
37
+ expect(subject).to receive(:say).with(/Command failed/)
38
38
  expect{ subject.spiff_merge templates, target_file }
39
39
  .to raise_error /spiff error/
40
40
  end
@@ -46,8 +46,8 @@ describe Bosh::Workspace::SpiffHelper do
46
46
  let(:result) { Bosh::Exec::Result.new("spiff", output, 0, false) }
47
47
 
48
48
  it "merges manifests" do
49
- File.should_receive(:open).with(target_file, 'w').and_yield(file)
50
- file.should_receive(:write).with(output)
49
+ expect(File).to receive(:open).with(target_file, 'w').and_yield(file)
50
+ expect(file).to receive(:write).with(output)
51
51
  subject.spiff_merge templates, target_file
52
52
  end
53
53
  end
@@ -17,15 +17,18 @@ describe Bosh::Workspace::StemcellHelper do
17
17
 
18
18
  context "with stemcell command" do
19
19
  let(:stemcell_cmd) { instance_double("Bosh::Cli::Command::Stemcell") }
20
- before { Bosh::Cli::Command::Stemcell.stub(:new).and_return(stemcell_cmd) }
20
+ before do
21
+ allow(Bosh::Cli::Command::Stemcell)
22
+ .to receive(:new).and_return(stemcell_cmd)
23
+ end
21
24
 
22
25
  describe "#stemcell_download" do
23
26
  let(:name) { "foo" }
24
27
  subject { stemcell_helper.stemcell_download(name) }
25
-
28
+
26
29
  it "downloads stemcell" do
27
- Dir.should_receive(:chdir).and_yield
28
- stemcell_cmd.should_receive(:download_public).with(name)
30
+ expect(Dir).to receive(:chdir).and_yield
31
+ expect(stemcell_cmd).to receive(:download_public).with(name)
29
32
  subject
30
33
  end
31
34
  end
@@ -33,9 +36,9 @@ describe Bosh::Workspace::StemcellHelper do
33
36
  describe "#stemcell_upload" do
34
37
  let(:file) { "foo.tgz" }
35
38
  subject { stemcell_helper.stemcell_upload(file) }
36
-
39
+
37
40
  it "uploads stemcell" do
38
- stemcell_cmd.should_receive(:upload).with(file)
41
+ expect(stemcell_cmd).to receive(:upload).with(file)
39
42
  subject
40
43
  end
41
44
  end
@@ -44,24 +47,29 @@ describe Bosh::Workspace::StemcellHelper do
44
47
  describe "#stemcell_uploaded?" do
45
48
  let(:stemcells) { [{ "name" => "foo", "version" => "1" }] }
46
49
  subject { stemcell_helper.stemcell_uploaded?(name, 1) }
47
- before { director.should_receive(:list_stemcells).and_return(stemcells) }
50
+ before do
51
+ expect(director).to receive(:list_stemcells).and_return(stemcells)
52
+ end
48
53
 
49
54
  context "stemcell exists" do
50
55
  let(:name) { "foo" }
51
- it { should be_true }
56
+ it { should be true }
52
57
  end
53
58
 
54
59
  context "stemcell not found" do
55
60
  let(:name) { "bar" }
56
- it { should be_false }
61
+ it { should be false }
57
62
  end
58
63
  end
59
-
64
+
60
65
  describe "#stemcell_dir" do
61
66
  let(:stemcells_dir) { File.join(work_dir, ".stemcells") }
62
67
  subject { stemcell_helper.stemcells_dir }
63
-
64
- before { FileUtils.should_receive(:mkdir_p).once.with(stemcells_dir).and_return([stemcells_dir]) }
68
+
69
+ before do
70
+ expect(FileUtils).to receive(:mkdir_p).once.with(stemcells_dir)
71
+ .and_return([stemcells_dir])
72
+ end
65
73
 
66
74
  it { should eq stemcells_dir }
67
75
 
@@ -77,10 +85,14 @@ describe Bosh::Workspace::StemcellHelper do
77
85
  let(:stemcell_data) { { name: "foo" } }
78
86
  let(:stemcells) { [stemcell_data, stemcell_data] }
79
87
 
80
- before { stemcell_helper.stub_chain("project_deployment.stemcells").and_return(stemcells) }
88
+ before do
89
+ allow(stemcell_helper)
90
+ .to receive_message_chain("project_deployment.stemcells")
91
+ .and_return(stemcells)
92
+ end
81
93
 
82
94
  it "inits stemcells once" do
83
- Bosh::Workspace::Stemcell.should_receive(:new).twice
95
+ expect(Bosh::Workspace::Stemcell).to receive(:new).twice
84
96
  .with(stemcell_data, /\/.stemcells/).and_return(stemcell)
85
97
  subject
86
98
  expect(subject).to eq [stemcell, stemcell]
@@ -12,9 +12,9 @@ describe Bosh::Workspace::ManifestBuilder do
12
12
  instance_double("Bosh::Workspace::ManifestBuilder") }
13
13
 
14
14
  it "creates builder and merges templates" do
15
- Bosh::Workspace::ManifestBuilder.should_receive(:new)
15
+ expect(Bosh::Workspace::ManifestBuilder).to receive(:new)
16
16
  .with(project_deployment, work_dir).and_return(manifest_builder)
17
- manifest_builder.should_receive(:merge_templates)
17
+ expect(manifest_builder).to receive(:merge_templates)
18
18
  subject
19
19
  end
20
20
  end
@@ -23,7 +23,8 @@ describe Bosh::Workspace::ManifestBuilder do
23
23
  subject { Bosh::Workspace::ManifestBuilder.new project_deployment, work_dir }
24
24
 
25
25
  before do
26
- File.stub(:exists?).with(/templates\//).and_return(template_exists)
26
+ allow(File).to receive(:exists?).with(/templates\//)
27
+ .and_return(template_exists)
27
28
  end
28
29
 
29
30
  context "missing template" do
@@ -38,21 +39,22 @@ describe Bosh::Workspace::ManifestBuilder do
38
39
  let(:dir_exists) { true }
39
40
 
40
41
  before do
41
- File.stub(:exists?).with(/\.stubs/).and_return(dir_exists)
42
- Bosh::Workspace::StubFile.should_receive(:create).with(/\.stubs\/.+yml/, project_deployment)
42
+ allow(File).to receive(:exists?).with(/\.stubs/).and_return(dir_exists)
43
+ expect(Bosh::Workspace::StubFile).to receive(:create)
44
+ .with(/\.stubs\/.+yml/, project_deployment)
43
45
  end
44
46
 
45
47
  context "no hidden dirs" do
46
48
  let(:dir_exists) { false }
47
49
  it "creates hidden dirs" do
48
- subject.stub(:spiff_merge)
49
- Dir.should_receive(:mkdir).with(/.stubs/)
50
+ expect(subject).to receive(:spiff_merge)
51
+ expect(Dir).to receive(:mkdir).with(/.stubs/)
50
52
  subject.merge_templates
51
53
  end
52
54
  end
53
55
 
54
56
  it "generates manifest with spiff" do
55
- subject.should_receive(:spiff_merge) do |args|
57
+ expect(subject).to receive(:spiff_merge) do |args|
56
58
  if args.is_a?(Array)
57
59
  expect(args.first).to match(/\/templates\/.+yml/)
58
60
  expect(args.last).to match(/\.stubs\/.+yml/)
@@ -123,6 +123,13 @@ describe Bosh::Workspace::ProjectDeployment do
123
123
  it { should_not match(/version/i) }
124
124
  end
125
125
 
126
+ context "patch version" do
127
+ let(:missing) { "name" }
128
+ let(:stemcell_version) { "2719.1" }
129
+ it { should match(/name.*missing/i) }
130
+ it { should_not match(/version/i) }
131
+ end
132
+
126
133
  context "invalid version" do
127
134
  let(:missing) { "name" }
128
135
  let(:stemcell_version) { "foo" }
@@ -139,7 +146,7 @@ describe Bosh::Workspace::ProjectDeployment do
139
146
 
140
147
  describe "attr readers" do
141
148
  let(:director_uuid) { uuid }
142
- %w(name director_uuid templates releases stemcells meta).each do |attr|
149
+ %w(name director_uuid templates releases stemcells meta).each do |attr|
143
150
  its(attr.to_sym) { should eq eval(attr) }
144
151
  end
145
152
  end
@@ -147,7 +154,7 @@ describe Bosh::Workspace::ProjectDeployment do
147
154
  describe "#merged_file" do
148
155
  it "creates parent directory" do
149
156
  dir = File.dirname(subject.merged_file)
150
- expect(File.directory?(dir)).to be_true
157
+ expect(File.directory?(dir)).to be true
151
158
  end
152
159
 
153
160
  it "retruns merged file" do
@@ -88,8 +88,4 @@ describe Bosh::Workspace::Release do
88
88
  after do
89
89
  FileUtils.rm_r releases_dir
90
90
  end
91
-
92
- after(:all) do
93
- FileUtils.rm_r repo
94
- end
95
91
  end
@@ -10,7 +10,7 @@ Bundler.setup(:default, :test)
10
10
  $:.unshift(File.expand_path("../../lib", __FILE__))
11
11
 
12
12
  require "rspec/core"
13
- require 'rspec/fire'
13
+ require "rspec/its"
14
14
 
15
15
  require "tmpdir"
16
16
  require "archive/zip"
@@ -21,8 +21,7 @@ require "cli"
21
21
  require "bosh/workspace"
22
22
 
23
23
  RSpec.configure do |config|
24
- config.include(RSpec::Fire)
25
-
24
+ config.raise_errors_for_deprecations!
26
25
  config.expect_with :rspec do |c|
27
26
  c.syntax = :expect
28
27
  end
@@ -7,22 +7,24 @@ describe Bosh::Workspace::Stemcell do
7
7
  let(:version) { 3 }
8
8
 
9
9
  describe "#name_version" do
10
- its(:name_version) { should eq "#{name}/#{version}" }
10
+ its(:name_version) { is_expected.to eq "#{name}/#{version}" }
11
11
  end
12
12
 
13
13
  describe "#file_name" do
14
- its(:file_name) { should eq file_name }
14
+ its(:file_name) { is_expected.to eq file_name }
15
15
  end
16
16
 
17
17
  describe "#downloaded?" do
18
- before { File.should_receive(:exists?).with(/\/#{file_name}/).and_return(true) }
19
- its(:downloaded?) { should eq true }
18
+ before do
19
+ expect(File).to receive(:exists?).with(/\/#{file_name}/).and_return(true)
20
+ end
21
+ its(:downloaded?) { is_expected.to eq true }
20
22
  end
21
23
 
22
24
  describe "attr readers" do
23
25
  let(:file) { "#{stemcells_dir}/#{file_name}" }
24
26
  %w(name version file).each do |attr|
25
- its(attr.to_sym) { should eq eval(attr) }
27
+ its(attr.to_sym) { is_expected.to eq eval(attr) }
26
28
  end
27
29
  end
28
30
  end
@@ -20,16 +20,16 @@ describe Bosh::Workspace::StubFile do
20
20
  subject { Bosh::Workspace::StubFile.create(path, project_deployment) }
21
21
 
22
22
  it "calls write" do
23
- Bosh::Workspace::StubFile.should_receive(:new)
23
+ expect(Bosh::Workspace::StubFile).to receive(:new)
24
24
  .with(project_deployment).and_return(stub_file)
25
- stub_file.should_receive(:write).with(path)
25
+ expect(stub_file).to receive(:write).with(path)
26
26
  subject
27
27
  end
28
28
  end
29
29
 
30
30
  describe "#write" do
31
31
  it "writes yaml content" do
32
- IO.should_receive(:write).with(path, /---\n/)
32
+ expect(IO).to receive(:write).with(path, /---\n/)
33
33
  subject.write(path)
34
34
  end
35
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh-workspace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruben Koster
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-30 00:00:00.000000000 Z
11
+ date: 2014-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bosh_cli
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1722.0
19
+ version: 1.2682.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1722.0
26
+ version: 1.2682.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bosh_common
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1722.0
33
+ version: 1.2682.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1722.0
40
+ version: 1.2682.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: semi_semantic
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: 2.13.0
103
+ version: 3.1.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: 2.13.0
110
+ version: 3.1.0
111
111
  - !ruby/object:Gem::Dependency
112
- name: rspec-fire
112
+ name: rspec-its
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 1.0.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 1.0.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
127
  requirement: !ruby/object:Gem::Requirement