Skip to content

Commit 2e4610b

Browse files
committed
Use shared examples for facts
This extracts common sets of facts to shared examples to reduce duplication. It also makes it easier to actually provide correct OS facts and use modern facts.
1 parent e6477ce commit 2e4610b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+426
-2016
lines changed

spec/classes/apache_spec.rb

Lines changed: 11 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,7 @@
44

55
describe 'apache', type: :class do
66
context 'on a Debian OS' do
7-
let :facts do
8-
{
9-
id: 'root',
10-
kernel: 'Linux',
11-
lsbdistcodename: 'squeeze',
12-
osfamily: 'Debian',
13-
operatingsystem: 'Debian',
14-
operatingsystemrelease: '6',
15-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
16-
is_pe: false,
17-
}
18-
end
7+
include_examples 'Debian 6'
198

209
it { is_expected.to contain_class('apache::params') }
2110
it {
@@ -244,10 +233,7 @@
244233
end
245234

246235
context '8' do
247-
let :facts do
248-
super().merge(lsbdistcodename: 'jessie',
249-
operatingsystemrelease: '8.0.0')
250-
end
236+
include_examples 'Debian 8'
251237

252238
it {
253239
is_expected.to contain_file('/var/www/html').with(
@@ -265,11 +251,7 @@
265251
end
266252

267253
context 'on Ubuntu 14.04' do
268-
let :facts do
269-
super().merge(operatingsystem: 'Ubuntu',
270-
lsbdistrelease: '14.04',
271-
operatingsystemrelease: '14.04')
272-
end
254+
include_examples 'Ubuntu 14.04'
273255

274256
it {
275257
is_expected.to contain_file('/var/www/html').with(
@@ -280,17 +262,7 @@
280262
end
281263

282264
context 'on a RedHat 5 OS' do
283-
let :facts do
284-
{
285-
id: 'root',
286-
kernel: 'Linux',
287-
osfamily: 'RedHat',
288-
operatingsystem: 'RedHat',
289-
operatingsystemrelease: '5',
290-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
291-
is_pe: false,
292-
}
293-
end
265+
include_examples 'RedHat 5'
294266

295267
it { is_expected.to contain_class('apache::params') }
296268
it {
@@ -667,46 +639,24 @@
667639
end
668640

669641
context 'on Fedora 21' do
670-
let :facts do
671-
super().merge(operatingsystem: 'Fedora',
672-
lsbdistrelease: '21',
673-
operatingsystemrelease: '21')
674-
end
642+
include_examples 'Fedora 21'
675643

676644
it { is_expected.to contain_class('apache').with_apache_version('2.4') }
677645
end
678646
context 'on Fedora Rawhide' do
679-
let :facts do
680-
super().merge(operatingsystem: 'Fedora',
681-
lsbdistrelease: 'Rawhide',
682-
operatingsystemrelease: 'Rawhide')
683-
end
647+
include_examples 'Fedora Rawhide'
684648

685649
it { is_expected.to contain_class('apache').with_apache_version('2.4') }
686650
end
687651
# kinda obsolete
688652
context 'on Fedora 17' do
689-
let :facts do
690-
super().merge(operatingsystem: 'Fedora',
691-
lsbdistrelease: '17',
692-
operatingsystemrelease: '17')
693-
end
653+
include_examples 'Fedora 17'
694654

695655
it { is_expected.to contain_class('apache').with_apache_version('2.2') }
696656
end
697657
end
698658
context 'on a FreeBSD OS' do
699-
let :facts do
700-
{
701-
id: 'root',
702-
kernel: 'FreeBSD',
703-
osfamily: 'FreeBSD',
704-
operatingsystem: 'FreeBSD',
705-
operatingsystemrelease: '10',
706-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
707-
is_pe: false,
708-
}
709-
end
659+
include_examples 'FreeBSD 10'
710660

711661
it { is_expected.to contain_class('apache::params') }
712662
it { is_expected.to contain_class('apache::package').with('ensure' => 'present') }
@@ -764,17 +714,7 @@
764714
end
765715
end
766716
context 'on a Gentoo OS' do
767-
let :facts do
768-
{
769-
id: 'root',
770-
kernel: 'Linux',
771-
osfamily: 'Gentoo',
772-
operatingsystem: 'Gentoo',
773-
operatingsystemrelease: '3.16.1-gentoo',
774-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin',
775-
is_pe: false,
776-
}
777-
end
717+
include_examples 'Gentoo'
778718

779719
it { is_expected.to contain_class('apache::params') }
780720
it { is_expected.to contain_user('apache') }
@@ -805,17 +745,7 @@
805745
}
806746
end
807747
context 'on all OSes' do
808-
let :facts do
809-
{
810-
id: 'root',
811-
kernel: 'Linux',
812-
osfamily: 'RedHat',
813-
operatingsystem: 'RedHat',
814-
operatingsystemrelease: '6',
815-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
816-
is_pe: false,
817-
}
818-
end
748+
include_examples 'RedHat 6'
819749

820750
context 'with a custom apache_name parameter' do
821751
let :params do
@@ -900,11 +830,7 @@
900830
end
901831
end
902832
context 'with unsupported osfamily' do
903-
let :facts do
904-
{ osfamily: 'Darwin',
905-
operatingsystemrelease: '13.1.0',
906-
is_pe: false }
907-
end
833+
include_examples 'Darwin'
908834

909835
it { is_expected.to compile.and_raise_error(%r{Unsupported osfamily}) }
910836
end

spec/classes/mod/alias_spec.rb

Lines changed: 9 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -7,66 +7,25 @@
77

88
context 'default configuration with parameters' do
99
context 'on a Debian OS', :compile do
10-
let :facts do
11-
{
12-
id: 'root',
13-
kernel: 'Linux',
14-
lsbdistcodename: 'jessie',
15-
osfamily: 'Debian',
16-
operatingsystem: 'Debian',
17-
operatingsystemrelease: '8',
18-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
19-
is_pe: false,
20-
}
21-
end
10+
include_examples 'Debian 8'
2211

2312
it { is_expected.to contain_apache__mod('alias') }
2413
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/icons\/ "\/usr\/share\/apache2\/icons\/"}) }
2514
end
2615
context 'on a RedHat 6-based OS', :compile do
27-
let :facts do
28-
{
29-
id: 'root',
30-
kernel: 'Linux',
31-
osfamily: 'RedHat',
32-
operatingsystem: 'RedHat',
33-
operatingsystemrelease: '6',
34-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
35-
is_pe: false,
36-
}
37-
end
16+
include_examples 'RedHat 6'
3817

3918
it { is_expected.to contain_apache__mod('alias') }
4019
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/icons\/ "\/var\/www\/icons\/"}) }
4120
end
4221
context 'on a RedHat 7-based OS', :compile do
43-
let :facts do
44-
{
45-
id: 'root',
46-
kernel: 'Linux',
47-
osfamily: 'RedHat',
48-
operatingsystem: 'RedHat',
49-
operatingsystemrelease: '7',
50-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
51-
is_pe: false,
52-
}
53-
end
22+
include_examples 'RedHat 7'
5423

