Skip to content

Commit f1f8b6d

Browse files
committed
Introduce feature directories in tests
This sets up a directory structure where an entire directory gets a feature mark. This makes it easy to skip entire feature tests.
1 parent 03a2630 commit f1f8b6d

19 files changed

Lines changed: 14 additions & 80 deletions

tests/conftest.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,20 @@ def pytest_configure(config):
246246
config.user_parameters = UserParameters(config)
247247

248248

249+
def pytest_collection_modifyitems(config, items):
250+
feature_dir = config.rootdir / 'tests' / 'feature'
251+
for item in items:
252+
try:
253+
rel_path = Path(item.fspath).relative_to(feature_dir)
254+
except ValueError:
255+
# Not in the features directory
256+
pass
257+
else:
258+
feature = rel_path.parts[0]
259+
# TODO: test if it's a valid feature?
260+
item.add_marker(pytest.mark.feature(feature))
261+
262+
249263
def pytest_runtest_setup(item):
250264
feature_markers = set(mark.args[0] for mark in item.iter_markers(name="feature"))
251265
if feature_markers:

tests/feature/__init__.py

Whitespace-only changes.
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_advisor_backend_api_service(server):
72
service = server.service("iop-service-advisor-backend-api")
83
assert service.is_running

tests/iop/test_advisor_frontend.py renamed to tests/feature/iop/test_advisor_frontend.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_advisor_frontend_assets_directory(server):
72
assets_dir = server.file("/var/www/iop/assets/apps/advisor")
83
assert assets_dir.exists

tests/iop/test_cvemap_downloader.py renamed to tests/feature/iop/test_cvemap_downloader.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_cvemap_download_script(server):
72
script = server.file("/usr/local/bin/iop-cvemap-download.sh")
83
assert script.exists
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_engine_service(server):
72
service = server.service("iop-core-engine")
83
assert service.is_running
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_gateway_service(server):
72
service = server.service("iop-core-gateway")
83
assert service.is_running
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_ingress_service(server):
72
service = server.service("iop-core-ingress")
83
assert service.is_running
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import pytest
2-
3-
pytestmark = pytest.mark.feature("iop")
4-
5-
61
def test_iop_core_kafka_service(server):
72
service = server.service("iop-core-kafka")
83
assert service.is_running

0 commit comments

Comments
 (0)