Skip to content

Commit

Permalink
Merge pull request #1247 from puppetlabs/MAINT-fix_package_tests
Browse files Browse the repository at this point in the history
(MAINT) Fix package tests
  • Loading branch information
GSPatton authored May 26, 2023
2 parents 1e46f19 + 0fbf15c commit 6651b2c
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 32 deletions.
3 changes: 3 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,3 +167,6 @@ PDK/FileUtilsRemoveEntrySecure:
Exclude:
- lib/pdk/util/filesystem.rb
- spec/acceptance/**/*.rb

RSpec/SharedExamples:
Enabled: false
5 changes: 3 additions & 2 deletions package-testing/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ source ENV.fetch('GEM_SOURCE', nil) || 'https://rubygems.org'

gem 'beaker', '~> 4.39'
gem 'beaker-abs', '~> 0.11.0'
gem 'beaker-hostgenerator', '~> 1.18.1'
gem 'beaker-hostgenerator', '~> 2.2.0'
gem 'beaker-puppet', '= 1.29.0'
gem 'beaker-rspec', '= 7.1.0'
gem 'beaker-vmpooler', '= 1.4.0'
Expand All @@ -13,5 +13,6 @@ gem 'rake'
gem 'win32-security', require: false if File::ALT_SEPARATOR

group :development do
gem 'pry-byebug', '~> 3.4'
gem 'pry'
gem 'pry-stack_explorer'
end
2 changes: 1 addition & 1 deletion package-testing/config/options.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
ssh: {
# keys: ['~/.ssh/id_rsa-acceptance'],
keys: ['~/.ssh/id_rsa-acceptance'],
verify_host_key: :never
},
preserve_hosts: 'onfail',
Expand Down
10 changes: 4 additions & 6 deletions package-testing/spec/package/update_module_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
require 'json'

modules = [
'puppetlabs/puppetlabs-motd',
'puppetlabs/puppetlabs-concat',
'puppetlabs/puppetlabs-inifile'
'puppetlabs/puppetlabs-motd'
]

describe 'Updating an existing module' do
modules.each do |mod|
context "when updating #{mod}" do
metadata = JSON.parse(open("https://raw.githubusercontent.com/#{mod}/main/metadata.json").read)
metadata = JSON.parse(URI.open("https://raw.githubusercontent.com/#{mod}/main/metadata.json").read)
metadata['template-url'] = 'pdk-default#main'
repo_dir = File.join(home_dir, metadata['name'])

Expand All @@ -24,7 +22,7 @@
module_dir = File.join(home_dir(true), metadata['name'])
create_remote_file(get_working_node, File.join(module_dir, 'metadata.json'), metadata.to_json)

sync_yaml = YAML.safe_load(open("https://raw.githubusercontent.com/#{mod}/main/.sync.yml").read)
sync_yaml = YAML.safe_load(URI.open("https://raw.githubusercontent.com/#{mod}/main/.sync.yml").read)

sync_yaml['Gemfile'].each_key do |gem_type|
next unless sync_yaml['Gemfile'][gem_type].respond_to?(:each_key)
Expand Down Expand Up @@ -53,7 +51,7 @@
subject { super().stdout.split("\n") }

it 'does not output any unexpected errors' do
expect(subject).to all(match(/\((?:info|warning|error)\): (?:puppet-lint|rubocop|task-metadata-lint|task-name|puppet-epp)/i))
expect(subject).to all(match(/\((?:convention|info|warning|error)\): (?:puppet-lint|rubocop|task-metadata-lint|task-name|puppet-epp)/i))
end
end
end
Expand Down
27 changes: 9 additions & 18 deletions package-testing/spec/package/version_selection_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,45 +3,36 @@
describe 'Test puppet & ruby version selection' do
module_name = 'version_selection'
test_cases = [
{ envvar: 'PDK_PUPPET_VERSION', version: '6.29.0', expected_puppet: '6.29', expected_ruby: '2.5.9' },
{ envvar: 'PDK_PUPPET_VERSION', version: '7.23.0', expected_puppet: '7.23', expected_ruby: '2.7.7' },
# PE should now map to the latest Puppet version relative to the PE version
{ envvar: 'PDK_PE_VERSION', version: '2019.8.7', expected_puppet: '6.29', expected_ruby: '2.5.9' },
{ envvar: 'PDK_PE_VERSION', version: '2021.7.0', expected_puppet: '7.23', expected_ruby: '2.7.7' },
{ envvar: 'PDK_PE_VERSION', version: '2021.7.1', expected_puppet: '7.23', expected_ruby: '2.7.7' }
{ envvar: 'PDK_PUPPET_VERSION', version: '7.24.0', expected_puppet: '7.24.0', expected_ruby: '2.7.8' },
{ envvar: 'PDK_PUPPET_VERSION', version: '8.0.1', expected_puppet: '8.0.1', expected_ruby: '3.2.2' }
]

