Files
@ a068ee154206
Branch filter:
Location: majic-ansible-roles/roles/wsgi_website/molecule/default/tests/test_parameters_optional.py - annotation
a068ee154206
3.7 KiB
text/x-python
MAR-218: Update the Nextcloud version in usage instructions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | b5ed796b566a 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 d62b3adec462 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 38c3569bdc6a f05151d6f802 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 8944b8348567 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 c8d4251a6ea5 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 6790c3bb01ce 998aab91d6b4 a1e0221d24e7 998aab91d6b4 6790c3bb01ce 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 bf1f75a58072 bf1f75a58072 bf1f75a58072 bf1f75a58072 bf1f75a58072 bf1f75a58072 998aab91d6b4 bf1f75a58072 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 998aab91d6b4 a1e0221d24e7 998aab91d6b4 998aab91d6b4 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a 38c3569bdc6a | import os
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-optional')
def test_installed_packages(host):
"""
Tests if additional packages are installed.
"""
assert host.package('atftp').is_installed
assert host.package('global').is_installed
def test_index_page(host):
"""
Tests if index page is served correctly. This covers:
- Basic WSGI application operation.
- Handling of environment variables.
- Handling of HTTP header overrides.
"""
page = host.run('curl -H "Accept-Encoding: plain" https://parameters-optional.local/')
assert page.rc == 0
assert "This is the WSGI application at parameters-optional.local." in page.stdout
assert "Requested URL was: https://parameters-optional.local/" in page.stdout
assert "MY_ENV_VAR: My environment variable" in page.stdout
assert "Accept-Encoding: None" 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-optional.local/static/static_file.txt')
assert page.rc == 0
assert page.stdout == open("tests/data/static_file.txt", 'r').read()
page = host.run('curl https://parameters-optional.local/media/media_file.txt')
assert page.rc == 0
assert page.stdout == open("tests/data/media_file.txt", 'r').read()
def test_additional_nginx_config(host):
"""
Tests if additional Nginx configuration directives are properly deployed.
"""
page = host.run('curl https://parameters-optional.local/static/missing_static_file.txt')
assert page.rc == 0
assert "Requested URL was: https://parameters-optional.local/my/own/error/page"
def test_environment_indicator(host):
"""
Tests if environment indicator is applied correctly.
"""
page = host.run('curl https://parameters-optional.local/')
expected_content = """\
<details open='true' style='position: fixed; left: 0; width: 100%; line-height: 1.5em; font-weight: bold; color: #00ff00;'>
<summary style='background-color: #ff0000; list-style-type: none; position: fixed; bottom: 5px; z-index: 999999;'>🞀🞂</summary>
<div style='background-color: #ff0000; width: 100%; text-align: center; position: fixed; bottom: 5px; z-index: 999998;'>parameters-optional</div>
</details>"""
assert page.rc == 0
assert expected_content in page.stdout
def test_nginx_rewrite_config(host):
"""
Tests if Nginx rewrite configuration is deployed correctly.
"""
page = host.run('curl https://parameters-optional.local/rewrite1/some/path')
assert page.rc == 0
assert "Requested URL was: https://parameters-optional.local/rewritten1/" in page.stdout
page = host.run('curl https://parameters-optional.local/rewrite2/some/other/path')
assert page.rc == 0
assert "Requested URL was: https://parameters-optional.local/rewritten2/some/other/path" in page.stdout
def test_website_application_user(host):
"""
Tests if website application user has been created correctly.
"""
app_user = "web-parameters-optional_local"
expected_group = "web-parameters-optional_local"
expected_home = "/var/www/parameters-optional.local"
expected_uid = 5001
user = host.user(app_user)
assert user.exists
assert user.uid == expected_uid
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'
|