-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-lint/tasks/puppet-lint'
-require 'puppet-syntax/tasks/puppet-syntax'
-require 'json'
-
-modname = JSON.parse(open('metadata.json').read)['name'].split('-')[1]
-
-PuppetSyntax.exclude_paths ||= []
-PuppetSyntax.exclude_paths << "spec/fixtures/**/*"
-PuppetSyntax.exclude_paths << "pkg/**/*"
-PuppetSyntax.exclude_paths << "vendor/**/*"
-
-Rake::Task[:lint].clear
-PuppetLint::RakeTask.new :lint do |config|
- config.ignore_paths = ["spec/**/*.pp", "vendor/**/*.pp"]
- config.fail_on_warnings = true
- config.log_format = '%{path}:%{linenumber}:%{KIND}: %{message}'
- config.disable_checks = ["80chars", "class_inherits_from_params_class", "only_variable_string"]
-end
-
-desc "Run acceptance tests"
-RSpec::Core::RakeTask.new(:acceptance) do |t|
- t.pattern = 'spec/acceptance'
-end
-
-Rake::Task[:spec_prep].clear
-desc 'Create the fixtures directory'
-task :spec_prep do
- # Allow to test the module with custom dependencies
- # like you could do with .fixtures file
- if ENV['PUPPETFILE']
- puppetfile = ENV['PUPPETFILE']
- if ENV['GEM_HOME']
- gem_home = ENV['GEM_HOME']
- gem_bin_dir = "#{gem_home}" + '/bin/'
- else
- gem_bin_dir = ''
- end
- r10k = ['env']
- r10k += ["PUPPETFILE=#{puppetfile}"]
- r10k += ["PUPPETFILE_DIR=#{Dir.pwd}/spec/fixtures/modules"]
- r10k += ["#{gem_bin_dir}r10k"]
- r10k += ['puppetfile', 'install', '-v']
- sh(*r10k)
- else
- # otherwise, use official OpenStack Puppetfile
- zuul_ref = ENV['ZUUL_REF']
- zuul_branch = ENV['ZUUL_BRANCH']
- zuul_url = ENV['ZUUL_URL']
- repo = 'openstack/puppet-openstack-integration'
- rm_rf(repo)
- if File.exists?('/usr/zuul-env/bin/zuul-cloner')
- zuul_clone_cmd = ['/usr/zuul-env/bin/zuul-cloner']
- zuul_clone_cmd += ['--cache-dir', '/opt/git']
- zuul_clone_cmd += ['--zuul-ref', "#{zuul_ref}"]
- zuul_clone_cmd += ['--zuul-branch', "#{zuul_branch}"]
- zuul_clone_cmd += ['--zuul-url', "#{zuul_url}"]
- zuul_clone_cmd += ['git://git.openstack.org', "#{repo}"]
- sh(*zuul_clone_cmd)
- else
- sh("git clone https://git.openstack.org/#{repo} #{repo}")
- end
- script = ['env']
- script += ["PUPPETFILE_DIR=#{Dir.pwd}/spec/fixtures/modules"]
- script += ["ZUUL_REF=#{zuul_ref}"]
- script += ["ZUUL_BRANCH=#{zuul_branch}"]
- script += ["ZUUL_URL=#{zuul_url}"]
- script += ['bash', "#{repo}/install_modules_unit.sh"]
- sh(*script)
- end
- rm_rf("spec/fixtures/modules/#{modname}")
- ln_s(Dir.pwd, "spec/fixtures/modules/#{modname}")
- mkdir_p('spec/fixtures/manifests')
- touch('spec/fixtures/manifests/site.pp')
-end
-
-Rake::Task[:spec_clean].clear
-desc 'Clean up the fixtures directory'
-task :spec_clean do
- rm_rf('spec/fixtures/modules')
- rm_rf('openstack')
- if File.zero?('spec/fixtures/manifests/site.pp')
- rm_f('spec/fixtures/manifests/site.pp')
- end
-end
+require 'puppet-openstack_spec_helper/rake_tasks'
-require 'beaker-rspec'
-require 'beaker/puppet_install_helper'
-
-run_puppet_install_helper
-
-RSpec.configure do |c|
- # Project root
- proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
- modname = JSON.parse(open('metadata.json').read)['name'].split('-')[1]
-
- # Readable test descriptions
- c.formatter = :documentation
-
- # Configure all nodes in nodeset
- c.before :suite do
- # Install module and dependencies
- hosts.each do |host|
-
- # install git
- install_package host, 'git'
-
- zuul_ref = ENV['ZUUL_REF']
- zuul_branch = ENV['ZUUL_BRANCH']
- zuul_url = ENV['ZUUL_URL']
-
- repo = 'openstack/puppet-openstack-integration'
-
- # Start out with clean moduledir, don't trust r10k to purge it
- on host, "rm -rf /etc/puppet/modules/*"
- # Install dependent modules via git or zuul
- r = on host, "test -e /usr/zuul-env/bin/zuul-cloner", { :acceptable_exit_codes => [0,1] }
- if r.exit_code == 0
- zuul_clone_cmd = '/usr/zuul-env/bin/zuul-cloner '
- zuul_clone_cmd += '--cache-dir /opt/git '
- zuul_clone_cmd += "--zuul-ref #{zuul_ref} "
- zuul_clone_cmd += "--zuul-branch #{zuul_branch} "
- zuul_clone_cmd += "--zuul-url #{zuul_url} "
- zuul_clone_cmd += "git://git.openstack.org #{repo}"
- on host, zuul_clone_cmd
- else
- on host, "git clone https://git.openstack.org/#{repo} #{repo}"
- end
-
- on host, "ZUUL_REF=#{zuul_ref} ZUUL_BRANCH=#{zuul_branch} ZUUL_URL=#{zuul_url} bash #{repo}/install_modules.sh"
-
- # Install the module being tested
- on host, "rm -fr /etc/puppet/modules/#{modname}"
- puppet_module_install(:source => proj_root, :module_name => modname)
-
- on host, "rm -fr #{repo}"
-
- # List modules installed to help with debugging
- on host, puppet('module','list'), { :acceptable_exit_codes => 0 }
- end
- end
-end
+require 'puppet-openstack_spec_helper/beaker_spec_helper'