Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM puppet/pdk:latest
FROM docker.io/puppet/pdk:latest

# [Optional] Uncomment this section to install additional packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
Expand Down
3 changes: 2 additions & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
"operatingsystemrelease": [
"18.04",
"20.04",
"22.04"
"22.04",
"24.04"
]
}
],
Expand Down
6 changes: 6 additions & 0 deletions provision.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ docker_ub_6:
images:
- litmusimage/ubuntu:18.04
- litmusimage/ubuntu:20.04
- litmusimage/ubuntu:22.04
- litmusimage/ubuntu:24.04
docker_el7:
provisioner: docker
images: []
Expand All @@ -28,10 +30,14 @@ release_checks_6:
- debian-10-x86_64
- ubuntu-1804-x86_64
- ubuntu-2004-x86_64
- ubuntu-2204-x86_64
- ubuntu-2404-x86_64
release_checks_7:
provisioner: abs
images:
- debian-9-x86_64
- debian-10-x86_64
- ubuntu-1804-x86_64
- ubuntu-2004-x86_64
- ubuntu-2204-x86_64
- ubuntu-2404-x86_64
220 changes: 117 additions & 103 deletions spec/classes/apt_backports_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,52 +5,20 @@
describe 'apt::backports', type: :class do
let(:pre_condition) { 'include apt' }

describe 'debian/ubuntu tests' do
context 'with defaults on debian' do
let(:facts) do
{
os: {
family: 'Debian',
name: 'Debian',
release: {
full: '12.5',
major: '12',
minor: '5'
},
distro: {
codename: 'bookworm',
id: 'Debian'
}
}
}
end

it {
expect(subject).to contain_apt__source('backports').with(
location: 'http://deb.debian.org/debian',
repos: 'main contrib non-free non-free-firmware',
release: 'bookworm-backports',
pin: {
'priority' => 200,
'codename' => 'bookworm-backports'
},
keyring: '/usr/share/keyrings/debian-archive-keyring.gpg',
)
}
end

context 'with defaults on ubuntu' do
# Shared examples for Ubuntu tests
shared_examples 'ubuntu backports' do |release_major, release_full, codename|
context "with defaults on ubuntu #{release_major}" do
let(:facts) do
{
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '22.04',
full: '22.04'
major: release_major,
full: release_full
},
distro: {
codename: 'jammy',
codename:,
id: 'Ubuntu'
}
}
Expand All @@ -61,28 +29,28 @@
expect(subject).to contain_apt__source('backports').with(
location: 'http://archive.ubuntu.com/ubuntu',
repos: 'main universe multiverse restricted',
release: 'jammy-backports',
release: "#{codename}-backports",
pin: {
'priority' => 200,
'release' => 'jammy-backports'
'release' => "#{codename}-backports"
},
keyring: '/usr/share/keyrings/ubuntu-archive-keyring.gpg',
)
}
end

context 'with everything set' do
context "with everything set on ubuntu #{release_major}" do
let(:facts) do
{
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '22.04',
full: '22.04'
major: release_major,
full: release_full
},
distro: {
codename: 'jammy',
codename:,
id: 'Ubuntu'
}
}
Expand All @@ -109,18 +77,18 @@
}
end

context 'when set things with hashes' do
context "when set things with hashes on ubuntu #{release_major}" do
let(:facts) do
{
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '22.04',
full: '22.04'
major: release_major,
full: release_full
},
distro: {
codename: 'jammy',
codename:,
id: 'Ubuntu'
}
}
Expand All @@ -146,82 +114,128 @@
end
end

describe 'validation' do
let(:facts) do
{
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '22.04',
full: '22.04'
},
distro: {
codename: 'jammy',
id: 'Ubuntu'
}
}
}
end

context 'with invalid location' do
let(:params) do
# Shared examples for validation tests
shared_examples 'validation tests' do |release_major, release_full, codename|
describe "validation on ubuntu #{release_major}" do
let(:facts) do
{
location: true
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: release_major,
full: release_full
},
distro: {
codename:,
id: 'Ubuntu'
}
}
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end
context 'with invalid location' do
let(:params) do
{
location: true
}
end

context 'with invalid release' do
let(:params) do
{
release: true
}
it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end
context 'with invalid release' do
let(:params) do
{
release: true
}
end

context 'with invalid repos' do
let(:params) do
{
repos: true
}
it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
context 'with invalid repos' do
let(:params) do
{
repos: true
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end
end

context 'with invalid key' do
let(:params) do
{
key: true
}
context 'with invalid key' do
let(:params) do
{
key: true
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
context 'with invalid pin' do
let(:params) do
{
pin: true
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
end
end
end

context 'with invalid pin' do
let(:params) do
describe 'debian/ubuntu tests' do
context 'with defaults on debian' do
let(:facts) do
{
pin: true
os: {
family: 'Debian',
name: 'Debian',
release: {
full: '12.5',
major: '12',
minor: '5'
},
distro: {
codename: 'bookworm',
id: 'Debian'
}
}
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{expects a})
end
it {
expect(subject).to contain_apt__source('backports').with(
location: 'http://deb.debian.org/debian',
repos: 'main contrib non-free non-free-firmware',
release: 'bookworm-backports',
pin: {
'priority' => 200,
'codename' => 'bookworm-backports'
},
keyring: '/usr/share/keyrings/debian-archive-keyring.gpg',
)
}
end

# Include shared examples for Ubuntu versions
include_examples 'ubuntu backports', '22.04', '22.04', 'jammy'
include_examples 'ubuntu backports', '24.04', '24.04', 'noble'
end

# Include shared validation examples for Ubuntu versions
include_examples 'validation tests', '22.04', '22.04', 'jammy'
include_examples 'validation tests', '24.04', '24.04', 'noble'
end
28 changes: 28 additions & 0 deletions spec/classes/apt_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,34 @@
}
}
},
'Ubuntu 22.04' => {
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '22.04',
full: '22.04'
},
distro: {
codename: 'jammy',
id: 'Ubuntu'
}
}
},
'Ubuntu 24.04' => {
os: {
family: 'Debian',
name: 'Ubuntu',
release: {
major: '24.04',
full: '24.04'
},
distro: {
codename: 'noble',
id: 'Ubuntu'
}
}
},
'Debian 9.0' => {
os: {
family: 'Debian',
Expand Down
Loading