Skip to content

Commit 7d7194d

Browse files
committed
add spec for 24.04
1 parent 92dfc73 commit 7d7194d

File tree

2 files changed

+145
-135
lines changed

2 files changed

+145
-135
lines changed

spec/classes/apt_backports_spec.rb

Lines changed: 117 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,20 @@
55
describe 'apt::backports', type: :class do
66
let(:pre_condition) { 'include apt' }
77

8-
describe 'debian/ubuntu tests' do
9-
context 'with defaults on debian' do
10-
let(:facts) do
11-
{
12-
os: {
13-
family: 'Debian',
14-
name: 'Debian',
15-
release: {
16-
full: '12.5',
17-
major: '12',
18-
minor: '5'
19-
},
20-
distro: {
21-
codename: 'bookworm',
22-
id: 'Debian'
23-
}
24-
}
25-
}
26-
end
27-
28-
it {
29-
expect(subject).to contain_apt__source('backports').with(
30-
location: 'http://deb.debian.org/debian',
31-
repos: 'main contrib non-free non-free-firmware',
32-
release: 'bookworm-backports',
33-
pin: {
34-
'priority' => 200,
35-
'codename' => 'bookworm-backports'
36-
},
37-
keyring: '/usr/share/keyrings/debian-archive-keyring.gpg',
38-
)
39-
}
40-
end
41-
42-
context 'with defaults on ubuntu' do
8+
# Shared examples for Ubuntu tests
9+
shared_examples 'ubuntu backports' do |release_major, release_full, codename|
10+
context "with defaults on ubuntu #{release_major}" do
4311
let(:facts) do
4412
{
4513
os: {
4614
family: 'Debian',
4715
name: 'Ubuntu',
4816
release: {
49-
major: '22.04',
50-
full: '22.04'
17+
major: release_major,
18+
full: release_full
5119
},
5220
distro: {
53-
codename: 'jammy',
21+
codename:,
5422
id: 'Ubuntu'
5523
}
5624
}
@@ -61,60 +29,28 @@
6129
expect(subject).to contain_apt__source('backports').with(
6230
location: 'http://archive.ubuntu.com/ubuntu',
6331
repos: 'main universe multiverse restricted',
64-
release: 'jammy-backports',
32+
release: "#{codename}-backports",
6533
pin: {
6634
'priority' => 200,
67-
'release' => 'jammy-backports'
35+
'release' => "#{codename}-backports"
6836
},
6937
keyring: '/usr/share/keyrings/ubuntu-archive-keyring.gpg',
7038
)
7139
}
7240
end
7341

74-
context 'with defaults on ubuntu 24.04' do
42+
context "with everything set on ubuntu #{release_major}" do
7543
let(:facts) do
7644
{
7745
os: {
7846
family: 'Debian',
7947
name: 'Ubuntu',
8048
release: {
81-
major: '24.04',
82-
full: '24.04'
49+
major: release_major,
50+
full: release_full
8351
},
8452
distro: {
85-
codename: 'noble',
86-
id: 'Ubuntu'
87-
}
88-
}
89-
}
90-
end
91-
92-
it {
93-
expect(subject).to contain_apt__source('backports').with(
94-
location: 'http://archive.ubuntu.com/ubuntu',
95-
repos: 'main universe multiverse restricted',
96-
release: 'noble-backports',
97-
pin: {
98-
'priority' => 200,
99-
'release' => 'noble-backports'
100-
},
101-
keyring: '/usr/share/keyrings/ubuntu-archive-keyring.gpg',
102-
)
103-
}
104-
end
105-
106-
context 'with everything set' do
107-
let(:facts) do
108-
{
109-
os: {
110-
family: 'Debian',
111-
name: 'Ubuntu',
112-
release: {
113-
major: '22.04',
114-
full: '22.04'
115-
},
116-
distro: {
117-
codename: 'jammy',
53+
codename:,
11854
id: 'Ubuntu'
11955
}
12056
}
@@ -141,18 +77,18 @@
14177
}
14278
end
14379

