Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8391876
letsencrypt_spec.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
letsencrypt_spec.rb
View Options
require
'spec_helper'
describe
'letsencrypt'
do
{
'Debian'
=>
'9.0'
,
'RedHat'
=>
'7.2'
}
.
each
do
|
osfamily
,
osversion
|
context
"on
#{
osfamily
}
based operating systems"
do
let
(
:facts
)
{
{
osfamily
:
osfamily
,
operatingsystem
:
osfamily
,
operatingsystemrelease
:
osversion
,
operatingsystemmajrelease
:
osversion
.
split
(
'.'
)
.
first
,
path
:
'/usr/bin'
}
}
context
'when specifying an email address with the email parameter'
do
let
(
:params
)
{
additional_params
.
merge
(
default_params
)
}
let
(
:default_params
)
{
{
email
:
'foo@example.com'
}
}
let
(
:additional_params
)
{
{
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
if
osfamily
==
'RedHat'
epel
=
true
else
epel
=
false
end
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
({
configure_epel
:
epel
,
manage_install
:
true
,
manage_dependencies
:
true
,
repo
:
'https://github.com/letsencrypt/letsencrypt.git'
,
version
:
'v0.4.2'
})
.
that_notifies
(
'Exec[initialize letsencrypt]'
)
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini email foo@example.com'
)
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini server https://acme-v01.api.letsencrypt.org/directory'
)
is_expected
.
to
contain_exec
(
'initialize letsencrypt'
)
is_expected
.
to
contain_class
(
'letsencrypt::config'
)
.
that_comes_before
(
'Exec[initialize letsencrypt]'
)
end
end
describe
'with custom path'
do
let
(
:additional_params
)
{
{
path
:
'/usr/lib/letsencrypt'
,
install_method
:
'vcs'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_path
(
'/usr/lib/letsencrypt'
)
}
it
{
is_expected
.
to
contain_exec
(
'initialize letsencrypt'
)
.
with_command
(
'/usr/lib/letsencrypt/letsencrypt-auto -h'
)
}
end
describe
'with custom environment variables'
do
let
(
:additional_params
)
{
{
environment
:
[
'FOO=bar'
,
'FIZZ=buzz'
]
}
}
it
{
is_expected
.
to
contain_exec
(
'initialize letsencrypt'
)
.
with_environment
(
[
'VENV_PATH=/opt/letsencrypt/.venv'
,
'FOO=bar'
,
'FIZZ=buzz'
]
)
}
end
describe
'with custom repo'
do
let
(
:additional_params
)
{
{
repo
:
'git://foo.com/letsencrypt.git'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_repo
(
'git://foo.com/letsencrypt.git'
)
}
end
describe
'with custom version'
do
let
(
:additional_params
)
{
{
version
:
'foo'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_path
(
'/opt/letsencrypt'
)
.
with_version
(
'foo'
)
}
end
describe
'with custom package_ensure'
do
let
(
:additional_params
)
{
{
package_ensure
:
'0.3.0-1.el7'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_package_ensure
(
'0.3.0-1.el7'
)
}
end
describe
'with custom config file'
do
let
(
:additional_params
)
{
{
config_file
:
'/etc/letsencrypt/custom_config.ini'
}
}
it
{
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/custom_config.ini server https://acme-v01.api.letsencrypt.org/directory'
)
}
end
describe
'with custom config'
do
let
(
:additional_params
)
{
{
config
:
{
'foo'
=>
'bar'
}
}
}
it
{
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini foo bar'
)
}
end
describe
'with manage_config set to false'
do
let
(
:additional_params
)
{
{
manage_config
:
false
}
}
it
{
is_expected
.
not_to
contain_class
(
'letsencrypt::config'
)
}
end
describe
'with manage_install set to false'
do
let
(
:additional_params
)
{
{
manage_install
:
false
}
}
it
{
is_expected
.
not_to
contain_class
(
'letsencrypt::install'
)
}
end
describe
'with install_method => package'
do
let
(
:additional_params
)
{
{
install_method
:
'package'
,
package_command
:
'letsencrypt'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_install_method
(
'package'
)
}
it
{
is_expected
.
to
contain_exec
(
'initialize letsencrypt'
)
.
with_command
(
'letsencrypt -h'
)
}
end
describe
'with install_method => vcs'
do
let
(
:additional_params
)
{
{
install_method
:
'vcs'
}
}
it
{
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with_install_method
(
'vcs'
)
}
it
{
is_expected
.
to
contain_exec
(
'initialize letsencrypt'
)
.
with_command
(
'/opt/letsencrypt/letsencrypt-auto -h'
)
}
end
context
'when not agreeing to the TOS'
do
let
(
:params
)
{
{
agree_tos
:
false
}
}
it
{
is_expected
.
to
raise_error
Puppet
::
Error
,
/You must agree to the Let's Encrypt Terms of Service/
}
end
end
context
'when specifying an email in $config'
do
let
(
:params
)
{
{
config
:
{
'email'
=>
'foo@example.com'
}
}
}
it
{
is_expected
.
to
compile
.
with_all_deps
}
it
{
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini email foo@example.com'
)
}
end
context
'when not specifying the email parameter or an email key in $config'
do
context
'with unsafe_registration set to false'
do
it
{
is_expected
.
to
raise_error
Puppet
::
Error
,
/Please specify an email address/
}
end
context
'with unsafe_registration set to true'
do
let
(
:params
)
{{
unsafe_registration
:
true
}}
it
{
is_expected
.
not_to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini email foo@example.com'
)
}
it
{
is_expected
.
to
contain_ini_setting
(
'/etc/letsencrypt/cli.ini register-unsafely-without-email true'
)
}
end
end
end
end
context
'on unknown operating systems'
do
let
(
:facts
)
{
{
osfamily
:
'Darwin'
,
operatingsystem
:
'Darwin'
,
operatingsystemrelease
:
'14.5.0'
,
operatingsystemmajrelease
:
'14'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'vcs'
)
end
end
end
context
'on EL7 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'RedHat'
,
operatingsystem
:
'RedHat'
,
operatingsystemrelease
:
'7.2'
,
operatingsystemmajrelease
:
'7'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'epel'
)
.
that_comes_before
(
'Package[letsencrypt]'
)
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'package'
)
is_expected
.
to
contain_class
(
'letsencrypt'
)
.
with
(
package_command
:
'certbot'
)
is_expected
.
to
contain_package
(
'letsencrypt'
)
.
with
(
name
:
'certbot'
)
end
end
end
context
'on EL6 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'RedHat'
,
operatingsystem
:
'RedHat'
,
operatingsystemrelease
:
'6.7'
,
operatingsystemmajrelease
:
'6'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'vcs'
)
is_expected
.
not_to
contain_class
(
'epel'
)
.
that_comes_before
(
'Package[letsencrypt]'
)
is_expected
.
not_to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'package'
)
end
end
end
context
'on Debian 8 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'Debian'
,
operatingsystem
:
'Debian'
,
operatingsystemrelease
:
'8.0'
,
operatingsystemmajrelease
:
'8.0'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'vcs'
)
end
end
end
context
'on Debian 9 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'Debian'
,
operatingsystem
:
'Debian'
,
operatingsystemrelease
:
'9.0'
,
operatingsystemmajrelease
:
'9.0'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'package'
)
end
end
end
context
'on Ubuntu 14.04 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'Debian'
,
operatingsystem
:
'Ubuntu'
,
operatingsystemrelease
:
'14.04'
,
operatingsystemmajrelease
:
'14.04'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'vcs'
)
end
end
end
context
'on Ubuntu 16.04 operating system'
do
let
(
:facts
)
{
{
osfamily
:
'Debian'
,
operatingsystem
:
'Ubuntu'
,
operatingsystemrelease
:
'16.04'
,
operatingsystemmajrelease
:
'16.04'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'package'
)
end
end
end
context
'on Gentoo operating system'
do
let
(
:facts
)
{
{
osfamily
:
'Gentoo'
,
operatingsystem
:
'Gentoo'
,
operatingsystemrelease
:
'4.4.6-r2'
,
operatingsystemmajrelease
:
'4'
,
path
:
'/usr/bin'
}
}
let
(
:params
)
{
{
email
:
'foo@example.com'
}
}
describe
'with defaults'
do
it
{
is_expected
.
to
compile
}
it
'should contain the correct resources'
do
is_expected
.
to
contain_class
(
'letsencrypt::install'
)
.
with
(
install_method
:
'package'
)
.
with
(
package_name
:
'app-crypt/certbot'
)
is_expected
.
to
contain_class
(
'letsencrypt'
)
.
with
(
package_command
:
'certbot'
)
is_expected
.
to
contain_package
(
'letsencrypt'
)
.
with
(
name
:
'app-crypt/certbot'
)
end
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Jun 4 2025, 6:51 PM (12 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3398805
Attached To
R192 puppet-puppet-letsencrypt
Event Timeline
Log In to Comment