]> review.fuel-infra Code Review - puppet-modules/puppetlabs-apt.git/commitdiff
Merge pull request #61 from xaque208/pin_origin
authorJames Turnbull <james@lovedthanlost.net>
Wed, 23 May 2012 17:17:31 +0000 (10:17 -0700)
committerJames Turnbull <james@lovedthanlost.net>
Wed, 23 May 2012 17:17:31 +0000 (10:17 -0700)
Pin origin

.fixtures.yml [new file with mode: 0644]
.gemfile [new file with mode: 0644]
.gitmodules [deleted file]
.travis.yml [new file with mode: 0644]
Rakefile
manifests/ppa.pp
spec/fixtures/modules/apt [deleted symlink]
spec/fixtures/modules/stdlib [deleted submodule]
spec/spec_helper.rb

diff --git a/.fixtures.yml b/.fixtures.yml
new file mode 100644 (file)
index 0000000..dbd5621
--- /dev/null
@@ -0,0 +1,5 @@
+fixtures:
+  repositories:
+    "stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git"
+  symlinks:
+    "apt": "#{source_dir}"
diff --git a/.gemfile b/.gemfile
new file mode 100644 (file)
index 0000000..e4be447
--- /dev/null
+++ b/.gemfile
@@ -0,0 +1,12 @@
+source :rubygems
+
+puppetversion = ENV.key?('PUPPET_VERSION') ? "= #{ENV['PUPPET_VERSION']}" : ['>= 2.7']
+
+gem 'puppet', puppetversion
+
+group :test do
+  gem 'rake', '>= 0.9.0'
+  gem 'rspec', '>= 2.8.0'
+  gem 'rspec-puppet', '>= 0.1.1'
+  gem 'mocha', '>= 0.11.0'
+end
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644 (file)
index eb34d3b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "spec/fixtures/modules/stdlib"]
-       path = spec/fixtures/modules/stdlib
-       url = https://github.com/puppetlabs/puppetlabs-stdlib.git
diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..0ec5a08
--- /dev/null
@@ -0,0 +1,16 @@
+language: ruby
+rvm:
+  - 1.8.7
+before_script:
+after_script:
+script: "rake spec_full"
+branches:
+  only:
+    - master
+env:
+  - PUPPET_VERSION=2.7.13
+  - PUPPET_VERSION=2.7.6
+  - PUPPET_VERSION=2.6.9
+notifications:
+  email: false
+gemfile: .gemfile
index 705d50de2f8f3a354e8f68e1e0b6127fb6675303..20fc384a20af23090189d1f7ee8a2af3d6d6a4eb 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -1,15 +1,85 @@
 require 'rake'
-require 'puppet-lint/tasks/puppet-lint'
+require 'rspec/core/rake_task'
+require 'yaml'
 
 task :default => [:spec]
 
 desc "Run all module spec tests (Requires rspec-puppet gem)"
-task :spec do
-  system("rspec spec/**/*_spec.rb")
+RSpec::Core::RakeTask.new(:spec) do |t|
+  t.rspec_opts = ['--color']
+  t.pattern = 'spec/{classes,defines,unit}/**/*_spec.rb'
 end
 
-desc "Build package"
+# This is a helper for the self-symlink entry of fixtures.yml
+def source_dir
+  File.dirname(__FILE__)
+end
+
+def fixtures(category)
+  begin
+    fixtures = YAML.load_file(".fixtures.yml")["fixtures"]
+  rescue Errno::ENOENT
+    return {}
+  end
+
+  if not fixtures
+    abort("malformed fixtures.yml")
+  end
+
+  result = {}
+  if fixtures.include? category
+    fixtures[category].each do |fixture, source|
+      target = "spec/fixtures/modules/#{fixture}"
+      real_source = eval('"'+source+'"')
+      result[real_source] = target
+    end
+  end
+  return result
+end
+
+desc "Create the fixtures directory"
+task :spec_prep do
+  fixtures("repositories").each do |repo, target|
+    File::exists?(target) || system("git clone #{repo} #{target}")
+  end
+
+  fixtures("symlinks").each do |source, target|
+    File::exists?(target) || FileUtils::ln_s(source, target)
+  end
+end
+
+desc "Clean up the fixtures directory"
+task :spec_clean do
+  fixtures("repositories").each do |repo, target|
+    FileUtils::rm_rf(target)
+  end
+
+  fixtures("symlinks").each do |source, target|
+    FileUtils::rm(target)
+  end
+end
+
+task :spec_full do
+  Rake::Task[:spec_prep].invoke
+  Rake::Task[:spec].invoke
+  Rake::Task[:spec_clean].invoke
+end
+
+desc "Build puppet module package"
 task :build do
-  system("puppet-module build")
+  # This will be deprecated once puppet-module is a face.
+  begin
+    Gem::Specification.find_by_name('puppet-module')
+  rescue Gem::LoadError, NoMethodError
+    require 'puppet/face'
+    pmod = Puppet::Face['module', :current]
+    pmod.build('./')
+  end
 end
 
+desc "Check puppet manifests with puppet-lint"
+task :lint do
+  # This requires pull request: https://github.com/rodjek/puppet-lint/pull/81
+  system("puppet-lint manifests")
+  system("puppet-lint tests")
+end
index 64c65bbd09e41d595b902135d6fd5222138fb114..6b38e52d63164b8249adea6e2b5142829c54050d 100644 (file)
@@ -12,8 +12,9 @@ define apt::ppa(
     fail('lsbdistcodename fact not available: release parameter required')
   }
 
-  $filename_without_slashes = regsubst($name,'/','-','G')
-  $filename_without_ppa     = regsubst($filename_without_slashes, '^ppa:','','G')
+  $filename_without_slashes = regsubst($name, '/', '-', G)
+  $filename_without_dots    = regsubst($filename_without_slashes, '\.', '_', G)
+  $filename_without_ppa     = regsubst($filename_without_dots, '^ppa:', '', G)
   $sources_list_d_filename  = "${filename_without_ppa}-${release}.list"
 
   if ! defined(Package['python-software-properties']) {
diff --git a/spec/fixtures/modules/apt b/spec/fixtures/modules/apt
deleted file mode 120000 (symlink)
index 1b20c9f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../
\ No newline at end of file
diff --git a/spec/fixtures/modules/stdlib b/spec/fixtures/modules/stdlib
deleted file mode 160000 (submodule)
index a70b09d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a70b09d5de035de5254ebe6ad6e1519a6d7cf588
index 46fe2371c96ac7301a50a8575c465fbdfab0ff88..660e21823c075e580de649459aba06d32cc0c998 100644 (file)
@@ -6,9 +6,13 @@ def param_value(subject, type, title, param)
   subject.resource(type, title).send(:parameters)[param.to_sym]
 end
 
+Puppet.parse_config
+puppet_module_path = Puppet[:modulepath]
+
 fixture_path = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
 
 RSpec.configure do |c|
-  c.module_path = File.join(fixture_path, 'modules')
+  fixture_module_path = File.join(fixture_path, 'modules')
+  c.module_path = [fixture_module_path, puppet_module_path].join(":")
   c.manifest_dir = File.join(fixture_path, 'manifests')
 end