|
|
import os
|
|
|
|
|
|
import testinfra.utils.ansible_runner
|
|
|
|
|
|
|
|
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
|
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-*')
|
|
|
|
|
|
testinfra_hosts += testinfra.utils.ansible_runner.AnsibleRunner(
|
|
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('deprecated')
|
|
|
|
|
|
|
|
|
def test_supporting_packages_installed(host):
|
|
|
def test_installed_packages(host):
|
|
|
"""
|
|
|
Tests if all the necessary supporting packages have been
|
|
|
installed.
|
|
|
"""
|
|
|
|
|
|
assert host.package('python-apt').is_installed
|
|
|
assert host.package('lua-ldap').is_installed
|
|
|
assert host.package('prosody-modules').is_installed
|
|
|
assert host.package('prosody').is_installed
|
|
|
|
|
|
|
|
|
def test_prosody_user(host):
|
|
|
"""
|
|
|
Tests if Prosody user has been set-up correctly to access TLS material.
|
|
|
"""
|
|
|
|
|
|
assert 'ssl-cert' in host.user('prosody').groups
|
|
|
|
|
|
|
|
|
def test_prosody_configuration_file(host):
|
|
|
"""
|
|
|
Tests if Prosody configuration file has correct permissions.
|
|
|
"""
|
|
|
|
|
|
with host.sudo():
|
|
|
|
|
|
config = host.file('/etc/prosody/prosody.cfg.lua')
|
|
|
|
|
|
assert config.is_file
|
|
|
assert config.user == 'root'
|
|
|
assert config.group == 'prosody'
|
|
|
assert config.mode == 0o640
|
|
|
|
|
|
|
|
|
def test_services(host):
|
|
|
"""
|
|
|
Tests if services are enabled and running.
|
|
|
"""
|
|
|
|
|
|
service = host.service('prosody')
|
|
|
|
|
|
assert service.is_enabled
|
|
|
assert service.is_running
|
|
|
|
|
|
|
|
|
def test_firewall_configuration_file(host):
|
|
|
"""
|
|
|
Tests if firewall configuration file has been deployed correctly.
|
|
|
"""
|
|
|
|
|
|
with host.sudo():
|
|
|
|
|
|
config = host.file('/etc/ferm/conf.d/30-xmpp.conf')
|
|
|
|
|
|
assert config.is_file
|
|
|
assert config.user == 'root'
|
|
|
assert config.group == 'root'
|