Update specs to be rubocop compliant

- Add rubocop.yml in specs/
- Add spec rubocop test to Strainerfile
- Update specs to comply with rubocop

Change-Id: I7f2de5cd4bd9307485ec7db134f31f5415c84131
Addresses: blueprint rubocop-for-metering
This commit is contained in:
Christopher H. Laco 2014-01-16 11:02:25 -06:00
parent 513864015c
commit 9b60236ca1
14 changed files with 191 additions and 171 deletions

View File

@ -2,6 +2,7 @@
rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/Gemfile $SANDBOX/$COOKBOOK/metadata.rb --config $SANDBOX/$COOKBOOK/.rubocop.yml
rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/attributes/ --config $SANDBOX/$COOKBOOK/attributes/.rubocop.yml
rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/recipes/ --config $SANDBOX/$COOKBOOK/recipes/.rubocop.yml
rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/spec/ --config $SANDBOX/$COOKBOOK/spec/.rubocop.yml
# rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK
knife test: bundle exec knife cookbook test $COOKBOOK
foodcritic: bundle exec foodcritic -f any -t ~FC003 -t ~FC023 $SANDBOX/$COOKBOOK

7
spec/.rubocop.yml Normal file
View File

@ -0,0 +1,7 @@
# embedded attributes make for long lines
LineLength:
Enabled: false
# Allow small arrays before forcing %w or %W
WordArray:
MinSize: 3

View File

@ -1,19 +1,20 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::agent-central" do
describe 'openstack-metering::agent-central' do
before { metering_stubs }
describe "opensuse" do
describe 'opensuse' do
before do
@chef_run = ::ChefSpec::Runner.new ::OPENSUSE_OPTS
@chef_run.converge "openstack-metering::agent-central"
@chef_run.converge 'openstack-metering::agent-central'
end
it "installs the agent-central package" do
expect(@chef_run).to install_package "openstack-ceilometer-agent-central"
it 'installs the agent-central package' do
expect(@chef_run).to install_package 'openstack-ceilometer-agent-central'
end
it "starts the agent-central service" do
expect(@chef_run).to start_service "openstack-ceilometer-agent-central"
it 'starts the agent-central service' do
expect(@chef_run).to start_service 'openstack-ceilometer-agent-central'
end
end
end

View File

@ -1,21 +1,22 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::agent-central" do
describe 'openstack-metering::agent-central' do
before { metering_stubs }
describe "ubuntu" do
describe 'ubuntu' do
before do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge "openstack-metering::agent-central"
@chef_run.converge 'openstack-metering::agent-central'
end
expect_runs_common_recipe
it "installs the agent-central package" do
expect(@chef_run).to install_package "ceilometer-agent-central"
it 'installs the agent-central package' do
expect(@chef_run).to install_package 'ceilometer-agent-central'
end
it "starts agent-central service" do
expect(@chef_run).to start_service("ceilometer-agent-central")
it 'starts agent-central service' do
expect(@chef_run).to start_service('ceilometer-agent-central')
end
end
end

View File

@ -1,19 +1,20 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::agent-compute" do
describe 'openstack-metering::agent-compute' do
before { metering_stubs }
describe "opensuse" do
describe 'opensuse' do
before do
@chef_run = ::ChefSpec::Runner.new ::OPENSUSE_OPTS
@chef_run.converge "openstack-metering::agent-compute"
@chef_run.converge 'openstack-metering::agent-compute'
end
it "installs the agent-compute package" do
expect(@chef_run).to install_package "openstack-ceilometer-agent-compute"
it 'installs the agent-compute package' do
expect(@chef_run).to install_package 'openstack-ceilometer-agent-compute'
end
it "starts the agent-compute service" do
expect(@chef_run).to start_service "openstack-ceilometer-agent-compute"
it 'starts the agent-compute service' do
expect(@chef_run).to start_service 'openstack-ceilometer-agent-compute'
end
end
end

View File

@ -1,21 +1,22 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::agent-compute" do
describe 'openstack-metering::agent-compute' do
before { metering_stubs }
describe "ubuntu" do
describe 'ubuntu' do
before do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge "openstack-metering::agent-compute"
@chef_run.converge 'openstack-metering::agent-compute'
end
expect_runs_common_recipe
it "installs the agent-compute package" do
expect(@chef_run).to install_package "ceilometer-agent-compute"
it 'installs the agent-compute package' do
expect(@chef_run).to install_package 'ceilometer-agent-compute'
end
it "starts ceilometer-agent-compute service" do
expect(@chef_run).to start_service("ceilometer-agent-compute")
it 'starts ceilometer-agent-compute service' do
expect(@chef_run).to start_service('ceilometer-agent-compute')
end
end
end

