Files
nginx-unit/test/test_python_basic.py
Andrei Zeliankou c183bd8749 Tests: get rid of classes in test files.
Class usage came from the unittest framework and it was always redundant
after migration to the pytest.  This commit removes classes from files
containing tests to make them more readable and understandable.
2023-06-14 18:20:09 +01:00

135 lines
3.7 KiB
Python

from unit.control import Control
prerequisites = {'modules': {'python': 'any'}}
client = Control()
conf_app = {
"app": {
"type": "python",
"processes": {"spare": 0},
"path": "/app",
"module": "wsgi",
}
}
conf_basic = {
"listeners": {"*:7080": {"pass": "applications/app"}},
"applications": conf_app,
}
def test_python_get_empty():
assert client.conf_get() == {'listeners': {}, 'applications': {}}
assert client.conf_get('listeners') == {}
assert client.conf_get('applications') == {}
def test_python_get_applications():
client.conf(conf_app, 'applications')
conf = client.conf_get()
assert conf['listeners'] == {}, 'listeners'
assert conf['applications'] == {
"app": {
"type": "python",
"processes": {"spare": 0},
"path": "/app",
"module": "wsgi",
}
}, 'applications'
assert client.conf_get('applications') == {
"app": {
"type": "python",
"processes": {"spare": 0},
"path": "/app",
"module": "wsgi",
}
}, 'applications prefix'
assert client.conf_get('applications/app') == {
"type": "python",
"processes": {"spare": 0},
"path": "/app",
"module": "wsgi",
}, 'applications prefix 2'
assert client.conf_get('applications/app/type') == 'python', 'type'
assert client.conf_get('applications/app/processes/spare') == 0, 'spare'
def test_python_get_listeners():
assert 'success' in client.conf(conf_basic)
assert client.conf_get()['listeners'] == {
"*:7080": {"pass": "applications/app"}
}, 'listeners'
assert client.conf_get('listeners') == {
"*:7080": {"pass": "applications/app"}
}, 'listeners prefix'
assert client.conf_get('listeners/*:7080') == {
"pass": "applications/app"
}, 'listeners prefix 2'
def test_python_change_listener():
assert 'success' in client.conf(conf_basic)
assert 'success' in client.conf(
{"*:7081": {"pass": "applications/app"}}, 'listeners'
)
assert client.conf_get('listeners') == {
"*:7081": {"pass": "applications/app"}
}, 'change listener'
def test_python_add_listener():
assert 'success' in client.conf(conf_basic)
assert 'success' in client.conf(
{"pass": "applications/app"}, 'listeners/*:7082'
)
assert client.conf_get('listeners') == {
"*:7080": {"pass": "applications/app"},
"*:7082": {"pass": "applications/app"},
}, 'add listener'
def test_python_change_application():
assert 'success' in client.conf(conf_basic)
assert 'success' in client.conf('30', 'applications/app/processes/max')
assert (
client.conf_get('applications/app/processes/max') == 30
), 'change application max'
assert 'success' in client.conf('"/www"', 'applications/app/path')
assert (
client.conf_get('applications/app/path') == '/www'
), 'change application path'
def test_python_delete():
assert 'success' in client.conf(conf_basic)
assert 'error' in client.conf_delete('applications/app')
assert 'success' in client.conf_delete('listeners/*:7080')
assert 'success' in client.conf_delete('applications/app')
assert 'error' in client.conf_delete('applications/app')
def test_python_delete_blocks():
assert 'success' in client.conf(conf_basic)
assert 'success' in client.conf_delete('listeners')
assert 'success' in client.conf_delete('applications')
assert 'success' in client.conf(conf_app, 'applications')
assert 'success' in client.conf(
{"*:7081": {"pass": "applications/app"}}, 'listeners'
), 'applications restore'