Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

[wip][poc] untested implementation of marker based sentaku interaction #4933

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions cfme/test_framework/sentaku_interaction.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""use_context(*contexts, **kw): wrap the test into appliance.contet.use(*contexts)
"""
import pytest


def pytest_configure(config):
config.addinivalue_line("markers", __doc__.splitlines()[0])


@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_call(item):
marker = item.get_marker("use_context")
appliance = item.funcargs.get('appliance')

if marker is None:
yield
elif appliance is None:
yield
# warn
else:
collected_contexts = []
for item in marker.args:
if isinstance(type, item):
collected_contexts.append(item)
else:
collected_contexts.extend(item)

with appliance.context.use(*collected_contexts, **marker.kwargs):
yield
Empty file added cfme/tests/ssui/__init__.py
Empty file.
14 changes: 5 additions & 9 deletions cfme/tests/ssui/test_ssui_login.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
import pytest

from utils.appliance import get_or_create_current_appliance
from utils.appliance import ViaSSUI


@pytest.mark.parametrize('context', [ViaSSUI])
def test_ssui_login(context):
appliance = get_or_create_current_appliance()

with appliance.context.use(context):
appliance.server.login()
# https://github.com/pytest-dev/pytest/issues/2540
# the tuple is needed
@pytest.mark.use_context((ViaSSUI,))
def test_ssui_login(appliance):
appliance.server.login()
1 change: 1 addition & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ def pytest_collection_finish(session):
'fixtures.pytest_store',
'cfme.test_framework.sprout.plugin',
'cfme.test_framework.appliance_police',
'cfme.test_framework.sentaku_interaction',

'fixtures.portset',

Expand Down