View File

@ -1,19 +1,20 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::api" do
describe 'openstack-metering::api' do
before { metering_stubs }
describe "opensuse" do
describe 'opensuse' do
before do
@chef_run = ::ChefSpec::Runner.new ::OPENSUSE_OPTS
@chef_run.converge "openstack-metering::api"
@chef_run.converge 'openstack-metering::api'
end
it "installs the api package" do
expect(@chef_run).to install_package("openstack-ceilometer-api")
it 'installs the api package' do
expect(@chef_run).to install_package('openstack-ceilometer-api')
end
it "starts api service" do
expect(@chef_run).to start_service("openstack-ceilometer-api")
it 'starts api service' do
expect(@chef_run).to start_service('openstack-ceilometer-api')
end
end
end

View File

@ -1,29 +1,30 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::api" do
describe 'openstack-metering::api' do
before { metering_stubs }
describe "ubuntu" do
describe 'ubuntu' do
before do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge "openstack-metering::api"
@chef_run.converge 'openstack-metering::api'
end
expect_runs_common_recipe
it "creates the /var/cache/ceilometer directory" do
expect(@chef_run).to create_directory("/var/cache/ceilometer").with(
user: "ceilometer",
group: "ceilometer",
it 'creates the /var/cache/ceilometer directory' do
expect(@chef_run).to create_directory('/var/cache/ceilometer').with(
user: 'ceilometer',
group: 'ceilometer',
mode: 0700
)
end
it "starts api service" do
expect(@chef_run).to start_service("ceilometer-api")
it 'starts api service' do
expect(@chef_run).to start_service('ceilometer-api')
end
it "starts api service" do
expect(@chef_run).to start_service("ceilometer-api")
it 'starts api service' do
expect(@chef_run).to start_service('ceilometer-api')
end
end
end

View File

@ -1,19 +1,20 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::collector" do
describe 'openstack-metering::collector' do
before { metering_stubs }
describe "opensuse" do
describe 'opensuse' do
before do
@chef_run = ::ChefSpec::Runner.new ::OPENSUSE_OPTS
@chef_run.converge "openstack-metering::collector"
@chef_run.converge 'openstack-metering::collector'
end
it "installs the collector package" do
expect(@chef_run).to install_package "openstack-ceilometer-collector"
it 'installs the collector package' do
expect(@chef_run).to install_package 'openstack-ceilometer-collector'
end
it "starts the collector service" do
expect(@chef_run).to start_service "openstack-ceilometer-collector"
it 'starts the collector service' do
expect(@chef_run).to start_service 'openstack-ceilometer-collector'
end
end
end

View File

@ -1,26 +1,27 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::collector" do
describe 'openstack-metering::collector' do
before { metering_stubs }
describe "ubuntu" do
describe 'ubuntu' do
before do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge "openstack-metering::collector"
@chef_run.converge 'openstack-metering::collector'
end
expect_runs_common_recipe
it "executes ceilometer dbsync" do
command = "ceilometer-dbsync --config-file /etc/ceilometer/ceilometer.conf"
it 'executes ceilometer dbsync' do
command = 'ceilometer-dbsync --config-file /etc/ceilometer/ceilometer.conf'
expect(@chef_run).to run_execute command
end
it "installs python-mysqldb", :A => true do
expect(@chef_run).to install_package "python-mysqldb"
it 'installs python-mysqldb', A: true do
expect(@chef_run).to install_package 'python-mysqldb'
end
it "starts collector service" do
expect(@chef_run).to start_service("ceilometer-collector")
it 'starts collector service' do
expect(@chef_run).to start_service('ceilometer-collector')
end
end
end

View File

@ -1,15 +1,16 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::common" do
describe 'openstack-metering::common' do
before { metering_stubs }
describe "opensuse" do
describe 'opensuse' do
before do
@chef_run = ::ChefSpec::Runner.new ::OPENSUSE_OPTS
@chef_run.converge "openstack-metering::common"
@chef_run.converge 'openstack-metering::common'
end
it "installs the common package" do
expect(@chef_run).to install_package "openstack-ceilometer"
it 'installs the common package' do
expect(@chef_run).to install_package 'openstack-ceilometer'
end
end
end

View File

@ -1,94 +1,94 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::common" do
describe 'openstack-metering::common' do
before { metering_stubs }
describe "ubuntu" do
describe 'ubuntu' do
before do
@chef_run = ::ChefSpec::Runner.new(::UBUNTU_OPTS) do |n|
n.set["openstack"]["metering"]["syslog"]["use"] = true
n.set['openstack']['metering']['syslog']['use'] = true
end
@chef_run.converge "openstack-metering::common"
@chef_run.converge 'openstack-metering::common'
end
it "runs logging recipe" do
expect(@chef_run).to include_recipe "openstack-common::logging"
it 'runs logging recipe' do
expect(@chef_run).to include_recipe 'openstack-common::logging'
end
it "installs the common package" do
expect(@chef_run).to install_package "ceilometer-common"
it 'installs the common package' do
expect(@chef_run).to install_package 'ceilometer-common'
end
it "creates the /etc/ceilometer directory" do
expect(@chef_run).to create_directory("/etc/ceilometer").with(
user: "ceilometer",
group: "ceilometer",
it 'creates the /etc/ceilometer directory' do
expect(@chef_run).to create_directory('/etc/ceilometer').with(
user: 'ceilometer',
group: 'ceilometer',
mode: 0750
)
end
describe "/etc/ceilometer" do
describe '/etc/ceilometer' do
before do
@filename = "/etc/ceilometer/ceilometer.conf"
@filename = '/etc/ceilometer/ceilometer.conf'
end
it "creates the file" do
it 'creates the file' do
expect(@chef_run).to create_template(@filename).with(
user: "ceilometer",
group: "ceilometer",
user: 'ceilometer',
group: 'ceilometer',
mode: 0640
)
end
context "with rabbitmq default" do
context 'with rabbitmq default' do
[/^rabbit_userid = guest$/,
/^rabbit_password = rabbit-pass$/,
/^rabbit_port = 5672$/,
/^rabbit_host = 127.0.0.1$/,
/^rabbit_virtual_host = \/$/,
/^auth_uri = http:\/\/127.0.0.1:5000\/v2.0$/,
/^auth_host = 127.0.0.1$/,
/^auth_port = 35357$/,
/^auth_protocol = http$/
/^rabbit_password = rabbit-pass$/,
/^rabbit_port = 5672$/,
/^rabbit_host = 127.0.0.1$/,
/^rabbit_virtual_host = \/$/,
%r{^auth_uri = http://127.0.0.1:5000/v2.0$},
/^auth_host = 127.0.0.1$/,
/^auth_port = 35357$/,
/^auth_protocol = http$/
].each do |content|
it "has a \#{content.source[1...-1]}\" line" do
it 'has a \#{content.source[1...-1]}\' line' do
expect(@chef_run).to render_file(@filename).with_content(content)
end
end
end
context "with qpid enabled" do
context 'with qpid enabled' do
before do
@chef_run.node.set['openstack']['metering']['mq']['service_type'] = "qpid"
@chef_run.node.set['openstack']['metering']['mq']['service_type'] = 'qpid'
end
[/^qpid_hostname=127.0.0.1$/,
/^qpid_port=5672$/,
/^qpid_username=$/,
/^qpid_password=$/,
/^qpid_sasl_mechanisms=$/,
/^qpid_reconnect=true$/,
/^qpid_reconnect_timeout=0$/,
/^qpid_reconnect_limit=0$/,
/^qpid_reconnect_interval_min=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval=0$/,
/^qpid_heartbeat=60$/,
/^qpid_protocol=tcp$/,
/^qpid_tcp_nodelay=true$/
/^qpid_port=5672$/,
/^qpid_username=$/,
/^qpid_password=$/,
/^qpid_sasl_mechanisms=$/,
/^qpid_reconnect=true$/,
/^qpid_reconnect_timeout=0$/,
/^qpid_reconnect_limit=0$/,
/^qpid_reconnect_interval_min=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval=0$/,
/^qpid_heartbeat=60$/,
/^qpid_protocol=tcp$/,
/^qpid_tcp_nodelay=true$/
].each do |content|
it "has a \#{content.source[1...-1]}\" line" do
it 'has a \#{content.source[1...-1]}\' line' do
expect(@chef_run).to render_file(@filename).with_content(content)
end
end
end
end
it "installs the /etc/ceilometer/policy.json file" do
expect(@chef_run).to create_cookbook_file("/etc/ceilometer/policy.json").with(
user: "ceilometer",
group: "ceilometer",
it 'installs the /etc/ceilometer/policy.json file' do
expect(@chef_run).to create_cookbook_file('/etc/ceilometer/policy.json').with(
user: 'ceilometer',
group: 'ceilometer',
mode: 0640
)
end

View File

@ -1,42 +1,43 @@
require_relative "spec_helper"
# encoding: UTF-8
require_relative 'spec_helper'
describe "openstack-metering::identity_registration" do
describe 'openstack-metering::identity_registration' do
before do
metering_stubs
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge "openstack-metering::identity_registration"
@chef_run.converge 'openstack-metering::identity_registration'
end
it "registers metering service" do
it 'registers metering service' do
resource = @chef_run.find_resource(
"openstack-identity_register",
"Register Metering Service"
'openstack-identity_register',
'Register Metering Service'
).to_hash
expect(resource).to include(
:auth_uri => "http://127.0.0.1:35357/v2.0",
:bootstrap_token => "bootstrap-token",
:service_name => "ceilometer",
:service_type => "metering",
:action => [:create_service]
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
service_name: 'ceilometer',
service_type: 'metering',
action: [:create_service]
)
end
it "registers metering endpoint" do
it 'registers metering endpoint' do
resource = @chef_run.find_resource(
"openstack-identity_register",
"Register Metering Endpoint"
'openstack-identity_register',
'Register Metering Endpoint'
).to_hash
expect(resource).to include(
:auth_uri => "http://127.0.0.1:35357/v2.0",
:bootstrap_token => "bootstrap-token",
:service_type => "metering",
:endpoint_region => "RegionOne",
:endpoint_adminurl => "http://127.0.0.1:8777/v1",
:endpoint_internalurl => "http://127.0.0.1:8777/v1",
:endpoint_publicurl => "http://127.0.0.1:8777/v1",
:action => [:create_endpoint]
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
service_type: 'metering',
endpoint_region: 'RegionOne',
endpoint_adminurl: 'http://127.0.0.1:8777/v1',
endpoint_internalurl: 'http://127.0.0.1:8777/v1',
endpoint_publicurl: 'http://127.0.0.1:8777/v1',
action: [:create_endpoint]
)
end
end

View File

@ -1,38 +1,40 @@
require "chefspec"
require "chefspec/berkshelf"
require "chef/application"
# encoding: UTF-8
require 'chefspec'
require 'chefspec/berkshelf'
require 'chef/application'
::LOG_LEVEL = :fatal
::OPENSUSE_OPTS = {
:platform => "opensuse",
:version => "12.3",
:log_level => ::LOG_LEVEL
platform: 'opensuse',
version: '12.3',
log_level: ::LOG_LEVEL
}
::REDHAT_OPTS = {
:platform => "redhat",
:version => "6.3",
:log_level => ::LOG_LEVEL
platform: 'redhat',
version: '6.3',
log_level: ::LOG_LEVEL
}
::UBUNTU_OPTS = {
:platform => "ubuntu",
:version => "12.04",
:log_level => ::LOG_LEVEL
platform: 'ubuntu',
version: '12.04',
log_level: ::LOG_LEVEL
}
def metering_stubs
::Chef::Recipe.any_instance.stub(:memcached_servers).and_return []
::Chef::Recipe.any_instance.stub(:get_password).and_return String.new
::Chef::Recipe.any_instance.stub(:get_password).
with("user", "guest").
and_return "rabbit-pass"
::Chef::Recipe.any_instance.stub(:secret).
with("secrets", "openstack_identity_bootstrap_token").
and_return "bootstrap-token"
# TODO(chrislaco): Factor this into proper RSpec shared_contexts
def metering_stubs # rubocop:disable MethodLength
::Chef::Recipe.any_instance.stub(:memcached_servers).and_return([])
::Chef::Recipe.any_instance.stub(:get_password).and_return('')
::Chef::Recipe.any_instance.stub(:get_password)
.with('user', 'guest')
.and_return('rabbit-pass')
::Chef::Recipe.any_instance.stub(:secret)
.with('secrets', 'openstack_identity_bootstrap_token')
.and_return('bootstrap-token')
::Chef::Application.stub(:fatal!)
end
def expect_runs_common_recipe
it "runs common recipe" do
expect(@chef_run).to include_recipe "openstack-metering::common"
it 'runs common recipe' do
expect(@chef_run).to include_recipe 'openstack-metering::common'
end
end