Merge pull request #589 from puppetlabs/modulesync-update
Multiple updates to stdlib and its testsuite
This commit is contained in:
commit
0624c3f806
10 changed files with 103 additions and 152 deletions
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
.travis.yml:
|
|
||||||
script: "\"bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--color --format documentation'\""
|
|
||||||
Rakefile:
|
|
||||||
unmanaged: true
|
|
||||||
Gemfile:
|
|
||||||
unmanaged: true
|
|
||||||
spec/spec_helper.rb:
|
|
||||||
unmanaged: true
|
|
|
@ -4,7 +4,7 @@ sudo: false
|
||||||
language: ruby
|
language: ruby
|
||||||
cache: bundler
|
cache: bundler
|
||||||
bundler_args: --without system_tests
|
bundler_args: --without system_tests
|
||||||
script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--color --format documentation'"
|
script: "bundle exec rake validate lint spec"
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
|
|
72
Gemfile
72
Gemfile
|
@ -1,61 +1,39 @@
|
||||||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
#This file is generated by ModuleSync, do not edit.
|
||||||
|
|
||||||
def location_for(place, fake_version = nil)
|
source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
||||||
|
|
||||||
|
def location_for(place, version = nil)
|
||||||
if place =~ /^(git[:@][^#]*)#(.*)/
|
if place =~ /^(git[:@][^#]*)#(.*)/
|
||||||
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
|
[version, { :git => $1, :branch => $2, :require => false}].compact
|
||||||
elsif place =~ /^file:\/\/(.*)/
|
elsif place =~ /^file:\/\/(.*)/
|
||||||
['>= 0', { :path => File.expand_path($1), :require => false }]
|
['>= 0', { :path => File.expand_path($1), :require => false}]
|
||||||
else
|
else
|
||||||
[place, { :require => false }]
|
[place, version, { :require => false}].compact
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :unit_tests do
|
group :development, :unit_tests do
|
||||||
# rspec must be v2 for ruby 1.8.7
|
gem 'json', :require => false
|
||||||
if RUBY_VERSION >= '1.8.7' and RUBY_VERSION < '1.9'
|
gem 'metadata-json-lint', :require => false
|
||||||
gem 'rspec', '~> 2.0'
|
gem 'puppet_facts', :require => false
|
||||||
else
|
gem 'puppet-blacksmith', :require => false
|
||||||
gem 'rspec', '~> 3.1.0', :require => false
|
gem 'puppetlabs_spec_helper', :require => false
|
||||||
end
|
gem 'rspec-puppet', '>= 2.3.2', :require => false
|
||||||
|
gem 'simplecov', :require => false
|
||||||
gem 'rake', '~> 10.1.0', :require => false
|
|
||||||
gem 'rspec-puppet', '~> 2.2', :require => false
|
|
||||||
gem 'mocha', :require => false
|
|
||||||
# keep for its rake task for now
|
|
||||||
gem 'puppetlabs_spec_helper', :require => false
|
|
||||||
gem 'puppet-lint', :require => false
|
|
||||||
gem 'metadata-json-lint', :require => false
|
|
||||||
gem 'pry', :require => false
|
|
||||||
gem 'simplecov', :require => false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
beaker_version = ENV['BEAKER_VERSION']
|
|
||||||
beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
|
|
||||||
group :system_tests do
|
group :system_tests do
|
||||||
if beaker_version
|
gem 'beaker-rspec', *location_for(ENV['BEAKER_RSPEC_VERSION'] || '>= 3.4')
|
||||||
gem 'beaker', *location_for(beaker_version)
|
gem 'beaker', *location_for(ENV['BEAKER_VERSION'])
|
||||||
end
|
gem 'serverspec', :require => false
|
||||||
if beaker_rspec_version
|
gem 'beaker-puppet_install_helper', :require => false
|
||||||
gem 'beaker-rspec', *location_for(beaker_rspec_version)
|
gem 'master_manipulator', :require => false
|
||||||
else
|
gem 'beaker-hostgenerator', *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'])
|
||||||
gem 'beaker-rspec', :require => false
|
|
||||||
end
|
|
||||||
gem 'serverspec', :require => false
|
|
||||||
gem 'beaker-puppet_install_helper', :require => false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
facterversion = ENV['GEM_FACTER_VERSION'] || ENV['FACTER_GEM_VERSION']
|
gem 'facter', *location_for(ENV['FACTER_GEM_VERSION'])
|
||||||
if facterversion
|
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
|
||||||
gem 'facter', *location_for(facterversion)
|
|
||||||
else
|
|
||||||
gem 'facter', :require => false
|
|
||||||
end
|
|
||||||
|
|
||||||
puppetversion = ENV['GEM_PUPPET_VERSION'] || ENV['PUPPET_GEM_VERSION']
|
|
||||||
if puppetversion
|
|
||||||
gem 'puppet', *location_for(puppetversion)
|
|
||||||
else
|
|
||||||
gem 'puppet', :require => false
|
|
||||||
end
|
|
||||||
|
|
||||||
# vim:ft=ruby
|
if File.exists? "#{__FILE__}.local"
|
||||||
|
eval(File.read("#{__FILE__}.local"), binding)
|
||||||
|
end
|
||||||
|
|
41
Rakefile
41
Rakefile
|
@ -1,7 +1,42 @@
|
||||||
require 'rubygems'
|
require 'puppet_blacksmith/rake_tasks'
|
||||||
# keep for compatibility for now
|
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
|
|
||||||
|
PuppetLint.configuration.fail_on_warnings = true
|
||||||
|
PuppetLint.configuration.send('relative')
|
||||||
PuppetLint.configuration.send('disable_80chars')
|
PuppetLint.configuration.send('disable_80chars')
|
||||||
|
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||||
|
PuppetLint.configuration.send('disable_documentation')
|
||||||
|
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
|
||||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
||||||
|
|
||||||
|
desc 'Generate pooler nodesets'
|
||||||
|
task :gen_nodeset do
|
||||||
|
require 'beaker-hostgenerator'
|
||||||
|
require 'securerandom'
|
||||||
|
require 'fileutils'
|
||||||
|
|
||||||
|
agent_target = ENV['TEST_TARGET']
|
||||||
|
if ! agent_target
|
||||||
|
STDERR.puts 'TEST_TARGET environment variable is not set'
|
||||||
|
STDERR.puts 'setting to default value of "redhat-64default."'
|
||||||
|
agent_target = 'redhat-64default.'
|
||||||
|
end
|
||||||
|
|
||||||
|
master_target = ENV['MASTER_TEST_TARGET']
|
||||||
|
if ! master_target
|
||||||
|
STDERR.puts 'MASTER_TEST_TARGET environment variable is not set'
|
||||||
|
STDERR.puts 'setting to default value of "redhat7-64mdcl"'
|
||||||
|
master_target = 'redhat7-64mdcl'
|
||||||
|
end
|
||||||
|
|
||||||
|
targets = "#{master_target}-#{agent_target}"
|
||||||
|
cli = BeakerHostGenerator::CLI.new([targets])
|
||||||
|
nodeset_dir = "tmp/nodesets"
|
||||||
|
nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml"
|
||||||
|
FileUtils.mkdir_p(nodeset_dir)
|
||||||
|
File.open(nodeset, 'w') do |fh|
|
||||||
|
fh.print(cli.execute)
|
||||||
|
end
|
||||||
|
puts nodeset
|
||||||
|
end
|
||||||
|
|
|
@ -16,7 +16,10 @@ be returned if the parsing of YAML string have failed.
|
||||||
|
|
||||||
begin
|
begin
|
||||||
YAML::load(arguments[0]) || arguments[1]
|
YAML::load(arguments[0]) || arguments[1]
|
||||||
rescue StandardError => e
|
# in ruby 1.9.3 Psych::SyntaxError is a RuntimeException
|
||||||
|
# this still needs to catch that and work also on rubies that
|
||||||
|
# do not have Psych available.
|
||||||
|
rescue StandardError, Psych::SyntaxError => e
|
||||||
if arguments[1]
|
if arguments[1]
|
||||||
arguments[1]
|
arguments[1]
|
||||||
else
|
else
|
||||||
|
|
|
@ -5,11 +5,7 @@ describe 'get_module_path' do
|
||||||
it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
||||||
it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
||||||
it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) }
|
||||||
if Puppet.version.to_f >= 4.0
|
it { is_expected.to run.with_params('one').and_raise_error(Puppet::ParseError, /Could not find module/) }
|
||||||
it { is_expected.to run.with_params('one').and_raise_error(Puppet::Environments::EnvironmentNotFound, /Could not find a directory environment/) }
|
|
||||||
else
|
|
||||||
it { is_expected.to run.with_params('one').and_raise_error(Puppet::ParseError, /Could not find module/) }
|
|
||||||
end
|
|
||||||
|
|
||||||
class StubModule
|
class StubModule
|
||||||
attr_reader :path
|
attr_reader :path
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
#This file pulls in only the minimum necessary to let unmigrated specs still work
|
|
||||||
|
|
||||||
# Define the main module namespace for use by the helper modules
|
|
||||||
module PuppetlabsSpec
|
|
||||||
# FIXTURE_DIR represents the standard locations of all fixture data. Normally
|
|
||||||
# this represents <project>/spec/fixtures. This will be used by the fixtures
|
|
||||||
# library to find relative fixture data.
|
|
||||||
FIXTURE_DIR = File.join("spec", "fixtures") unless defined?(FIXTURE_DIR)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Require all necessary helper libraries so they can be used later
|
|
||||||
require 'puppetlabs_spec_helper/puppetlabs_spec/files'
|
|
||||||
require 'puppetlabs_spec_helper/puppetlabs_spec/fixtures'
|
|
||||||
#require 'puppetlabs_spec_helper/puppetlabs_spec/puppet_internals'
|
|
||||||
require 'puppetlabs_spec_helper/puppetlabs_spec/matchers'
|
|
||||||
|
|
||||||
RSpec.configure do |config|
|
|
||||||
# Include PuppetlabsSpec helpers so they can be called at convenience
|
|
||||||
config.extend PuppetlabsSpec::Files
|
|
||||||
config.extend PuppetlabsSpec::Fixtures
|
|
||||||
config.include PuppetlabsSpec::Fixtures
|
|
||||||
|
|
||||||
config.parser = 'future' if ENV['FUTURE_PARSER'] == 'yes'
|
|
||||||
config.strict_variables = true if ENV['STRICT_VARIABLES'] == 'yes'
|
|
||||||
config.stringify_facts = false if ENV['STRINGIFY_FACTS'] == 'no'
|
|
||||||
config.trusted_node_data = true if ENV['TRUSTED_NODE_DATA'] == 'yes'
|
|
||||||
config.ordering = ENV['ORDERING'] if ENV['ORDERING']
|
|
||||||
|
|
||||||
# This will cleanup any files that were created with tmpdir or tmpfile
|
|
||||||
config.after :each do
|
|
||||||
PuppetlabsSpec::Files.cleanup
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
--format
|
|
||||||
s
|
|
||||||
--colour
|
|
||||||
--loadby
|
|
||||||
mtime
|
|
||||||
--backtrace
|
|
|
@ -1,49 +1,8 @@
|
||||||
#! /usr/bin/env ruby -S rspec
|
#This file is generated by ModuleSync, do not edit.
|
||||||
dir = File.expand_path(File.dirname(__FILE__))
|
|
||||||
$LOAD_PATH.unshift File.join(dir, 'lib')
|
|
||||||
|
|
||||||
# So everyone else doesn't have to include this base constant.
|
|
||||||
module PuppetSpec
|
|
||||||
FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), "fixtures") unless defined?(FIXTURE_DIR)
|
|
||||||
end
|
|
||||||
|
|
||||||
require 'puppet'
|
|
||||||
require 'rspec-puppet'
|
|
||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
require 'monkey_patches/alias_should_to_must'
|
|
||||||
require 'mocha/api'
|
|
||||||
#require 'puppetlabs_spec_helper/module_spec_helper'
|
|
||||||
require 'puppetlabs_spec_helper_clone'
|
|
||||||
|
|
||||||
# hack to enable all the expect syntax (like allow_any_instance_of) in rspec-puppet examples
|
# put local configuration and setup into spec_helper_local
|
||||||
RSpec::Mocks::Syntax.enable_expect(RSpec::Puppet::ManifestMatchers)
|
begin
|
||||||
|
require 'spec_helper_local'
|
||||||
RSpec.configure do |config|
|
rescue LoadError
|
||||||
config.module_path = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'modules')
|
|
||||||
config.manifest_dir = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'manifests')
|
|
||||||
config.environmentpath = spec_path = File.expand_path(File.join(Dir.pwd, 'spec'))
|
|
||||||
|
|
||||||
config.add_setting :puppet_future
|
|
||||||
#config.puppet_future = (ENV['FUTURE_PARSER'] == 'yes' or Puppet.version.to_f >= 4.0)
|
|
||||||
config.puppet_future = Puppet.version.to_f >= 4.0
|
|
||||||
|
|
||||||
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.clear
|
|
||||||
Facter.clear_messages
|
|
||||||
|
|
||||||
RSpec::Mocks.setup
|
|
||||||
end
|
|
||||||
|
|
||||||
config.after :each do
|
|
||||||
RSpec::Mocks.verify
|
|
||||||
RSpec::Mocks.teardown
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Helper class to test handling of arguments which are derived from string
|
|
||||||
class AlsoString < String
|
|
||||||
end
|
end
|
||||||
|
|
29
spec/spec_helper_local.rb
Normal file
29
spec/spec_helper_local.rb
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
# hack to enable all the expect syntax (like allow_any_instance_of) in rspec-puppet examples
|
||||||
|
RSpec::Mocks::Syntax.enable_expect(RSpec::Puppet::ManifestMatchers)
|
||||||
|
|
||||||
|
RSpec.configure do |config|
|
||||||
|
# supply tests with a possibility to test for the future parser
|
||||||
|
config.add_setting :puppet_future
|
||||||
|
config.puppet_future = Puppet.version.to_f >= 4.0
|
||||||
|
|
||||||
|
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.clear
|
||||||
|
Facter.clear_messages
|
||||||
|
|
||||||
|
RSpec::Mocks.setup
|
||||||
|
end
|
||||||
|
|
||||||
|
config.after :each do
|
||||||
|
RSpec::Mocks.verify
|
||||||
|
RSpec::Mocks.teardown
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Helper class to test handling of arguments which are derived from string
|
||||||
|
class AlsoString < String
|
||||||
|
end
|
Loading…
Reference in a new issue