Skip to content

Commit c8f12f3

Browse files
author
Joshua Hoblitt
committed
add simple rspec-system tests
1 parent d9fa183 commit c8f12f3

File tree

6 files changed

+106
-5
lines changed

6 files changed

+106
-5
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
pkg/
22
spec/fixtures/
33
Gemfile.lock
4+
.rspec_system/
45
*.orig
56
*.rej
67
*.patch
8+
*.swp

.nodeset.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
default_set: 'centos-64-x64'
3+
sets:
4+
'centos-64-x64':
5+
nodes:
6+
'main.vm':
7+
prefab: 'centos-64-x64'
8+
'debian-607-x64':
9+
nodes:
10+
'main.vm':
11+
prefab: 'debian-607-x64'

Gemfile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ else
66
gem 'puppet', :require => false
77
end
88

9-
gem 'rake', :require => false
10-
gem 'rspec-puppet', :require => false
11-
gem 'puppetlabs_spec_helper', :require => false
12-
gem 'puppet-lint', :require => false
13-
gem 'puppet-syntax', :require => false
9+
gem 'rake', :require => false
10+
gem 'rspec-puppet', :require => false
11+
gem 'puppetlabs_spec_helper', :require => false
12+
gem 'puppet-lint', :require => false
13+
gem 'puppet-syntax', :require => false
14+
gem 'rspec-system', :require => false
15+
gem 'rspec-system-puppet', :require => false
16+
gem 'rspec-system-serverspec', :require => false
1417

1518
# vim:ft=ruby

Rakefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
require 'puppetlabs_spec_helper/rake_tasks'
22
require 'puppet-syntax/tasks/puppet-syntax'
33
require 'puppet-lint/tasks/puppet-lint'
4+
require 'rspec-system/rake_task'
45

56
PuppetSyntax.exclude_paths = ["spec/fixtures/**/*"]
67
PuppetLint.configuration.send("disable_class_inherits_from_params_class")

spec/spec_helper_system.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require 'rspec-system/spec_helper'
2+
require 'rspec-system-puppet/helpers'
3+
require 'rspec-system-serverspec/helpers'
4+
5+
include RSpecSystemPuppet::Helpers
6+
7+
include Serverspec::Helper::RSpecSystem
8+
include Serverspec::Helper::DetectOS
9+
10+
RSpec.configure do |c|
11+
# Project root
12+
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
13+
14+
# Enable colour
15+
c.tty = true
16+
17+
c.include RSpecSystemPuppet::Helpers
18+
19+
# This is where we 'setup' the nodes before running our tests
20+
c.before :suite do
21+
# Install puppet
22+
puppet_install
23+
24+
# Install modules and dependencies
25+
puppet_module_install(:source => proj_root, :module_name => 'udev')
26+
shell('puppet module install puppetlabs-stdlib')
27+
end
28+
end

spec/system/udev_spec.rb

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
require 'spec_helper_system'
2+
3+
describe 'udev class' do
4+
describe 'running puppet code' do
5+
it 'should work with no errors' do
6+
pp = <<-EOS
7+
class { 'udev': udev_log => 'debug' }
8+
9+
udev::rule { '51-android.rules':
10+
content => 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4372", MODE="0660", OWNER="vagrant"',
11+
}
12+
13+
udev::rule { '60-raw.rules':
14+
content => 'ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"',
15+
}
16+
EOS
17+
18+
# Run it twice and test for idempotency
19+
puppet_apply(pp) do |r|
20+
r.exit_code.should_not == 1
21+
r.stderr.should be_empty
22+
r.refresh
23+
r.exit_code.should be_zero
24+
r.stderr.should be_empty
25+
end
26+
end
27+
end
28+
29+
describe package('udev') do
30+
it { should be_installed }
31+
end
32+
33+
describe file('/etc/udev/udev.conf') do
34+
it { should be_file }
35+
it { should be_owned_by 'root' }
36+
it { should be_grouped_into 'root' }
37+
it { should be_mode 644 }
38+
it { should contain 'udev_log="debug"' }
39+
end
40+
41+
describe file('/etc/udev/rules.d/51-android.rules') do
42+
it { should be_file }
43+
it { should be_owned_by 'root' }
44+
it { should be_grouped_into 'root' }
45+
it { should be_mode 644 }
46+
it { should contain 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4372", MODE="0660", OWNER="vagrant"' }
47+
end
48+
49+
describe file('/etc/udev/rules.d/60-raw.rules') do
50+
it { should be_file }
51+
it { should be_owned_by 'root' }
52+
it { should be_grouped_into 'root' }
53+
it { should be_mode 644 }
54+
it { should contain 'ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"' }
55+
end
56+
end

0 commit comments

Comments
 (0)