import os import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-mandatory') def test_index_page(host): """ Tests if index page is served correctly. This covers: - Basic WSGI application operation. - Handling of environment variables. - Handling of proxy headers. """ page = host.run('curl -H "Accept-Encoding: plain" https://parameters-mandatory/') assert page.rc == 0 assert "This is the WSGI application at parameters-mandatory." in page.stdout assert "Requested URL was: https://parameters-mandatory/" in page.stdout assert "MY_ENV_VAR: None" in page.stdout assert "Accept-Encoding: plain" in page.stdout assert "Python version: 3." in page.stdout def test_static_file_serving(host): """ Tests serving of static files. """ page = host.run('curl https://parameters-mandatory/static/static_file.txt') assert page.rc == 0 assert "This is the WSGI application at parameters-mandatory." in page.stdout assert "Requested URL was: https://parameters-mandatory/static/static_file.txt" in page.stdout page = host.run('curl https://parameters-mandatory/media/media_file.txt') assert page.rc == 0 assert "This is the WSGI application at parameters-mandatory." in page.stdout assert "Requested URL was: https://parameters-mandatory/media/media_file.txt" in page.stdout def test_website_application_user(host): """ Tests if website application user has been created correctly. """ app_user = "web-parameters-mandatory" expected_group = "web-parameters-mandatory" expected_home = "/var/www/parameters-mandatory" user = host.user(app_user) assert user.exists assert user.uid < 1000 assert user.group == expected_group assert user.groups == [expected_group] assert user.shell == '/bin/sh' assert user.home == expected_home with host.sudo(): umask = host.run("su -l " + app_user + " -c 'bash -c umask'") assert umask.stdout == '0007\n'