summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.fixtures.yml3
-rw-r--r--Gemfile13
-rw-r--r--Rakefile5
-rw-r--r--manifests/debian.pp18
-rw-r--r--manifests/files.pp (renamed from manifests/base.pp)14
-rw-r--r--manifests/init.pp17
-rw-r--r--manifests/lens.pp14
-rw-r--r--manifests/packages.pp22
-rw-r--r--manifests/params.pp20
-rw-r--r--manifests/redhat.pp13
-rw-r--r--spec/.rspec (renamed from spec/spec.opts)0
-rw-r--r--spec/defines/augeas_lens_spec.rb68
-rw-r--r--spec/fixtures/manifests/site.pp23
-rw-r--r--spec/hosts/simple_debian_squeeze_spec.rb91
-rw-r--r--spec/hosts/simple_debian_wheezy_spec.rb91
-rw-r--r--spec/hosts/simple_redhat_spec.rb82
-rw-r--r--spec/hosts/with_lens_noaugeas_spec.rb9
-rw-r--r--spec/hosts/with_lens_spec.rb56
-rw-r--r--spec/hosts/wrong_os_spec.rb11
-rw-r--r--spec/spec_helper.rb34
20 files changed, 524 insertions, 80 deletions
diff --git a/.fixtures.yml b/.fixtures.yml
new file mode 100644
index 0000000..d8386fa
--- /dev/null
+++ b/.fixtures.yml
@@ -0,0 +1,3 @@
+fixtures:
+ symlinks:
+ "augeas": "#{source_dir}"
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..2ca44e7
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,13 @@
+source :rubygems
+
+if ENV.key?('PUPPET_VERSION')
+ puppetversion = "= #{ENV['PUPPET_VERSION']}"
+else
+ puppetversion = ['>= 2.7']
+end
+
+gem 'rake'
+gem 'puppet-lint'
+gem 'rspec-puppet'
+gem 'puppet', puppetversion
+gem 'puppetlabs_spec_helper'
diff --git a/Rakefile b/Rakefile
index 14f1c24..4d31fec 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,2 +1,5 @@
-require 'rubygems'
+require 'puppet-lint/tasks/puppet-lint'
require 'puppetlabs_spec_helper/rake_tasks'
+
+task :default => [:spec, :lint]
+
diff --git a/manifests/debian.pp b/manifests/debian.pp
deleted file mode 100644
index bc2e3eb..0000000
--- a/manifests/debian.pp
+++ /dev/null
@@ -1,18 +0,0 @@
-class augeas::debian inherits augeas::base {
-
- package {
- ['augeas-lenses', 'libaugeas0', 'augeas-tools']:
- ensure => $augeas::base::version,
- before => File['/usr/share/augeas/lenses'],
- }
-
- $augeas_ruby = $::lsbdistcodename ? {
- 'wheezy' => 'libaugeas-ruby1.9.1',
- default => 'libaugeas-ruby1.8',
- }
-
- package {$augeas_ruby:
- ensure => $augeas::base::rubylib_version,
- }
-
-}
diff --git a/manifests/base.pp b/manifests/files.pp
index 37ad0e2..01427ad 100644
--- a/manifests/base.pp
+++ b/manifests/files.pp
@@ -1,15 +1,5 @@
-class augeas::base {
- $lens_dir = '/usr/share/augeas/lenses'
-
- $version = $augeas_version ? {
- '' => 'present',
- default => $augeas_version
- }
-
- $rubylib_version = $augeas_ruby_version ? {
- '' => 'present',
- default => $augeas_ruby_version
- }
+class augeas::files {
+ $lens_dir = $augeas::lens_dir
# ensure no file not managed by puppet ends up in there.
file { $lens_dir:
diff --git a/manifests/init.pp b/manifests/init.pp
index e82e21c..6374955 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,7 +1,12 @@
-class augeas {
- case $::operatingsystem {
- /RedHat|CentOS|Fedora/: { include augeas::redhat }
- /Debian|Ubuntu|kFreeBSD/: { include augeas::debian }
- default: { include augeas::base }
- }
+class augeas (
+ $version = $augeas_version,
+ $ruby_version = $augeas_ruby_version,
+ $lens_dir = $augeas::params::lens_dir,
+) inherits augeas::params {
+
+ class {'::augeas::packages': } ->
+ class {'::augeas::files': } ->
+ Class['augeas']
+
+ Package['ruby-augeas'] -> Augeas <| |>
}
diff --git a/manifests/lens.pp b/manifests/lens.pp
index 55dc9ae..723f217 100644
--- a/manifests/lens.pp
+++ b/manifests/lens.pp
@@ -29,12 +29,14 @@ define augeas::lens (
$test_source=false,
$stock_since=false,
) {
+ if !defined(Class['augeas']) {
+ fail('You must declare the augeas class before using augeas::lens')
+ }
- if (!$stock_since or !versioncmp($::augeasversion, $stock_since)) {
- include augeas::base
+ if (!$stock_since or versioncmp($::augeasversion, $stock_since) < 0) {
- $lens_dest = "${augeas::base::lens_dir}/${name}.aug"
- $test_dest = "${augeas::base::lens_dir}/tests/test_${name}.aug"
+ $lens_dest = "${augeas::lens_dir}/${name}.aug"
+ $test_dest = "${augeas::lens_dir}/tests/test_${name}.aug"
file { $lens_dest:
ensure => $ensure,
@@ -42,7 +44,7 @@ define augeas::lens (
}
exec { "Typecheck lens ${name}":
- command => "augparse -I ${augeas::base::lens_dir} ${lens_dest} || (rm -f ${lens_dest} && exit 1)",
+ command => "augparse -I ${augeas::lens_dir} ${lens_dest} || (rm -f ${lens_dest} && exit 1)",
refreshonly => true,
subscribe => File[$lens_dest],
}
@@ -55,7 +57,7 @@ define augeas::lens (
}
exec { "Test lens ${name}":
- command => "augparse -I ${augeas::base::lens_dir} ${test_dest} || (rm -f ${lens_dest} && rm -f ${test_dest} && exit 1)",
+ command => "augparse -I ${augeas::lens_dir} ${test_dest} || (rm -f ${lens_dest} && rm -f ${test_dest} && exit 1)",
refreshonly => true,
subscribe => File[$lens_dest, $test_dest],
}
diff --git a/manifests/packages.pp b/manifests/packages.pp
new file mode 100644
index 0000000..e41f800
--- /dev/null
+++ b/manifests/packages.pp
@@ -0,0 +1,22 @@
+class augeas::packages {
+ # Augeas packages
+ $augeas_ensure = $augeas::version ? {
+ '' => 'present',
+ default => $augeas::version
+ }
+
+ package { $augeas::params::augeas_pkgs:
+ ensure => $augeas_ensure,
+ }
+
+ # Ruby package
+ $ruby_ensure = $augeas::ruby_version ? {
+ '' => 'present',
+ default => $augeas::ruby_version
+ }
+
+ package { 'ruby-augeas':
+ ensure => $ruby_ensure,
+ name => $augeas::params::ruby_pkg,
+ }
+}
diff --git a/manifests/params.pp b/manifests/params.pp
new file mode 100644
index 0000000..e7120af
--- /dev/null
+++ b/manifests/params.pp
@@ -0,0 +1,20 @@
+class augeas::params {
+ $lens_dir = '/usr/share/augeas/lenses'
+
+ case $::osfamily {
+ 'RedHat': {
+ $ruby_pkg = 'ruby-augeas'
+ $augeas_pkgs = ['augeas', 'augeas-libs']
+ }
+
+ 'Debian': {
+ $ruby_pkg = $::lsbdistcodename ? {
+ 'wheezy' => 'libaugeas-ruby1.9.1',
+ default => 'libaugeas-ruby1.8',
+ }
+ $augeas_pkgs = ['augeas-lenses', 'libaugeas0', 'augeas-tools']
+ }
+
+ default: { fail("Unsupported OS family: ${::osfamily}") }
+ }
+}
diff --git a/manifests/redhat.pp b/manifests/redhat.pp
deleted file mode 100644
index 1e95728..0000000
--- a/manifests/redhat.pp
+++ /dev/null
@@ -1,13 +0,0 @@
-class augeas::redhat inherits augeas::base {
-
- package {
- ['augeas', 'augeas-libs']:
- ensure => $augeas::base::version,
- before => File['/usr/share/augeas/lenses'],
- }
-
- package { 'ruby-augeas':
- ensure => $augeas::base::rubylib_version,
- }
-
-}
diff --git a/spec/spec.opts b/spec/.rspec
index 91cd642..91cd642 100644
--- a/spec/spec.opts
+++ b/spec/.rspec
diff --git a/spec/defines/augeas_lens_spec.rb b/spec/defines/augeas_lens_spec.rb
new file mode 100644
index 0000000..57d30b6
--- /dev/null
+++ b/spec/defines/augeas_lens_spec.rb
@@ -0,0 +1,68 @@
+require 'spec_helper'
+
+describe 'augeas::lens' do
+ let (:title) { 'foo' }
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ } }
+ context 'when no lens_source is passed' do
+ it 'should error' do
+ expect {
+ should contain_file('/usr/share/augeas/lenses/foo.aug')
+ }.to raise_error(Puppet::Error, /Must pass lens_source/)
+ end
+ end
+
+ context 'when lens_source is passed' do
+ let (:params) { {
+ :lens_source => '/tmp/foo.aug',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ it { should_not contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
+ it { should_not contain_exec('Test lens foo') }
+ end
+
+ context 'when lens_source and test_source are passed' do
+ let (:params) { {
+ :lens_source => '/tmp/foo.aug',
+ :test_source => '/tmp/test_foo.aug',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ it { should contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
+ it { should contain_exec('Test lens foo') }
+ end
+
+ context 'when stock_since is passed and augeas is older' do
+ let (:params) { {
+ :lens_source => '/tmp/foo.aug',
+ :stock_since => '1.2.3',
+ } }
+
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeasversion => '1.0.0',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ end
+
+ context 'when stock_since is passed and augeas is newer' do
+ let (:params) { {
+ :lens_source => '/tmp/foo.aug',
+ :stock_since => '1.2.3',
+ } }
+
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeasversion => '1.5.0',
+ } }
+
+ it { should_not contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should_not contain_exec('Typecheck lens foo') }
+ end
+end
diff --git a/spec/fixtures/manifests/site.pp b/spec/fixtures/manifests/site.pp
new file mode 100644
index 0000000..fb803e5
--- /dev/null
+++ b/spec/fixtures/manifests/site.pp
@@ -0,0 +1,23 @@
+# simple_* and wrong_os tests
+node default {
+ class { '::augeas':
+ version => $::augeas_version,
+ ruby_version => $::augeas_ruby_version,
+ lens_dir => $::augeas_lens_dir,
+ }
+}
+
+node 'with_lens_noaugeas' {
+ ::augeas::lens { 'foo':
+ lens_source => '/tmp/foo.aug',
+ }
+}
+
+node 'with_lens' {
+ include ::augeas
+ ::augeas::lens { 'foo':
+ lens_source => $::augeas_lens_source,
+ test_source => $::augeas_test_source,
+ stock_since => $::augeas_stock_since,
+ }
+}
diff --git a/spec/hosts/simple_debian_squeeze_spec.rb b/spec/hosts/simple_debian_squeeze_spec.rb
new file mode 100644
index 0000000..4b41105
--- /dev/null
+++ b/spec/hosts/simple_debian_squeeze_spec.rb
@@ -0,0 +1,91 @@
+require 'spec_helper'
+
+describe 'simple_debian_squeeze' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'squeeze',
+ } }
+
+ context 'when versions are not specified' do
+ it { should contain_package('libaugeas0').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('augeas-tools').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('augeas-lenses').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => 'present',
+ :name => 'libaugeas-ruby1.8'
+ ) }
+ end
+
+ context 'when versions are specified' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'squeeze',
+ :augeas_version => '1.2.3',
+ :augeas_ruby_version => '3.2.1',
+ } }
+
+ it { should contain_package('libaugeas0').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('augeas-tools').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('augeas-lenses').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => '3.2.1',
+ :name => 'libaugeas-ruby1.8'
+ ) }
+ end
+
+ context 'with standard lens_dir' do
+ it { should contain_file('/usr/share/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+
+ context 'with a non standard lens_dir' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'squeeze',
+ :augeas_lens_dir => '/opt/augeas/lenses'
+ } }
+
+ it { should contain_file('/opt/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/opt/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/opt/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+end
diff --git a/spec/hosts/simple_debian_wheezy_spec.rb b/spec/hosts/simple_debian_wheezy_spec.rb
new file mode 100644
index 0000000..23c0d1d
--- /dev/null
+++ b/spec/hosts/simple_debian_wheezy_spec.rb
@@ -0,0 +1,91 @@
+require 'spec_helper'
+
+describe 'simple_debian_squeeze' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'wheezy',
+ } }
+
+ context 'when versions are not specified' do
+ it { should contain_package('libaugeas0').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('augeas-tools').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('augeas-lenses').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => 'present',
+ :name => 'libaugeas-ruby1.9.1'
+ ) }
+ end
+
+ context 'when versions are specified' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'wheezy',
+ :augeas_version => '1.2.3',
+ :augeas_ruby_version => '3.2.1',
+ } }
+
+ it { should contain_package('libaugeas0').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('augeas-tools').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('augeas-lenses').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => '3.2.1',
+ :name => 'libaugeas-ruby1.9.1'
+ ) }
+ end
+
+ context 'with standard lens_dir' do
+ it { should contain_file('/usr/share/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+
+ context 'with a non standard lens_dir' do
+ let (:facts) { {
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'wheezy',
+ :augeas_lens_dir => '/opt/augeas/lenses'
+ } }
+
+ it { should contain_file('/opt/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/opt/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/opt/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+end
diff --git a/spec/hosts/simple_redhat_spec.rb b/spec/hosts/simple_redhat_spec.rb
new file mode 100644
index 0000000..5045377
--- /dev/null
+++ b/spec/hosts/simple_redhat_spec.rb
@@ -0,0 +1,82 @@
+require 'spec_helper'
+
+describe 'simple_redhat' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ } }
+
+ context 'when versions are not specified' do
+ it { should contain_package('augeas').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('augeas-libs').with(
+ :ensure => 'present'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => 'present',
+ :name => 'ruby-augeas'
+ ) }
+ end
+
+ context 'when versions are specified' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_version => '1.2.3',
+ :augeas_ruby_version => '3.2.1',
+ } }
+
+ it { should contain_package('augeas').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('augeas-libs').with(
+ :ensure => '1.2.3'
+ ) }
+ it { should contain_package('ruby-augeas').with(
+ :ensure => '3.2.1',
+ :name => 'ruby-augeas'
+ ) }
+ end
+
+ context 'with standard lens_dir' do
+ it { should contain_file('/usr/share/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/usr/share/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+
+ context 'with a non standard lens_dir' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_lens_dir => '/opt/augeas/lenses'
+ } }
+
+ it { should contain_file('/opt/augeas/lenses').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true',
+ :recurse => 'true',
+ :recurselimit => 1
+ ) }
+ it { should contain_file('/opt/augeas/lenses/dist').with(
+ :ensure => 'directory',
+ :purge => 'false'
+ ) }
+ it { should contain_file('/opt/augeas/lenses/tests').with(
+ :ensure => 'directory',
+ :purge => 'true',
+ :force => 'true'
+ ).without(:recurse) }
+ end
+end
diff --git a/spec/hosts/with_lens_noaugeas_spec.rb b/spec/hosts/with_lens_noaugeas_spec.rb
new file mode 100644
index 0000000..b26563b
--- /dev/null
+++ b/spec/hosts/with_lens_noaugeas_spec.rb
@@ -0,0 +1,9 @@
+require 'spec_helper'
+
+describe 'with_lens_noaugeas' do
+ it 'should error' do
+ expect {
+ should contain_file('/usr/share/augeas/lenses/foo.aug')
+ }.to raise_error(Puppet::Error, /You must declare the augeas class/)
+ end
+end
diff --git a/spec/hosts/with_lens_spec.rb b/spec/hosts/with_lens_spec.rb
new file mode 100644
index 0000000..d7a5249
--- /dev/null
+++ b/spec/hosts/with_lens_spec.rb
@@ -0,0 +1,56 @@
+require 'spec_helper'
+
+describe 'with_lens' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ } }
+
+ context 'when lens_source is passed' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_lens_source => '/tmp/foo.aug',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ it { should_not contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
+ it { should_not contain_exec('Test lens foo') }
+ end
+
+ context 'when lens_source and test_source are passed' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_lens_source => '/tmp/foo.aug',
+ :augeas_test_source => '/tmp/test_foo.aug',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ it { should contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
+ it { should contain_exec('Test lens foo') }
+ end
+
+ context 'when stock_since is passed and augeas is older' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_lens_source => '/tmp/foo.aug',
+ :augeas_stock_since => '1.2.3',
+ :augeasversion => '1.0.0',
+ } }
+
+ it { should contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should contain_exec('Typecheck lens foo') }
+ end
+
+ context 'when stock_since is passed and augeas is newer' do
+ let (:facts) { {
+ :osfamily => 'RedHat',
+ :augeas_lens_source => '/tmp/foo.aug',
+ :augeas_stock_since => '1.2.3',
+ :augeasversion => '1.5.0',
+ } }
+
+ it { should_not contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { should_not contain_exec('Typecheck lens foo') }
+ end
+end
diff --git a/spec/hosts/wrong_os_spec.rb b/spec/hosts/wrong_os_spec.rb
new file mode 100644
index 0000000..5704ded
--- /dev/null
+++ b/spec/hosts/wrong_os_spec.rb
@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe 'wrong_os' do
+ let (:facts) { {
+ :osfamily => 'MS-DOS'
+ } }
+
+ it 'should fail' do
+ expect { should contain_package('ruby-augeas') }.to raise_error(Puppet::Error, /Unsupported OS family/)
+ end
+end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 931d35c..5e28e1f 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,28 +1,14 @@
-dir = File.expand_path(File.dirname(__FILE__))
-$LOAD_PATH.unshift File.join(dir, 'lib')
-
-# Don't want puppet getting the command line arguments for rake or autotest
-ARGV.clear
-
-require 'puppet'
-require 'facter'
require 'mocha'
-gem 'rspec', '>=2.0.0'
-require 'rspec/expectations'
+require 'rspec-puppet'
-require 'puppetlabs_spec_helper/module_spec_helper'
+fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
-RSpec.configure do |config|
- # FIXME REVISIT - We may want to delegate to Facter like we do in
- # Puppet::PuppetSpecInitializer.initialize_via_testhelper(config) because
- # this behavior is a duplication of the spec_helper in Facter.
- config.before :each do
- # Ensure that we don't accidentally cache facts and environment between
- # test cases. This requires each example group to explicitly load the
- # facts being exercised with something like
- # Facter.collection.loader.load(:ipaddress)
- Facter::Util::Loader.any_instance.stubs(:load_all)
- Facter.clear
- Facter.clear_messages
- end
+RSpec.configure do |c|
+ c.module_path = File.join(fixture_path, 'modules')
+ c.manifest_dir = File.join(fixture_path, 'manifests')
end
+
+
+dir = File.expand_path(File.dirname(__FILE__))
+$LOAD_PATH.unshift File.join(dir, 'lib')
+