From d6046c181bab61ba8ce864cc0535eab95b328918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Can=C3=A9vet?= Date: Wed, 2 Jul 2014 16:12:50 +0200 Subject: [PATCH] Add unit tests --- .fixtures.yml | 3 +++ .gitignore | 2 ++ .travis.yml | 37 +++++++++++++++++++++++++++++++++++++ Gemfile | 12 ++++++++++++ Rakefile | 22 ++++++++++++++++++++++ spec/classes/ssh_spec.rb | 8 ++++++++ spec/spec_helper.rb | 25 +++++++++++++++++++++++++ 7 files changed, 109 insertions(+) create mode 100644 .fixtures.yml create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 Gemfile create mode 100644 Rakefile create mode 100644 spec/classes/ssh_spec.rb create mode 100644 spec/spec_helper.rb diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..4d52494 --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,3 @@ +fixtures: + symlinks: + ssh: "#{source_dir}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9a393a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Gemfile.lock +*.swp diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3496ad6 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,37 @@ +language: ruby +bundler_args: --without development +script: + - bundle exec rake spec SPEC_OPTS='--format documentation' + - bundle exec rake lint +rvm: + - 1.8.7 + - 1.9.3 + - 2.0.0 + - 2.1.2 +env: + - PUPPET_GEM_VERSION="~> 2.7.0" + - PUPPET_GEM_VERSION="~> 3.1.0" + - PUPPET_GEM_VERSION="~> 3.2.0" + - PUPPET_GEM_VERSION="~> 3.3.0" + - PUPPET_GEM_VERSION="~> 3.4.0" + - PUPPET_GEM_VERSION="~> 3.5.0" + - PUPPET_GEM_VERSION="~> 3.6.0" +matrix: + fast_finish: true + exclude: + - rvm: 1.9.3 + env: PUPPET_GEM_VERSION="~> 2.7.0" + - rvm: 2.0.0 + env: PUPPET_GEM_VERSION="~> 2.7.0" + - rvm: 2.0.0 + env: PUPPET_GEM_VERSION="~> 3.1.0" + - rvm: 2.1.2 + env: PUPPET_GEM_VERSION="~> 2.7.0" + - rvm: 2.1.2 + env: PUPPET_GEM_VERSION="~> 3.1.0" + - rvm: 2.1.2 + env: PUPPET_GEM_VERSION="~> 3.2.0" + - rvm: 2.1.2 + env: PUPPET_GEM_VERSION="~> 3.3.0" + - rvm: 2.1.2 + env: PUPPET_GEM_VERSION="~> 3.4.0" diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..08838c5 --- /dev/null +++ b/Gemfile @@ -0,0 +1,12 @@ +source 'https://rubygems.org' + +group :development, :test do + gem 'puppetlabs_spec_helper', :require => false + gem 'puppet-lint', :require => false +end + +if puppetversion = ENV['PUPPET_GEM_VERSION'] + gem 'puppet', puppetversion, :require => false +else + gem 'puppet', :require => false +end diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..013ed91 --- /dev/null +++ b/Rakefile @@ -0,0 +1,22 @@ +require 'rubygems' +require 'puppetlabs_spec_helper/rake_tasks' +require 'puppet-lint/tasks/puppet-lint' +PuppetLint.configuration.send('disable_80chars') +PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"] + +desc "Validate manifests, templates, and ruby files" +task :validate do + Dir['manifests/**/*.pp'].each do |manifest| + sh "puppet parser validate --noop #{manifest}" + end + Dir['spec/**/*.rb','lib/**/*.rb'].each do |ruby_file| + sh "ruby -c #{ruby_file}" unless ruby_file =~ /spec\/fixtures/ + end + Dir['templates/**/*.erb'].each do |template| + sh "erb -P -x -T '-' #{template} | ruby -c" + end +end + +PuppetLint.configuration.send('disable_class_parameter_defaults') +PuppetLint.configuration.fail_on_warnings = true +task :default => [:spec, :lint, :validate] diff --git a/spec/classes/ssh_spec.rb b/spec/classes/ssh_spec.rb new file mode 100644 index 0000000..d0ac824 --- /dev/null +++ b/spec/classes/ssh_spec.rb @@ -0,0 +1,8 @@ +require 'spec_helper' + +describe 'ssh' do + let(:facts) {{ + :osfamily => 'Debian', + }} + it { should compile.with_all_deps } +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..2471da9 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,25 @@ +require 'puppetlabs_spec_helper/module_spec_helper' + +RSpec.configure do |c| + c.include PuppetlabsSpec::Files + + c.before :each do + # Ensure that we don't accidentally cache facts and environment + # between test cases. + Facter::Util::Loader.any_instance.stubs(:load_all) + Facter.clear + Facter.clear_messages + + # Store any environment variables away to be restored later + @old_env = {} + ENV.each_key {|k| @old_env[k] = ENV[k]} + + if Gem::Version.new(`puppet --version`) >= Gem::Version.new('3.5') + Puppet.settings[:strict_variables]=true + end + end + + c.after :each do + PuppetlabsSpec::Files.cleanup + end +end