Skip to content

Commit

Permalink
Make rubocop fairly happy.
Browse files Browse the repository at this point in the history
* Fixed most issues apart from parameter name length and number of
arguments
* Made Gemfile to use groups

[#157735891]

Signed-off-by: Iain Sproat <[email protected]>
  • Loading branch information
Mark James Hender authored and iainsproat committed May 22, 2018
1 parent abe0de3 commit 50aeee8
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 55 deletions.
7 changes: 5 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@

source 'https://rubygems.org'

gem 'bosh-template'
gem 'rspec'
group :test do
gem 'bosh-template'
gem 'rspec'
gem 'rubocop'
end
18 changes: 17 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
GEM
remote: https://rubygems.org/
specs:
ast (2.4.0)
bosh-template (2.0.0)
semi_semantic (~> 1.2.0)
diff-lcs (1.3)
parallel (1.12.1)
parser (2.5.1.0)
ast (~> 2.4.0)
powerpack (0.1.1)
rainbow (3.0.0)
rspec (3.7.0)
rspec-core (~> 3.7.0)
rspec-expectations (~> 3.7.0)
Expand All @@ -17,14 +23,24 @@ GEM
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.7.0)
rspec-support (3.7.0)
rubocop (0.56.0)
parallel (~> 1.10)
parser (>= 2.5)
powerpack (~> 0.1)
rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.9.0)
semi_semantic (1.2.0)
unicode-display_width (1.3.2)

PLATFORMS
ruby

DEPENDENCIES
bosh-template
rspec
rubocop

BUNDLED WITH
1.15.4
1.16.1
12 changes: 6 additions & 6 deletions spec/cloud_provider_ini_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,22 +81,22 @@

context 'password has a special character #' do
it 'has a special character in the rendered template' do
vsphere_config['password'] = 'foo#bar'
expect(rendered_template).to include("password=\"foo#bar\"")
vsphere_config['password'] = 'foo#bar'
expect(rendered_template).to include('password="foo#bar"')
end
end

context 'password has a special character "' do
it 'has a special character in the rendered template' do
vsphere_config['password'] = 'foo"bar'
expect(rendered_template).to include("password=\"foo\\\"bar\"")
vsphere_config['password'] = 'foo"bar'
expect(rendered_template).to include('password="foo\\"bar"')
end
end

