bosh-workspace 0.8.0 → 0.8.1

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: 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