Add basic rspec tests to ensure catalog compiles

* Add basic rspec tests
* Add required fixtures: mysql, vswitch.
* Fix relationship between Package['dnsmasq'] and
  Package['quantum-dhcp-agent']. RedHat does not have such package and
  catalog compilation would fail on RedHat platforms.
* Restore Ruby 1.8 compatibility by removing trailing comma
  on the final element of hash.

Change-Id: I7cfc2f9b308116fe9c8b7f242f794792be0be678
This commit is contained in:
Mathieu Gagné 2013-05-03 01:25:55 -04:00
parent 0f0ee9a700
commit 32a4e0c07d
11 changed files with 199 additions and 4 deletions

View File

@ -2,7 +2,9 @@ fixtures:
repositories:
"stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git"
"inifile": "git://github.com/cprice-puppet/puppetlabs-inifile"
"mysql": "git://github.com/puppetlabs/puppetlabs-mysql"
"keystone": "git://github.com/stackforge/puppet-keystone.git"
"nova": "git://github.com/stackforge/puppet-nova.git"
"vswitch": "git://github.com/bodepd/puppet-vswitch"
symlinks:
"quantum": "#{source_dir}"

View File

@ -29,7 +29,7 @@ class quantum::agents::dhcp (
case $dhcp_driver {
/\.Dnsmasq/: {
Package<| title == 'dnsmasq' |> -> Package<| title == 'quantum-dhcp-agent' |>
Package['dnsmasq'] -> Package['quantum-dhcp-agent']
Package['dnsmasq'] -> Package<| title == 'quantum-dhcp-agent' |>
package { 'dnsmasq':
name => $::quantum::params::dnsmasq_packages,
ensure => present,

View File

@ -0,0 +1,25 @@
require 'spec_helper'
describe 'quantum::agents::dhcp' do
let :pre_condition do
"class { 'quantum': rabbit_password => 'passw0rd' }"
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::agents::dhcp') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::agents::dhcp') }
end
end

View File

@ -0,0 +1,20 @@
require 'spec_helper'
describe 'quantum::agents::l3' do
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::agents::l3') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::agents::l3') }
end
end

View File

@ -0,0 +1,25 @@
require 'spec_helper'
describe 'quantum::agents::ovs' do
let :pre_condition do
"class { 'quantum': rabbit_password => 'passw0rd' }"
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::agents::ovs') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::agents::ovs') }
end
end

View File

@ -0,0 +1,20 @@
require 'spec_helper'
describe 'quantum::client' do
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::client') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::client') }
end
end

View File

@ -0,0 +1,29 @@
require 'spec_helper'
describe 'quantum::db::mysql' do
let :pre_condition do
'include mysql::server'
end
let :params do
{ :password => 'passw0rd' }
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::db::mysql') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::db::mysql') }
end
end

View File

@ -5,7 +5,7 @@ describe 'quantum::keystone::auth' do
describe 'with default class parameters' do
let :params do
{
:password => 'quantum_password',
:password => 'quantum_password'
}
end
@ -16,13 +16,13 @@ describe 'quantum::keystone::auth' do
it { should contain_keystone_user_role('quantum@services').with(
:ensure => 'present',
:roles => 'admin',
:roles => 'admin'
)}
it { should contain_keystone_service('quantum').with(
:ensure => 'present',
:type => 'network',
:description => 'Quantum Networking Service',
:description => 'Quantum Networking Service'
) }
it { should contain_keystone_endpoint('RegionOne/quantum').with(

View File

@ -0,0 +1,25 @@
require 'spec_helper'
describe 'quantum::plugins::ovs' do
let :pre_condition do
"class { 'quantum': rabbit_password => 'passw0rd' }"
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::plugins::ovs') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::plugins::ovs') }
end
end

View File

@ -0,0 +1,24 @@
require 'spec_helper'
describe 'quantum::server' do
let :params do
{ :auth_password => 'passw0rd' }
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_class('quantum::server') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it { should contain_class('quantum::server') }
end
end

View File

@ -0,0 +1,25 @@
require 'spec_helper'
describe 'quantum::db::mysql::host_access' do
let :pre_condition do
'include mysql'
end
let :title do
'127.0.0.1'
end
let :params do
{ :user => 'quantum',
:password => 'passw0rd',
:database => 'quantum' }
end
let :facts do
{ :osfamily => 'Debian' }
end
it { should contain_database_user('quantum@127.0.0.1') }
it { should contain_database_grant('quantum@127.0.0.1/quantum') }
end