144-
context 'when set things with hashes' do
80+
context "when set things with hashes on ubuntu #{release_major}" do
14581
let(:facts) do
14682
{
14783
os: {
14884
family: 'Debian',
14985
name: 'Ubuntu',
15086
release: {
151-
major: '22.04',
152-
full: '22.04'
87+
major: release_major,
88+
full: release_full
15389
},
15490
distro: {
155-
codename: 'jammy',
91+
codename:,
15692
id: 'Ubuntu'
15793
}
15894
}
@@ -178,82 +114,128 @@
178114
end
179115
end
180116

181-
describe 'validation' do
182-
let(:facts) do
183-
{
184-
os: {
185-
family: 'Debian',
186-
name: 'Ubuntu',
187-
release: {
188-
major: '22.04',
189-
full: '22.04'
190-
},
191-
distro: {
192-
codename: 'jammy',
193-
id: 'Ubuntu'
194-
}
195-
}
196-
}
197-
end
198-
199-
context 'with invalid location' do
200-
let(:params) do
117+
# Shared examples for validation tests
118+
shared_examples 'validation tests' do |release_major, release_full, codename|
119+
describe "validation on ubuntu #{release_major}" do
120+
let(:facts) do
201121
{
202-
location: true
122+
os: {
123+
family: 'Debian',
124+
name: 'Ubuntu',
125+
release: {
126+
major: release_major,
127+
full: release_full
128+
},
129+
distro: {
130+
codename:,
131+
id: 'Ubuntu'
132+
}
133+
}
203134
}
204135
end
205136

206-
it do
207-
expect(subject).to raise_error(Puppet::Error, %r{expects a})
208-
end
209-
end
137+
context 'with invalid location' do
138+
let(:params) do
139+
{
140+
location: true
141+
}
142+
end
210143

211-
context 'with invalid release' do
212-
let(:params) do
213-
{
214-
release: true
215-
}
144+
it do
145+
expect(subject).to raise_error(Puppet::Error, %r{expects a})
146+
end
216147
end
217148

218-
it do
219-
expect(subject).to raise_error(Puppet::Error, %r{expects a})
220-
end
221-
end
149+
context 'with invalid release' do
150+
let(:params) do
151+
{
152+
release: true
153+
}
154+
end
222155

223-
context 'with invalid repos' do
224-
let(:params) do
225-
{
226-
repos: true
227-
}
156+
it do
157+
expect(subject).to raise_error(Puppet::Error, %r{expects a})
158+
end
228159
end
229160

230-
it do
231-
expect(subject).to raise_error(Puppet::Error, %r{expects a})
161+
context 'with invalid repos' do
162+
let(:params) do
163+
{
164+
repos: true
165+
}
166+
end
167+
168+
it do
169+
expect(subject).to raise_error(Puppet::Error, %r{expects a})
170+
end
232171
end
233-
end
234172

235-
context 'with invalid key' do
236-
let(:params) do
237-
{
238-
key: true
239-
}
173+
context 'with invalid key' do
174+
let(:params) do
175+
{
176+
key: true
177+
}
178+
end
179+
180+
it do
181+
expect(subject).to raise_error(Puppet::Error, %r{expects a})
182+
end
240183
end
241184

242-
it do
243-
expect(subject).to raise_error(Puppet::Error, %r{expects a})
185+
context 'with invalid pin' do
186+
let(:params) do
187+
{
188+
pin: true
189+
}
190+
end
191+
192+
it do
193+
expect(subject).to raise_error(Puppet::Error, %r{expects a})
194+
end
244195
end
245196
end
197+
end
246198

247-
context 'with invalid pin' do
248-
let(:params) do
199+
describe 'debian/ubuntu tests' do
200+
context 'with defaults on debian' do
201+
let(:facts) do
249202
{
250-
pin: true
203+
os: {
204+
family: 'Debian',
205+
name: 'Debian',
206+
release: {
207+
full: '12.5',
208+
major: '12',
209+
minor: '5'
210+
},
211+
distro: {
212+
codename: 'bookworm',
213+
id: 'Debian'
214+
}
215+
}
251216
}
252217
end
253218

254-
it do
255-
expect(subject).to raise_error(Puppet::Error, %r{expects a})
256-
end
219+
it {
220+
expect(subject).to contain_apt__source('backports').with(
221+
location: 'http://deb.debian.org/debian',
222+
repos: 'main contrib non-free non-free-firmware',
223+
release: 'bookworm-backports',
224+
pin: {
225+
'priority' => 200,
226+
'codename' => 'bookworm-backports'
227+
},
228+
keyring: '/usr/share/keyrings/debian-archive-keyring.gpg',
229+
)
230+
}
257231
end
232+
233+
# Include shared examples for Ubuntu versions
234+
include_examples 'ubuntu backports', '22.04', '22.04', 'jammy'
235+
include_examples 'ubuntu backports', '24.04', '24.04', 'noble'
258236
end
237+
238+
# Include shared validation examples for Ubuntu versions
239+
include_examples 'validation tests', '22.04', '22.04', 'jammy'
240+
include_examples 'validation tests', '24.04', '24.04', 'noble'
259241
end

spec/classes/apt_spec.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,34 @@
358358
}
359359
}
360360
},
361+
'Ubuntu 22.04' => {
362+
os: {
363+
family: 'Debian',
364+
name: 'Ubuntu',
365+
release: {
366+
major: '22.04',
367+
full: '22.04'
368+
},
369+
distro: {
370+
codename: 'jammy',
371+
id: 'Ubuntu'
372+
}
373+
}
374+
},
375+
'Ubuntu 24.04' => {
376+
os: {
377+
family: 'Debian',
378+
name: 'Ubuntu',
379+
release: {
380+
major: '24.04',
381+
full: '24.04'
382+
},
383+
distro: {
384+
codename: 'noble',
385+
id: 'Ubuntu'
386+
}
387+
}
388+
},
361389
'Debian 9.0' => {
362390
os: {
363391
family: 'Debian',

0 commit comments

Comments
 (0)