Skip to content

Commit

Permalink
(MAINT) Fix package tests
Browse files Browse the repository at this point in the history
Prior to the changes in this commit the package tests were failing for
Windows platforms.
  • Loading branch information
chelnak committed May 26, 2023
1 parent 1e46f19 commit 0fbf15c
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 0fbf15c

Please sign in to comment.