Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Projets publics
Puppet Camptocamp Postfix
Commits
e81564f0
Commit
e81564f0
authored
Mar 25, 2015
by
Mickaël Canévet
Browse files
Manage unit tests with rspec-puppet-facts
parent
745509f3
Changes
10
Hide whitespace changes
Inline
Side-by-side
metadata.json
View file @
e81564f0
...
...
@@ -48,7 +48,8 @@
"operatingsystem"
:
"RedHat"
,
"operatingsystemrelease"
:
[
"5"
,
"6"
"6"
,
"7"
]
}
],
...
...
spec/classes/postfix_augeas_spec.rb
View file @
e81564f0
require
'spec_helper'
describe
'postfix::augeas'
do
let
(
:facts
)
{
{
:augeasversion
=>
'1.2.0'
,
:lsbdistcodename
=>
'wheezy'
,
:operatingsystem
=>
'Debian'
,
:osfamily
=>
'Debian'
,
:rubyversion
=>
'1.9.3'
,
:path
=>
'/foo/bar'
,
}
}
let
:pre_condition
do
"include ::augeas"
end
it
{
is_expected
.
to
contain_augeas__lens
(
'postfix_transport'
).
with
(
:ensure
=>
'present'
,
:lens_source
=>
'puppet:///modules/postfix/lenses/postfix_transport.aug'
,
:test_source
=>
'puppet:///modules/postfix/lenses/test_postfix_transport.aug'
,
:stock_since
=>
'1.0.0'
)
}
it
{
is_expected
.
to
contain_augeas__lens
(
'postfix_virtual'
).
with
(
:ensure
=>
'present'
,
:lens_source
=>
'puppet:///modules/postfix/lenses/postfix_virtual.aug'
,
:test_source
=>
'puppet:///modules/postfix/lenses/test_postfix_virtual.aug'
,
:stock_since
=>
'1.0.0'
)
}
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
do
facts
.
merge
({
:augeasversion
=>
'1.2.0'
,
})
end
it
{
is_expected
.
to
compile
.
with_all_deps
}
it
{
is_expected
.
to
contain_augeas__lens
(
'postfix_transport'
).
with
({
:ensure
=>
'present'
,
:lens_source
=>
'puppet:///modules/postfix/lenses/postfix_transport.aug'
,
:test_source
=>
'puppet:///modules/postfix/lenses/test_postfix_transport.aug'
,
:stock_since
=>
'1.0.0'
,
}
)
}
it
{
is_expected
.
to
contain_augeas__lens
(
'postfix_virtual'
).
with
({
:ensure
=>
'present'
,
:lens_source
=>
'puppet:///modules/postfix/lenses/postfix_virtual.aug'
,
:test_source
=>
'puppet:///modules/postfix/lenses/test_postfix_virtual.aug'
,
:stock_since
=>
'1.0.0'
,
})
}
end
end
end
spec/classes/postfix_mailman_spec.rb
View file @
e81564f0
require
'spec_helper'
describe
'postfix::mailman'
do
let
:pre_condition
do
"include ::postfix"
end
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
do
facts
end
it
{
is_expected
.
to
compile
.
with_all_deps
}
end
end
end
spec/classes/postfix_mta_spec.rb
View file @
e81564f0
require
'spec_helper'
describe
'postfix::mta'
do
let
(
:facts
)
{
{
:lsbdistcodename
=>
'wheezy'
,
:osfamily
=>
'Debian'
,
:path
=>
'/foo/bar'
,
}
}
let
:pre_condition
do
"class { 'postfix':
mydestination => 'bar',
...
...
@@ -14,7 +9,16 @@ describe 'postfix::mta' do
}"
end
it
{
is_expected
.
to
contain_postfix__config
(
'mydestination'
).
with_value
(
'bar'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'mynetworks'
).
with_value
(
'127.0.0.1/8, [::1]/128 ![::2]/128'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'relayhost'
).
with_value
(
'foo'
)
}
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
do
facts
end
it
{
is_expected
.
to
compile
.
with_all_deps
}
it
{
is_expected
.
to
contain_postfix__config
(
'mydestination'
).
with_value
(
'bar'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'mynetworks'
).
with_value
(
'127.0.0.1/8, [::1]/128 ![::2]/128'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'relayhost'
).
with_value
(
'foo'
)
}
end
end
end
spec/classes/postfix_satellite_spec.rb
View file @
e81564f0
require
'spec_helper'
describe
'postfix::satellite'
do
let
(
:node
)
{
'foo.example.com'
}
let
(
:facts
)
{
{
:augeasversion
=>
'1.2.0'
,
:lsbdistcodename
=>
'wheezy'
,
:osfamily
=>
'Debian'
,
:rubyversion
=>
'1.9.3'
,
:path
=>
'/foo/bar'
,
}
}
let
:pre_condition
do
" class { 'augeas': }
class { 'postfix':
...
...
@@ -17,9 +9,21 @@ describe 'postfix::satellite' do
mynetworks => 'baz',
}"
end
it
{
is_expected
.
to
contain_class
(
'postfix::mta'
)
}
it
{
is_expected
.
to
contain_postfix__virtual
(
'@foo.example.com'
).
with
(
:ensure
=>
'present'
,
:destination
=>
'root'
)
}
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
do
facts
.
merge
({
:augeasversion
=>
'1.2.0'
,
})
end
it
{
is_expected
.
to
compile
.
with_all_deps
}
it
{
is_expected
.
to
contain_class
(
'postfix::mta'
)
}
it
{
is_expected
.
to
contain_postfix__virtual
(
'@foo.example.com'
).
with
(
:ensure
=>
'present'
,
:destination
=>
'root'
)
}
end
end
end
spec/classes/postfix_spec.rb
View file @
e81564f0
require
'spec_helper'
describe
'postfix'
do
context
'when using defaults'
do
context
'when on Debian'
do
let
(
:facts
)
{
{
:lsbdistcodename
=>
'wheezy'
,
:operatingsystem
=>
'Debian'
,
:osfamily
=>
'Debian'
,
:fqdn
=>
'fqdn.example.com'
,
:path
=>
'/foo/bar'
,
}
}
it
{
is_expected
.
to
contain_package
(
'postfix'
)
}
it
{
is_expected
.
to
contain_package
(
'mailx'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/mailname'
).
without
(
'seltype'
).
with_content
(
"fqdn.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/aliases'
).
without
(
'seltype'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_exec
(
'newaliases'
).
with_refreshonly
(
'true'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
without
(
'seltype'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/main.cf'
).
without
(
'seltype'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'fqdn.example.com'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'alias_maps'
).
with_value
(
'hash:/etc/aliases'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'all'
)
}
it
{
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'nobody'
)
}
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/etc/init.d/postfix reload'
)
}
end
context
'when on RedHat'
do
let
(
:facts
)
{
{
:fqdn
=>
'fqdn.example.com'
,
:operatingsystem
=>
'RedHat'
,
:operatingsystemmajrelease
=>
'7'
,
:osfamily
=>
'RedHat'
,
:path
=>
'/foo/bar'
,
}
}
it
{
is_expected
.
to
contain_package
(
'postfix'
)
}
it
{
is_expected
.
to
contain_package
(
'mailx'
)
}
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
do
facts
.
merge
({
:augeasversion
=>
'1.2.0'
,
})
end
it
{
is_expected
.
to
contain_file
(
'/etc/mailname'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
"fqdn.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/aliases'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_exec
(
'newaliases'
).
with_refreshonly
(
'true'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
with_seltype
(
'postfix_etc_t'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/main.cf'
).
with_seltype
(
'postfix_etc_t'
)
}
context
'when using defaults'
do
it
{
is_expected
.
to
contain_package
(
'postfix'
)
}
it
{
is_expected
.
to
contain_package
(
'mailx'
)
}
it
{
is_expected
.
to
contain_exec
(
'newaliases'
).
with_refreshonly
(
'true'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'foo.example.com'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'alias_maps'
).
with_value
(
'hash:/etc/aliases'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'all'
)
}
it
{
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'nobody'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'fqdn.example.com'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'alias_maps'
).
with_value
(
'hash:/etc/aliases'
)
}
it
{
is_expected
.
to
contain_
postfix__config
(
'inet_interfaces'
).
with_value
(
'all'
)
}
it
{
is_expected
.
to
contain_
postfix__config
(
'sendmail_path'
)
}
it
{
is_expected
.
to
contain_
postfix__config
(
'newaliases_path
'
)
}
it
{
is_expected
.
to
contain_
postfix__config
(
'mailq_path
'
)
}
case
facts
[
:osfamily
]
when
'Debian'
it
{
is_expected
.
to
contain_
file
(
'/etc/mailname'
).
without
(
'seltype'
).
with_content
(
"foo.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_
file
(
'/etc/aliases'
).
without
(
'seltype'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_
file
(
'/etc/postfix/master.cf'
).
without
(
'seltype
'
)
}
it
{
is_expected
.
to
contain_
file
(
'/etc/postfix/main.cf'
).
without
(
'seltype
'
)
}
it
{
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'nobody'
)
}
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/etc/init.d/postfix reload'
)
}
else
it
{
is_expected
.
to
contain_file
(
'/etc/mailname'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
"foo.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/aliases'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
with_seltype
(
'postfix_etc_t'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/main.cf'
).
with_seltype
(
'postfix_etc_t'
)
}
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/bin/systemctl reload postfix'
)
}
end
end
it
{
is_expected
.
to
contain_postfix__config
(
'sendmail_path'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'newaliases_path'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'mailq_path'
)
}
context
'when setting parameters'
do
context
'when on Debian'
do
context
"when setting smtp_listen to 'all'"
do
let
(
:facts
)
{
{
:lsbdistcodename
=>
'wheezy'
,
:operatingsystem
=>
'Debian'
,
:osfamily
=>
'Debian'
,
:fqdn
=>
'fqdn.example.com'
,
:path
=>
'/foo/bar'
,
}
}
case
facts
[
:operatingsystemmajrelease
]
when
'7'
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/bin/systemctl reload postfix'
)
}
else
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/etc/init.d/postfix reload'
)
}
end
end
end
let
(
:params
)
{
{
:smtp_listen
=>
'all'
,
:root_mail_recipient
=>
'foo'
,
:use_amavisd
=>
true
,
:use_dovecot_lda
=>
true
,
:use_schleuder
=>
true
,
:use_sympa
=>
true
,
:mail_user
=>
'bar'
,
:myorigin
=>
'localhost'
,
:inet_interfaces
=>
'localhost2'
,
:master_smtp
=>
"smtp inet n - - - - smtpd
context
'when setting parameters'
do
case
facts
[
:osfamily
]
when
'Debian'
context
"when setting smtp_listen to 'all'"
do
let
(
:params
)
{
{
:smtp_listen
=>
'all'
,
:root_mail_recipient
=>
'foo'
,
:use_amavisd
=>
true
,
:use_dovecot_lda
=>
true
,
:use_schleuder
=>
true
,
:use_sympa
=>
true
,
:mail_user
=>
'bar'
,
:myorigin
=>
'localhost'
,
:inet_interfaces
=>
'localhost2'
,
:master_smtp
=>
"smtp inet n - - - - smtpd
-o smtpd_client_restrictions=check_client_access,hash:/etc/postfix/access,reject"
,
:master_smtps
=>
'smtps inet n - - - - smtpd'
,
:master_submission
=>
'submission inet n - - - - smtpd'
,
}
}
:master_smtps
=>
'smtps inet n - - - - smtpd'
,
:master_submission
=>
'submission inet n - - - - smtpd'
,
}
}
it
{
is_expected
.
to
contain_package
(
'postfix'
)
}
it
{
is_expected
.
to
contain_package
(
'mailx'
)
}
it
{
is_expected
.
to
contain_package
(
'postfix'
)
}
it
{
is_expected
.
to
contain_package
(
'mailx'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/mailname'
).
without
(
'seltype'
).
with_content
(
"f
qdn
.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/aliases'
).
without
(
'seltype'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_exec
(
'newaliases'
).
with_refreshonly
(
'true'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
without
(
'seltype'
).
with_content
(
/smtp inet n - - - - smtpd/
).
with_content
(
/amavis unix/
).
with_content
(
/dovecot.*\n.* user=bar:bar /
).
with_content
(
/schleuder/
).
with_content
(
/sympa/
).
with_content
(
/user=bar/
).
with_content
(
/^smtp.*\n.*smtpd_client_restrictions=check_client_access,hash:/
).
with_content
(
/^smtps inet n/
).
with_content
(
/^submission inet n/
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/main.cf'
).
without
(
'seltype'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/mailname'
).
without
(
'seltype'
).
with_content
(
"f
oo
.example.com
\n
"
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/aliases'
).
without
(
'seltype'
).
with_content
(
"# file managed by puppet
\n
"
)
}
it
{
is_expected
.
to
contain_exec
(
'newaliases'
).
with_refreshonly
(
'true'
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
without
(
'seltype'
).
with_content
(
/smtp inet n - - - - smtpd/
).
with_content
(
/amavis unix/
).
with_content
(
/dovecot.*\n.* user=bar:bar /
).
with_content
(
/schleuder/
).
with_content
(
/sympa/
).
with_content
(
/user=bar/
).
with_content
(
/^smtp.*\n.*smtpd_client_restrictions=check_client_access,hash:/
).
with_content
(
/^smtps inet n/
).
with_content
(
/^submission inet n/
)
}
it
{
is_expected
.
to
contain_file
(
'/etc/postfix/main.cf'
).
without
(
'seltype'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'localhost'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'alias_maps'
).
with_value
(
'hash:/etc/aliases'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'localhost2'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'localhost'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'alias_maps'
).
with_value
(
'hash:/etc/aliases'
)
}
it
{
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'localhost2'
)
}
it
{
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'foo'
)
}
it
{
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'foo'
)
}
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/etc/init.d/postfix reload'
)
}
end
end
context
'when on RedHat'
do
let
(
:facts
)
{
{
:augeasversion
=>
'1.2.0'
,
:lsbdistcodename
=>
'wheezy'
,
:operatingsystem
=>
'Debian'
,
:osfamily
=>
'Debian'
,
:rubyversion
=>
'1.9.7'
,
:fqdn
=>
'fqdn.example.com'
,
:path
=>
'/foo/bar'
,
}
}
context
'when specifying inet_interfaces'
do
let
(
:params
)
{
{
:inet_interfaces
=>
'localhost2'
}
}
it
'should create a postfix::config defined type with inet_interfaces specified properly'
do
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'localhost2'
)
end
end
context
'when enabling ldap'
do
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when a custom mail_user is specified'
do
let
(
:params
)
{
{
:mail_user
=>
'bar'
}
}
it
'should adjust the content of /etc/postfix/master.cf specifying the user'
do
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
without
(
'seltype'
).
with_content
(
/user=bar/
)
end
end
context
'when mailman is true'
do
let
(
:params
)
{
{
:mailman
=>
true
}
}
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying a custom mastercf_source'
do
let
(
:params
)
{
{
:mastercf_source
=>
'testy'
}
}
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying a custom master_smtp'
do
let
(
:params
)
{
{
:master_smtp
=>
"smtp inet n - - - - smtpd
it
{
is_expected
.
to
contain_service
(
'postfix'
).
with
(
:ensure
=>
'running'
,
:enable
=>
'true'
,
:hasstatus
=>
'true'
,
:restart
=>
'/etc/init.d/postfix reload'
)
}
end
else
context
'when specifying inet_interfaces'
do
let
(
:params
)
{
{
:inet_interfaces
=>
'localhost2'
}
}
it
'should create a postfix::config defined type with inet_interfaces specified properly'
do
is_expected
.
to
contain_postfix__config
(
'inet_interfaces'
).
with_value
(
'localhost2'
)
end
end
context
'when enabling ldap'
do
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when a custom mail_user is specified'
do
let
(
:params
)
{
{
:mail_user
=>
'bar'
}
}
it
'should adjust the content of /etc/postfix/master.cf specifying the user'
do
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
/user=bar/
)
end
end
context
'when mailman is true'
do
let
(
:params
)
{
{
:mailman
=>
true
}
}
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying a custom mastercf_source'
do
let
(
:params
)
{
{
:mastercf_source
=>
'testy'
}
}
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying a custom master_smtp'
do
let
(
:params
)
{
{
:master_smtp
=>
"smtp inet n - - - - smtpd
-o smtpd_client_restrictions=check_client_access,hash:/etc/postfix/access,reject"
,
}
}
it
'should update master.cf with the specified flags to smtp'
do
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
without
(
'seltype'
).
with_content
(
/smtp inet n - - - - smtpd/
).
with_content
(
/^smtp.*\n.*smtpd_client_restrictions=check_client_access,hash:/
)
end
end
context
'when specifying a custom master_smtps'
do
let
(
:params
)
{
{
:master_smtps
=>
'smtps inet n - - - - smtpd'
}
}
it
'should update master.cf with the specified flags to smtps'
do
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
with_content
(
/^smtps inet n/
)
end
end
context
'when mta is enabled'
do
let
(
:params
)
{
{
:mta
=>
true
,
:mydestination
=>
'1.2.3.4'
,
:relayhost
=>
'2.3.4.5'
}
}
it
'should configure postfix as a minimal MTA, delivering mail to the mydestination param'
do
is_expected
.
to
contain_postfix__config
(
'mydestination'
).
with_value
(
'1.2.3.4'
)
is_expected
.
to
contain_postfix__config
(
'mynetworks'
).
with_value
(
'127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128'
)
is_expected
.
to
contain_postfix__config
(
'relayhost'
).
with_value
(
'2.3.4.5'
)
is_expected
.
to
contain_postfix__config
(
'virtual_alias_maps'
).
with_value
(
'hash:/etc/postfix/virtual'
)
is_expected
.
to
contain_postfix__config
(
'transport_maps'
).
with_value
(
'hash:/etc/postfix/transport'
)
end
it
{
is_expected
.
to
contain_class
(
'postfix::mta'
)
}
context
'and satellite is also enabled'
do
let
(
:params
)
{
{
:mta
=>
true
,
:satellite
=>
true
,
:mydestination
=>
'1.2.3.4'
,
:relayhost
=>
'2.3.4.5'
}
}
it
'should fail'
do
expect
{
should
compile
}.
to
raise_error
(
/Please disable one/
)
}
}
it
'should update master.cf with the specified flags to smtp'
do
is_expected
.
to
contain_file
(
'/etc/postfix/master.cf'
).
with_seltype
(
'postfix_etc_t'
).
with_content
(
/smtp inet n - - - - smtpd/
).
with_content
(
/^smtp.*\n.*smtpd_client_restrictions=check_client_access,hash:/
)
end
end
end
end
context
'when specifying mydesitination'
do
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying mynetworks'
do
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying myorigin'
do
let
(
:params
)
{
{
:myorigin
=>
'localhost'
}
}
it
'should create a postfix::config defined type with myorigin specified properly'
do
is_expected
.
to
contain_postfix__config
(
'myorigin'
).
with_value
(
'localhost'
)
end
end
context
'when specifying relayhost'
do
it
'should do stuff'
do
skip
'need to write this still'
end
end
context
'when specifying a root_mail_recipient'
do
let
(
:params
)
{
{
:root_mail_recipient
=>
'foo'
}
}
it
'should contain a Mailalias resource directing roots mail to the required user'
do
is_expected
.
to
contain_mailalias
(
'root'
).
with_recipient
(
'foo'
)
end
end
context
'when specifying satellite'
do
let
(
:params
)
{
{
:satellite
=>
true
,
:mydestination
=>
'1.2.3.4'
,
:relayhost
=>
'2.3.4.5'
}
}
let
:pre_condition
do
"class { 'augeas': }"
end
it
'should configure all local email to be forwarded to $root_mail_recipient delivered through $relayhost'
do
is_expected
.
to
contain_postfix__config
(
'mydestination'
).
with_value
(
'1.2.3.4'
)
is_expected
.
to
contain_postfix__config
(
'mynetworks'
).
with_value
(
'127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128'
)
is_expected
.
to
contain_postfix__config
(
'relayhost'
).
with_value
(
'2.3.4.5'
)
is_expected
.
to
contain_postfix__config
(
'virtual_alias_maps'
).
with_value
(
'hash:/etc/postfix/virtual'
)
is_expected
.
to
contain_postfix__config
(
'transport_maps'
).
with_value
(
'hash:/etc/postfix/transport'
)
end
context
'and mta is also enabled'
do
let
(
:params
)
{
{
:mta
=>
true
,
:satellite
=>
true
,
:mydestination
=>
'1.2.3.4'
,
:relayhost
=>
'2.3.4.5'
}
}
it
'should fail'
do
expect
{
should
compile
}.
to
raise_error
(
/Please disable one/
)
context
'when specifying a custom master_smtps'
do
let
(
:params
)
{
{
:master_smtps
=>
'smtps inet n - - - - smtpd'
}
}