Skip to content
Snippets Groups Projects
Select Git revision
  • 38f8de41756d2bc21fa0a72fd5379b84a25eb70a
  • master default protected
  • test
  • release_10.3.0
  • feature_module_doctorant
  • feature_module_admission
  • feature_fiche_rncp
  • feature_convention_mel_template
  • release_10.2.0
  • release_10.1.1
  • feature_portfolio
  • ameliorations_index_rapporteur
  • feature_flux_diplomation
  • feature_formation_export_xls
  • feature_fichiers
  • api_inscription_admin
  • feature_module_unicaen_maintenance_mode
  • dev
  • feature_renderer_template_variables
  • feature_notif_forcage_correc
  • feature_wf_rapport_activite
  • 10.2.1
  • 10.2.0
  • 10.1.0
  • 10.0.3
  • 10.0.2
  • 10.0.1
  • 10.0.0
  • 9.4.1
  • 9.4.0
  • 9.3.1
  • 9.3.0
  • 9.2.1
  • 9.2.0
  • 9.1.1
  • 9.1.0
  • 9.0.1
  • 9.0.0
  • 8.6.0
  • 8.5.1
  • 8.5.0
41 results

recreate-test-branch.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    sql_spec.rb 4.21 KiB
    require 'spec_helper'
    
    describe 'freeradius::sql' do
      on_supported_os.each do |os, os_facts|
        context "on #{os}" do
          include_context 'freeradius_default'
    
          let(:facts) do
            os_facts.merge(
              freeradius_version: '3.0.21',
            )
          end
    
          let(:title) { 'test' }
    
          let(:params) do
            {
              database: 'postgresql',
              password: 'test_password',
              port: 5432,
            }
          end
    
          it do
            is_expected.to contain_file('/etc/raddb/mods-available/test')
              .with_content(%r{^sql test \{\n})
              .with_content(%r{^\s+dialect = "postgresql"$})
              .with_content(%r{^\s+server = "localhost"$})
              .with_content(%r{^\s+port = "5432"$})
              .with_content(%r{^\s+login = "radius"$})
              .with_content(%r{^\s+password = "test_password"$})
              .with_content(%r{^\s+postauth_table = "radpostauth"$})
              .without_content(%r{^\s+connect_timeout = .*})
              .with_ensure('present')
              .with_group('radiusd')
              .with_mode('0640')
              .with_owner('root')
              .without_content(%r{^\s+logfile =})
              .that_notifies('Service[radiusd]')
              .that_requires('Package[freeradius]')
              .that_requires('Group[radiusd]')
          end
    
          it do
            is_expected.to contain_file('/etc/raddb/mods-enabled/test')
              .with_ensure('link')
              .with_target('../mods-available/test')
          end
    
          context 'with sqltrace' do
            let(:params) do
              super().merge(
                sqltrace: 'yes',
              )
            end
    
            it do
              is_expected.to contain_file('/etc/raddb/mods-available/test')
                .with_content(%r{^\s+logfile = \${logdir}/sqllog.sql$})
            end
    
            it do
              is_expected.to contain_logrotate__rule('sqltrace')
                .with_compress('true')
                .with_create('true')
                .with_missingok('true')
                .with_path('/var/log/radius/${logdir}/sqllog.sql')
                .with_postrotate('kill -HUP `cat /var/run/radiusd/radiusd.pid`')
                .with_rotate('1')
                .with_rotate_every('week')
            end
          end
    
          context 'with custom query file' do
            let(:params) do
              super().merge(
                custom_query_file: 'puppet:///modules/path/to/custom/query/file',
              )
            end
    
            it do
              is_expected.to contain_freeradius__config('test-queries.conf')
                .with_source('puppet:///modules/path/to/custom/query/file')
            end
          end
    
          context 'when freeradius::fr_3_1 is true' do
            let(:facts) do
              super().merge(
                'freeradius_version' => '3.1.1',
              )
            end
    
            let(:node_params) do
              {
                'freeradius::fr_3_1' => true,
              }
            end
    
            it do
              is_expected.to contain_file('/etc/raddb/mods-available/test')
                .with_content(%r{^\s+connect_timeout = 3.0})
            end
    
            context 'with pool_connect_timeout specified' do
              let(:params) do
                super().merge(
                  pool_connect_timeout: 5.0,
                )
              end
    
              it do
                is_expected.to contain_file('/etc/raddb/mods-available/test')
                  .with_content(%r{^\s+connect_timeout = 5.0})
              end
    
              # it do
              #   expect(catalogue).to satisfy('contain connect_timeout warning') do |c|
              #     c.resource_refs.any? { |r| r =~ %r{^warning_test: The `pool_connect_timeout` parameter requires FreeRADIUS 3.1.x.*In the future/} }
              #   end
              # end
            end
          end
    
          # context 'with pool_connect_timeout specified' do
          #   let(:params) do
          #     super().merge(
          #       pool_connect_timeout: 5.0,
          #     )
          #   end
    
          #   it do
          #     is_expected.to compile.and_raise_error(%r{^The `pool_connect_timeout` parameter requires FreeRADIUS 3.1.x})
          #   end
          # end
    
          context 'with password containing a newline' do
            let(:params) do
              super().merge(
                password: "foo\nbar",
              )
            end
    
            it do
              is_expected.to compile.and_raise_error(%r{parameter 'password' expects a match for Freeradius::Password})
            end
          end
        end
      end
    end