before(:all) do
command("pdk new module #{module_name} --skip-interview").run
end

test_cases.each do |test_case|
slug = test_case[:envvar] == 'PDK_PE_VERSION' ? 'PE' : 'Puppet'

context "Select #{slug} #{test_case[:version]}" do
context "Select Puppet #{test_case[:version]}" do
let(:env) { { test_case[:envvar] => test_case[:version] } }
let(:cwd) { module_name }

let(:expected_puppets) do
gemspecs = shell("find #{install_dir(true)} -name 'puppet-#{test_case[:expected_puppet]}.*.gemspec'")
puppet_versions = gemspecs.stdout.lines.map { |r| r[/puppet-([\d.]+)(-.+?)?\.gemspec\Z/, 1] }
puppet_versions.map { |r| Regexp.escape(r) }.join('|')
end
let(:expected_puppet) { Regexp.escape(test_case[:expected_puppet]) }
let(:expected_ruby) { Regexp.escape(test_case[:expected_ruby]) }

describe command('rm Gemfile.lock; pdk bundle update --local') do
its(:exit_status) { is_expected.to eq(0) }
end

describe command('pdk bundle exec puppet --version') do
its(:exit_status) { is_expected.to eq(0) }
its(:stderr) { is_expected.to match(/using puppet (#{expected_puppets})/im) }
its(:stdout) { is_expected.to match(/^(#{expected_puppets})$/im) }
its(:stderr) { is_expected.to match(/using puppet (#{expected_puppet})/im) }
its(:stdout) { is_expected.to match(/^(#{expected_puppet})*/im) }
end

describe command('pdk bundle exec ruby --version') do
its(:exit_status) { is_expected.to eq(0) }
its(:stderr) { is_expected.to match(/using ruby #{Regexp.escape(test_case[:expected_ruby])}[.0-9]*/im) }
its(:stdout) { is_expected.to match(/^ruby #{Regexp.escape(test_case[:expected_ruby])}[.0-9]*p/im) }
its(:stderr) { is_expected.to match(/using ruby #{expected_ruby}*/im) }
its(:stdout) { is_expected.to match(/^(#{expected_ruby})*/im) }
end
end
end
Expand Down
13 changes: 8 additions & 5 deletions package-testing/spec/spec_helper_package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@

Dir['./spec/package/support/*.rb'].sort.each { |f| require f }

RSpec.shared_context 'set path' do
let(:path) { windows_node? ? nil : "#{install_dir}/bin:$PATH" }
end
include SpecUtils # rubocop:disable Style/MixinUsage

set :env, PDK_DISABLE_ANALYTICS: 'true'

bin_path = SpecUtils.windows_node? ? 'bin$PATH' : 'bin:$PATH'
set :path, "#{SpecUtils.install_dir}/#{bin_path}"

hosts.each do |host|
install_pdk_on(host)
end

RSpec.configure do |c|
c.include SpecUtils
c.extend SpecUtils
Expand All @@ -19,8 +24,6 @@
end
end

c.include_context :set_path

# rubocop:disable RSpec/BeforeAfterAll
c.before(:all) do
RSpec.configuration.logger.log_level = :warn
Expand Down

0 comments on commit 6651b2c

Please sign in to comment.