diff --git a/roles/wsgi_website/molecule/default/tests/test_default.py b/roles/wsgi_website/molecule/default/tests/test_default.py index 2a8b840860f0b4298dc798273fb83f2d20e140ff..ae9fe0c457afa5549767cfc16513c3e25d1f5021 100644 --- a/roles/wsgi_website/molecule/default/tests/test_default.py +++ b/roles/wsgi_website/molecule/default/tests/test_default.py @@ -585,3 +585,25 @@ def test_wsgi_requirements(host, fqdn, pip_check_requirements_upgrades_directory install_requirements = requirements.content_string.strip().split("\n") assert install_requirements == expected_requirements + + +@pytest.mark.parametrize('fqdn', [ + 'parameters-mandatory', + 'parameters-optional.local', + 'parameters-paste-req' +]) +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