5524
it { is_expected.to contain_apache__mod('alias') }
5625
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/icons\/ "\/usr\/share\/httpd\/icons\/"}) }
5726
end
5827
context 'on a RedHat 8-based OS', :compile do
59-
let :facts do
60-
{
61-
id: 'root',
62-
kernel: 'Linux',
63-
osfamily: 'RedHat',
64-
operatingsystem: 'RedHat',
65-
operatingsystemrelease: '8',
66-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
67-
is_pe: false,
68-
}
69-
end
28+
include_examples 'RedHat 8'
7029

7130
it { is_expected.to contain_apache__mod('alias') }
7231
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/icons\/ "\/usr\/share\/httpd\/icons\/"}) }
@@ -75,62 +34,34 @@
7534
let :pre_condition do
7635
'class { apache: default_mods => false }'
7736
end
78-
let :facts do
79-
{
80-
id: 'root',
81-
kernel: 'Linux',
82-
osfamily: 'RedHat',
83-
operatingsystem: 'RedHat',
84-
operatingsystemrelease: '7',
85-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
86-
is_pe: false,
87-
}
88-
end
8937
let :params do
9038
{
9139
'icons_options' => 'foo',
9240
}
9341
end
9442

43+
include_examples 'RedHat 7'
44+
9545
it { is_expected.to contain_apache__mod('alias') }
9646
it { is_expected.to contain_file('alias.conf').with(content: %r{Options foo}) }
9747
end
9848
context 'with icons path change', :compile do
9949
let :pre_condition do
10050
'class { apache: default_mods => false }'
10151
end
102-
let :facts do
103-
{
104-
id: 'root',
105-
kernel: 'Linux',
106-
osfamily: 'RedHat',
107-
operatingsystem: 'RedHat',
108-
operatingsystemrelease: '7',
109-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
110-
is_pe: false,
111-
}
112-
end
11352
let :params do
11453
{
11554
'icons_prefix' => 'apache-icons',
11655
}
11756
end
11857

