Add Zuulv3 functional tests
Add functional tests to verify that the mailman functionality, both single host and multihost, works correctly and generates the expected virtualhost config. Depends-On: https://review.openstack.org/565270 Change-Id: Ie3f23cf918f3575e0403626d94a8a0f1f68ae831
This commit is contained in:
parent
74aabb8bbb
commit
4435ab172b
|
@ -0,0 +1,12 @@
|
|||
file { '/srv/mailman':
|
||||
ensure => directory,
|
||||
}
|
||||
class { 'mailman':
|
||||
multihost => true,
|
||||
}
|
||||
mailman::site { 'openstack':
|
||||
default_email_host => 'lists.openstack.org',
|
||||
default_url_host => 'lists.openstack.org',
|
||||
install_languages => ['de', 'fr', 'it', 'ko', 'ru', 'vi', 'zh_TW'],
|
||||
require => Class['mailman'],
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
test_site_is_alive() {
|
||||
curl http://localhost/cgi-bin/mailman/listinfo | grep 'Mailing Lists' || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
test_vhost_content() {
|
||||
expected_vhost=$(mktemp)
|
||||
cat <<EOF > $expected_vhost
|
||||
<VirtualHost *:80>
|
||||
ServerName lists.openstack.org
|
||||
|
||||
ErrorLog \${APACHE_LOG_DIR}/lists.openstack.org-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
|
||||
CustomLog \${APACHE_LOG_DIR}/lists.openstack.org-access.log combined
|
||||
|
||||
DocumentRoot /var/www
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/$ /cgi-bin/mailman/listinfo [R]
|
||||
|
||||
# We can find mailman here:
|
||||
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# And the public archives:
|
||||
Alias /pipermail/ /srv/mailman/openstack/archives/public/
|
||||
# Logos:
|
||||
Alias /images/mailman/ /usr/share/images/mailman/
|
||||
|
||||
# Use this if you don't want the "cgi-bin" component in your URL:
|
||||
# In case you want to access mailman through a shorter URL you should enable
|
||||
# this:
|
||||
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# In this case you need to set the DEFAULT_URL_PATTERN in
|
||||
# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
|
||||
# authentication code to work. Note that you need to change the base
|
||||
# URL for all the already-created lists as well.
|
||||
|
||||
<Directory /usr/lib/cgi-bin/mailman/>
|
||||
AllowOverride None
|
||||
Options ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
SetEnv MAILMAN_SITE_DIR /srv/mailman/openstack
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /srv/mailman/openstack/archives/public/>
|
||||
Options FollowSymlinks
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /usr/share/images/mailman/>
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
EOF
|
||||
diff $expected_vhost /etc/apache2/sites-enabled/50-lists.openstack.org.conf || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
declare -a tests
|
||||
tests=(
|
||||
test_site_is_alive
|
||||
test_vhost_content
|
||||
)
|
||||
for test in ${tests[@]} ; do
|
||||
$test || exit 1
|
||||
done
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,6 @@
|
|||
file { '/srv/mailman':
|
||||
ensure => directory,
|
||||
}
|
||||
class { 'mailman':
|
||||
vhost_name => 'lists.openstack.org',
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
test_site_is_alive() {
|
||||
curl http://localhost/cgi-bin/mailman/listinfo | grep 'Mailing Lists' || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
test_vhost_content() {
|
||||
expected_vhost=$(mktemp)
|
||||
cat <<EOF > $expected_vhost
|
||||
<VirtualHost *:80>
|
||||
ServerName lists.openstack.org
|
||||
|
||||
ErrorLog \${APACHE_LOG_DIR}/lists.openstack.org-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
|
||||
CustomLog \${APACHE_LOG_DIR}/lists.openstack.org-access.log combined
|
||||
|
||||
DocumentRoot /var/www
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/$ /cgi-bin/mailman/listinfo [R]
|
||||
|
||||
# We can find mailman here:
|
||||
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# And the public archives:
|
||||
Alias /pipermail/ /var/lib/mailman/archives/public/
|
||||
# Logos:
|
||||
Alias /images/mailman/ /usr/share/images/mailman/
|
||||
|
||||
# Use this if you don't want the "cgi-bin" component in your URL:
|
||||
# In case you want to access mailman through a shorter URL you should enable
|
||||
# this:
|
||||
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# In this case you need to set the DEFAULT_URL_PATTERN in
|
||||
# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
|
||||
# authentication code to work. Note that you need to change the base
|
||||
# URL for all the already-created lists as well.
|
||||
|
||||
<Directory /usr/lib/cgi-bin/mailman/>
|
||||
AllowOverride None
|
||||
Options ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /var/lib/mailman/archives/public/>
|
||||
Options FollowSymlinks
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /usr/share/images/mailman/>
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
EOF
|
||||
diff $expected_vhost /etc/apache2/sites-enabled/50-lists.openstack.org.conf || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
declare -a tests
|
||||
tests=(
|
||||
test_site_is_alive
|
||||
test_vhost_content
|
||||
)
|
||||
for test in ${tests[@]} ; do
|
||||
$test || exit 1
|
||||
done
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue