Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
This commit is contained in:
Andrei Zeliankou
2023-06-12 14:16:59 +01:00
parent a3b9b49cfb
commit ce2405ec3d
79 changed files with 524 additions and 548 deletions

View File

@@ -5,10 +5,10 @@ import pytest
from unit.applications.proto import TestApplicationProto
from unit.option import option
prerequisites = {'features': {'chroot': True}}
class TestStaticChroot(TestApplicationProto):
prerequisites = {'features': ['chroot']}
@pytest.fixture(autouse=True)
def setup_method_fixture(self, temp_dir):
os.makedirs(f'{temp_dir}/assets/dir')
@@ -62,9 +62,8 @@ class TestStaticChroot(TestApplicationProto):
)
assert self.get()['status'] != 200, 'share array bad'
def test_static_chroot_permission(self, is_su, temp_dir):
if is_su:
pytest.skip("does't work under root")
def test_static_chroot_permission(self, require, temp_dir):
require({'privileged_user': False})
os.chmod(f'{temp_dir}/assets/dir', 0o100)
@@ -81,9 +80,8 @@ class TestStaticChroot(TestApplicationProto):
assert 'success' in self.update_action("", ".$uri")
assert self.get(url=self.test_path)['status'] == 200, 'empty relative'
def test_static_chroot_relative(self, is_su):
if is_su:
pytest.skip("Does't work under root.")
def test_static_chroot_relative(self, require):
require({'privileged_user': False})
assert 'success' in self.update_action('.')
assert self.get(url='/dir/file')['status'] == 403, 'relative chroot'