58+
include_examples 'RedHat 7'
59+
11960
it { is_expected.to contain_apache__mod('alias') }
12061
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/apache-icons\/ "\/usr\/share\/httpd\/icons\/"}) }
12162
end
12263
context 'on a FreeBSD OS', :compile do
123-
let :facts do
124-
{
125-
id: 'root',
126-
kernel: 'FreeBSD',
127-
osfamily: 'FreeBSD',
128-
operatingsystem: 'FreeBSD',
129-
operatingsystemrelease: '10',
130-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
131-
is_pe: false,
132-
}
133-
end
64+
include_examples 'FreeBSD 10'
13465

13566
it { is_expected.to contain_apache__mod('alias') }
13667
it { is_expected.to contain_file('alias.conf').with(content: %r{Alias \/icons\/ "\/usr\/local\/www\/apache24\/icons\/"}) }

spec/classes/mod/auth_cas_spec.rb

Lines changed: 3 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,7 @@
2424
end
2525

2626
context 'on a Debian OS', :compile do
27-
let :facts do
28-
{
29-
id: 'root',
30-
kernel: 'Linux',
31-
lsbdistcodename: 'jessie',
32-
osfamily: 'Debian',
33-
operatingsystem: 'Debian',
34-
operatingsystemrelease: '8',
35-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
36-
is_pe: false,
37-
}
38-
end
27+
include_examples 'Debian 8'
3928

4029
it { is_expected.to contain_class('apache::params') }
4130
it { is_expected.to contain_apache__mod('auth_cas') }
@@ -44,17 +33,7 @@
4433
it { is_expected.to contain_file('/var/cache/apache2/mod_auth_cas/').with_owner('www-data') }
4534
end
4635
context 'on a RedHat OS', :compile do
47-
let :facts do
48-
{
49-
id: 'root',
50-
kernel: 'Linux',
51-
osfamily: 'RedHat',
52-
operatingsystem: 'RedHat',
53-
operatingsystemrelease: '6',
54-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
55-
is_pe: false,
56-
}
57-
end
36+
include_examples 'RedHat 6'
5837

5938
it { is_expected.to contain_class('apache::params') }
6039
it { is_expected.to contain_apache__mod('auth_cas') }
@@ -68,17 +47,7 @@
6847
"class { 'apache': } apache::vhost { 'test.server': docroot => '/var/www/html', cas_root_proxied_as => 'http://test.server', cas_cookie_path => '/my/cas/path'} "
6948
end
7049

71-
let :facts do
72-
{
73-
id: 'root',
74-
kernel: 'Linux',
75-
osfamily: 'RedHat',
76-
operatingsystem: 'RedHat',
77-
operatingsystemrelease: '6',
78-
path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
79-
is_pe: false,
80-
}
81-
end
50+
include_examples 'RedHat 6'
8251

8352
it { is_expected.to contain_class('apache::params') }
8453
it { is_expected.to contain_apache__mod('auth_cas') }

0 commit comments

Comments
 (0)