import os import pytest import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') @pytest.mark.parametrize('fqdn', [ 'parameters-mandatory', 'parameters-optional.local', ]) def test_https_enforcement(host, fqdn): """ Tests if HTTPS is being enforced. """ https_enforcement = host.run('curl -I http://%s/', fqdn) assert https_enforcement.rc == 0 assert 'HTTP/1.1 301 Moved Permanently' in https_enforcement.stdout assert 'Location: https://%s/' % fqdn in https_enforcement.stdout https_enforcement = host.run('curl -I https://%s/', fqdn) assert https_enforcement.rc == 0 assert 'Strict-Transport-Security: max-age=31536000; includeSubDomains' in https_enforcement.stdout