Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • 1.4.2
  • 1.1.4
3 results

README.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    postfix_spec.rb 5.55 KiB
    require 'spec_helper'
    
    describe 'postfix' do
      context 'when using defaults' do
        context 'when on Debian' do
          let (:facts) { {
            :operatingsystem => 'Debian',
            :osfamily        => 'Debian',
            :fqdn            => 'fqdn.example.com',
          } }
    
          it { should contain_package('postfix') }
          it { should contain_package('mailx') }
    
          it { should contain_file('/etc/mailname').without('seltype').with_content("fqdn.example.com\n") }
          it { should contain_file('/etc/aliases').without('seltype').with_content("# file managed by puppet\n") }
          it { should contain_exec('newaliases').with_refreshonly('true') }
          it { should contain_file('/etc/postfix/master.cf').without('seltype') }
          it { should contain_file('/etc/postfix/main.cf').without('seltype') }
    
          it { should contain_postfix__config('myorigin').with_value('fqdn.example.com') }
          it { should contain_postfix__config('alias_maps').with_value('hash:/etc/aliases') }
          it { should contain_postfix__config('inet_interfaces').with_value('all') }
    
          it { should contain_mailalias('root').with_recipient('nobody') }
    
          it {
            should contain_service('postfix').with(
              :ensure    => 'running',
              :enable    => 'true',
              :hasstatus => 'true',
              :restart   => '/etc/init.d/postfix reload'
          ) }
        end
    
        context 'when on RedHat' do
          let (:facts) { {
            :operatingsystem => 'RedHat',
            :osfamily        => 'RedHat',
            :fqdn            => 'fqdn.example.com',
          } }
    
          it { should contain_package('postfix') }
          it { should contain_package('mailx') }
    
          it { should contain_file('/etc/mailname').without('seltype').with_content("fqdn.example.com\n") }
          it { should contain_file('/etc/aliases').without('seltype').with_content("# file managed by puppet\n") }
          it { should contain_exec('newaliases').with_refreshonly('true') }
          it { should contain_file('/etc/postfix/master.cf').without('seltype') }
          it { should contain_file('/etc/postfix/main.cf').without('seltype') }
    
          it { should contain_postfix__config('myorigin').with_value('fqdn.example.com') }
          it { should contain_postfix__config('alias_maps').with_value('hash:/etc/aliases') }
          it { should contain_postfix__config('inet_interfaces').with_value('all') }
          it { should contain_postfix__config('sendmail_path') }
          it { should contain_postfix__config('newaliases_path') }
          it { should contain_postfix__config('mailq_path') }
    
          it { should contain_mailalias('root').with_recipient('nobody') }
    
          it {
            should contain_service('postfix').with(
              :ensure    => 'running',
              :enable    => 'true',
              :hasstatus => 'true',
              :restart   => '/etc/init.d/postfix reload'
          ) }
        end
      end
    
      context 'when setting parameters' do
        context 'when on Debian' do
          context "when setting smtp_listen to 'all'" do
            let (:facts) { {
              :operatingsystem => 'Debian',
              :osfamily        => 'Debian',
              :fqdn            => 'fqdn.example.com',
            } }
    
            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',
            } }
    
            it { should contain_package('postfix') }
            it { should contain_package('mailx') }
    
            it { should contain_file('/etc/mailname').without('seltype').with_content("fqdn.example.com\n") }
            it { should contain_file('/etc/aliases').without('seltype').with_content("# file managed by puppet\n") }
            it { should contain_exec('newaliases').with_refreshonly('true') }
            it {
              should 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 { should contain_file('/etc/postfix/main.cf').without('seltype') }
    
            it { should contain_postfix__config('myorigin').with_value('localhost') }
            it { should contain_postfix__config('alias_maps').with_value('hash:/etc/aliases') }
            it { should contain_postfix__config('inet_interfaces').with_value('localhost2') }
    
            it { should contain_mailalias('root').with_recipient('foo') }
    
            it {
              should contain_service('postfix').with(
                :ensure    => 'running',
                :enable    => 'true',
                :hasstatus => 'true',
                :restart   => '/etc/init.d/postfix reload'
            ) }
          end
        end
      end
    end