context 'password has multiple special characters' do
it 'has a special character in the rendered template' do
vsphere_config['password'] = %(x123#$%^&*')
expect(rendered_template).to include("password=\"x123#\$%^&*'")
vsphere_config['password'] = %(x123#$%^&*')
expect(rendered_template).to include("password=\"x123#\$%^&*'")
end
end
end
Expand Down
51 changes: 24 additions & 27 deletions spec/kube_proxy_ctl_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,15 @@
require 'open3'

def run_get_hostname_override(rendered_contents, executable_path)
File.open(executable_path, 'w', 0777) do |f|
File.open(executable_path, 'w', 0o777) do |f|
f.write(rendered_contents)
end

# exercise bash function by first changing path for any necessary executables to our mocks
cmd = 'PATH=%s:%s /bin/bash -c "source %s && get_hostname_override"' % [
File.dirname(executable_path),
ENV['PATH'],
executable_path
]
cmd = format('PATH=%<dirname>s:%<env_path>s /bin/bash -c "source %<exe>s && get_hostname_override"',
dirname: File.dirname(executable_path), env_path: ENV['PATH'], exe: executable_path)
# capturing stderr (ignored) prevents expected warnings from showing up in test console
result, _, _ = Open3.capture3(cmd)
result, = Open3.capture3(cmd)
result
end

Expand All @@ -29,24 +26,22 @@ def run_get_hostname_override(rendered_contents, executable_path)
it 'kube-proxy config has HOSTNAMEOVERRIDE key word' do
expect(rendered_template).to include('HOSTNAMEOVERRIDE')
end

end

describe 'kube_proxy_ctl setting of hostnameOverride property' do
let(:test_context) {
let(:test_context) do
mock_dir = '/tmp/kube_proxy_mock'
FileUtils.remove_dir(mock_dir, true)
FileUtils.mkdir(mock_dir)
kube_proxy_ctl_file = mock_dir + '/kube_proxy_ctl'

test_context = {'mock_dir' => mock_dir, 'kube_proxy_ctl_file' => kube_proxy_ctl_file}
}
{ 'mock_dir' => mock_dir, 'kube_proxy_ctl_file' => kube_proxy_ctl_file }
end
after(:each) do
FileUtils.remove_dir(test_context['mock_dir'], true)
end

describe 'when cloud-provider is NOT gce' do

it 'sets hostname_override to IP address of container IP' do
expected_spec_ip = '1111'
rendered_kube_proxy_ctl = compiled_template('kube-proxy', 'bin/kube_proxy_ctl', { 'cloud-provider' => 'nonsense' }, {}, {}, 'az1', expected_spec_ip)
Expand All @@ -57,27 +52,29 @@ def run_get_hostname_override(rendered_contents, executable_path)
end

describe 'when cloud-provider is gce' do

it 'sets hostname_override to google container hostname' do
expected_google_hostname = 'foohost'

echo_mock_file = test_context['mock_dir'] + '/curl'
File.open(echo_mock_file, 'w', 0777) {|f|
File.open(echo_mock_file, 'w', 0o777) do |f|
f.write("#!/bin/bash\n")
f.write("echo #{expected_google_hostname}")
}

test_link = {'cloud-provider' => {
'instances' => [],
'properties' => {
'cloud-provider' => {
'type' => 'gce',
'gce' => {
'project-id' => 'f',
'network-name' => 'ff',
'worker-node-tag' => 'fff',
'service_key' => 'ffff'
}}}}}
end

test_link = { 'cloud-provider' => {
'instances' => [],
'properties' => {
'cloud-provider' => {
'type' => 'gce',
'gce' => {
'project-id' => 'f',
'network-name' => 'ff',
'worker-node-tag' => 'fff',
'service_key' => 'ffff'
}
}
}
} }
rendered_kube_proxy_ctl = compiled_template('kube-proxy', 'bin/kube_proxy_ctl', { 'cloud-provider' => 'gce' }, test_link)
result = run_get_hostname_override(rendered_kube_proxy_ctl, test_context['kube_proxy_ctl_file'])

Expand Down
31 changes: 13 additions & 18 deletions spec/kubelet_ctl_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,38 +65,33 @@
end

def call_get_hostname_override(rendered_kubelet_ctl, executable_path)
File.open(executable_path, 'w', 0777) do |f|
File.open(executable_path, 'w', 0o777) do |f|
f.write(rendered_kubelet_ctl)
end

# exercise bash function by changing path for any necessary executables to our mocks in /tmp/mock/*
cmd = 'PATH=%s:%s /bin/bash -c "source %s && get_hostname_override"' % [
File.dirname(executable_path),
ENV['PATH'],
executable_path
]
cmd = format('PATH=%<dirname>s:%<env_path>s /bin/bash -c "source %<exe>s && get_hostname_override"',
dirname: File.dirname(executable_path), env_path: ENV['PATH'], exe: executable_path)

# capturing stderr (ignored) prevents expected warnings from showing up in test console
result, _, _ = Open3.capture3(cmd)
result, = Open3.capture3(cmd)
result
end


describe 'kubelet_ctl setting of --hostname-override property' do
let(:test_context) {
let(:test_context) do
mock_dir = '/tmp/kubelet_mock'
FileUtils.remove_dir(mock_dir, true)
FileUtils.mkdir(mock_dir)
kubelet_ctl_file = mock_dir + '/kubelet_ctl'

test_context = {'mock_dir' => mock_dir, 'kubelet_ctl_file' => kubelet_ctl_file}
}
{ 'mock_dir' => mock_dir, 'kubelet_ctl_file' => kubelet_ctl_file }
end
after(:each) do
FileUtils.remove_dir(test_context['mock_dir'], true)
end

describe 'when cloud-provider is NOT gce' do

it 'sets hostname_override to IP address of container IP' do
expected_spec_ip = '1111'
rendered_kubelet_ctl = compiled_template('kubelet', 'bin/kubelet_ctl', { 'cloud-provider' => 'nonsense' }, {}, {}, 'az1', expected_spec_ip)
Expand All @@ -112,10 +107,10 @@ def call_get_hostname_override(rendered_kubelet_ctl, executable_path)

# mock out curl because this code path will try to use it.
echo_mock_file = test_context['mock_dir'] + '/curl'
File.open(echo_mock_file, 'w', 0777) {|f|
File.open(echo_mock_file, 'w', 0o777) do |f|
f.write("#!/bin/bash\n")
f.write("echo #{expected_google_hostname}")
}
end

manifest_properties = {
'cloud-provider' => 'gce'
Expand All @@ -128,10 +123,10 @@ def call_get_hostname_override(rendered_kubelet_ctl, executable_path)
'cloud-provider' => {
'type' => 'gce',
'gce' => {
'project-id' => 'f',
'network-name' => 'ff',
'worker-node-tag' => 'fff',
'service_key' => 'ffff'
'project-id' => 'f',
'network-name' => 'ff',
'worker-node-tag' => 'fff',
'service_key' => 'ffff'
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion spec/support/template_helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def emulate_bosh_director_merge(job_name, manifest_properties, links, network_pr
'az' => az,
'ip' => ip,
'id' => id,
'name' => instance_name,
'name' => instance_name
}.to_json
end

Expand Down

0 comments on commit 50aeee8

Please sign in to comment.