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

[WIPTEST] Add type annotations #10226

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
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
5 changes: 2 additions & 3 deletions cfme/containers/provider/openshift.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ class AlertsEndpoint(ServiceBasedEndpoint):

@attr.s(eq=False)
class OpenshiftProvider(ContainersProvider, ConsoleMixin, Taggable):

num_route = ['num_route']
STATS_TO_MATCH = ContainersProvider.STATS_TO_MATCH + num_route
type_name = "openshift"
Expand Down Expand Up @@ -351,7 +350,7 @@ def _copy_certificate():
provider_ssh = self.cli.ssh_client
appliance_ssh = self.appliance.ssh_client()

# Connection to the applince in case of dead connection
# Connection to the appliance in case of dead connection
if not appliance_ssh.connected:
appliance_ssh.connect()

Expand All @@ -371,7 +370,7 @@ def _copy_certificate():
message="Copy certificate from OCP to CFME")
appliance_ssh.exec_command("update-ca-trust")

# restarting evemserverd to apply the new SSL certificate
# restarting evmserverd to apply the new SSL certificate
self.appliance.evmserverd.restart()
self.appliance.evmserverd.wait_for_running()
self.appliance.wait_for_web_ui()
Expand Down
42 changes: 26 additions & 16 deletions cfme/fixtures/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,17 @@
:py:func:`temp_appliances_unconfig`.
"""
from contextlib import contextmanager
from typing import ContextManager
from typing import Iterable
from typing import Tuple

import pytest

from cfme.test_framework.sprout.client import SproutClient
from cfme.utils import conf
from cfme.utils import periodic_call
from cfme.utils import the_only_one_from
from cfme.utils.appliance import IPAppliance
from cfme.utils.log import logger


Expand All @@ -31,7 +36,7 @@ def sprout_appliances(
provider_type=None,
version=None,
**kwargs
):
) -> ContextManager[Iterable[IPAppliance]]:
""" Provisions one or more appliances for testing

Args:
Expand Down Expand Up @@ -89,21 +94,21 @@ def temp_appliance_preconfig(temp_appliance_preconfig_modscope):
@pytest.fixture(scope="module")
def temp_appliance_preconfig_modscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=True) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


@pytest.fixture(scope="class")
def temp_appliance_preconfig_clsscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=True) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


@pytest.fixture(scope="function")
def temp_appliance_preconfig_funcscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=True) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


Expand All @@ -118,7 +123,7 @@ def temp_appliance_preconfig_funcscope_upgrade(request, appliance, pytestconfig)
split_version[0], (int(split_version[1]) - 1)
) # n-1 stream for upgrade
) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


Expand All @@ -129,7 +134,7 @@ def temp_appliance_preconfig_long(request, appliance, pytestconfig):
appliance, config=pytestconfig, preconfigured=True, lease_time=1440,
provider_type='rhevm'
) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


Expand All @@ -140,7 +145,7 @@ def temp_appliance_preconfig_funcscope_rhevm(appliance, pytestconfig):
config=pytestconfig, preconfigured=True,
provider_type='rhevm'
) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)


# Single appliance, unconfigured
Expand All @@ -152,21 +157,21 @@ def temp_appliance_unconfig(temp_appliance_unconfig_modscope):
@pytest.fixture(scope="module")
def temp_appliance_unconfig_modscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=False) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


@pytest.fixture(scope="class")
def temp_appliance_unconfig_clsscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=False) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


@pytest.fixture(scope="function")
def temp_appliance_unconfig_funcscope(request, appliance, pytestconfig):
with sprout_appliances(appliance, config=pytestconfig, preconfigured=False) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


Expand All @@ -178,7 +183,7 @@ def temp_appliance_unconfig_funcscope_rhevm(request, appliance, pytestconfig):
preconfigured=False,
provider_type='rhevm'
) as appliances:
yield appliances[0]
yield the_only_one_from(appliances)
_collect_logs(request.config, appliances)


Expand All @@ -189,7 +194,8 @@ def temp_appliances_unconfig(temp_appliances_unconfig_modscope):


@pytest.fixture(scope="module")
def temp_appliances_unconfig_modscope(request, appliance, pytestconfig):
def temp_appliances_unconfig_modscope(request, appliance, pytestconfig) \
-> Tuple[IPAppliance, IPAppliance]:
with sprout_appliances(
appliance,
config=pytestconfig,
Expand All @@ -201,7 +207,8 @@ def temp_appliances_unconfig_modscope(request, appliance, pytestconfig):


@pytest.fixture(scope="function")
def temp_appliances_unconfig_funcscope_rhevm(request, appliance, pytestconfig):
def temp_appliances_unconfig_funcscope_rhevm(request, appliance, pytestconfig) \
-> Tuple[IPAppliance, IPAppliance]:
with sprout_appliances(
appliance,
config=pytestconfig,
Expand All @@ -227,7 +234,8 @@ def temp_appliances_unconfig_modscope_rhevm(request, appliance, pytestconfig):


@pytest.fixture(scope="function")
def temp_appliances_preconfig_funcscope(request, appliance, pytestconfig):
def temp_appliances_preconfig_funcscope(request, appliance, pytestconfig) \
-> Tuple[IPAppliance, IPAppliance]:
with sprout_appliances(
appliance,
config=pytestconfig,
Expand All @@ -239,7 +247,8 @@ def temp_appliances_preconfig_funcscope(request, appliance, pytestconfig):


@pytest.fixture(scope="class")
def temp_appliances_unconfig_clsscope(request, appliance, pytestconfig):
def temp_appliances_unconfig_clsscope(request, appliance, pytestconfig) \
-> Tuple[IPAppliance, IPAppliance]:
with sprout_appliances(
appliance,
config=pytestconfig,
Expand All @@ -251,7 +260,8 @@ def temp_appliances_unconfig_clsscope(request, appliance, pytestconfig):


@pytest.fixture(scope="function")
def temp_appliances_unconfig_funcscope(request, appliance, pytestconfig):
def temp_appliances_unconfig_funcscope(request, appliance, pytestconfig) \
-> Tuple[IPAppliance, IPAppliance]:
with sprout_appliances(
appliance,
config=pytestconfig,
Expand Down
28 changes: 18 additions & 10 deletions cfme/fixtures/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from configparser import ConfigParser
from contextlib import contextmanager
from io import StringIO
from typing import ContextManager
from typing import Iterable
from typing import Tuple

import fauxfactory
import pytest
Expand All @@ -18,10 +21,12 @@
from cfme.test_framework.sprout.client import AuthException
from cfme.test_framework.sprout.client import SproutClient
from cfme.utils import conf
from cfme.utils.appliance.console import configure_appliances_ha
from cfme.utils import the_only_one_from
from cfme.utils.appliance import IPAppliance
from cfme.utils.conf import auth_data
from cfme.utils.conf import cfme_data
from cfme.utils.conf import credentials
from cfme.utils.ha import configure_appliances_ha
from cfme.utils.log import logger
from cfme.utils.providers import list_providers_by_class
from cfme.utils.version import Version
Expand All @@ -39,7 +44,7 @@ def unconfigured_appliance(request, appliance, pytestconfig):
config=pytestconfig,
provider_type='rhevm',
) as apps:
yield apps[0]
yield the_only_one_from(apps)
_collect_logs(request.config, apps)


Expand All @@ -52,7 +57,7 @@ def unconfigured_appliance_secondary(request, appliance, pytestconfig):
config=pytestconfig,
provider_type='rhevm',
) as apps:
yield apps[0]
yield the_only_one_from(apps)
_collect_logs(request.config, apps)


Expand All @@ -78,7 +83,7 @@ def configured_appliance(request, appliance, pytestconfig):
config=pytestconfig,
provider_type='rhevm',
) as apps:
yield apps[0]
yield the_only_one_from(apps)
_collect_logs(request.config, apps)


Expand Down Expand Up @@ -190,7 +195,8 @@ def get_puddle_cfme_version(repo_file_path):


@contextmanager
def get_apps(requests, appliance, old_version, count, preconfigured, pytest_config):
def get_apps(request, appliance, old_version, count, preconfigured, pytest_config) \
-> ContextManager[Iterable[IPAppliance]]:
"""Requests appliance from sprout based on old_versions, edits partitions and adds
repo file for update"""
series = appliance.version.series()
Expand Down Expand Up @@ -240,23 +246,25 @@ def appliance_preupdate(appliance, old_version, request):
"""Requests single appliance from sprout."""
with get_apps(request, appliance, old_version, count=1, preconfigured=True,
pytest_config=request.config) as apps:
yield apps[0]
yield the_only_one_from(apps)


@pytest.fixture
def multiple_preupdate_appliances(appliance, old_version, request):
def multiple_preupdate_appliances(appliance, old_version, request) \
-> Tuple[IPAppliance, IPAppliance]:
"""Requests multiple appliances from sprout."""
with get_apps(request, appliance, old_version, count=2, preconfigured=False,
pytest_config=request.config) as apps:
yield apps
yield tuple(apps)


@pytest.fixture
def ha_multiple_preupdate_appliances(appliance, old_version, request):
def ha_multiple_preupdate_appliances(appliance, old_version, request) \
-> Tuple[IPAppliance, IPAppliance, IPAppliance]:
"""Requests multiple appliances from sprout."""
with get_apps(request, appliance, old_version, count=3, preconfigured=False,
pytest_config=request.config) as apps:
yield apps
yield tuple(apps)


@pytest.fixture
Expand Down
9 changes: 7 additions & 2 deletions cfme/fixtures/multi_region.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
from typing import List
from typing import Optional

import attr
import pytest

from cfme.utils.appliance import IPAppliance


@attr.s
class ApplianceCluster:
Expand All @@ -9,8 +14,8 @@ class ApplianceCluster:
Appliance from global region is stored in global_appliance.
Whereas remote region appliances are stored in remote_appliances property.
"""
global_appliance = attr.ib(default=None)
remote_appliances = attr.ib(default=[])
global_appliance: Optional[IPAppliance] = attr.ib(default=None)
remote_appliances: List[IPAppliance] = attr.ib(default=[])


@pytest.fixture(scope='module')
Expand Down
4 changes: 2 additions & 2 deletions cfme/fixtures/pytest_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ class Store:

@property
def current_appliance(self):
# layz import due to loops and loops and loops
# lazy import due to loops and loops and loops
from cfme.utils import appliance
# TODO: concieve a better way to detect/log import-time missuse
# TODO: conceive a better way to detect/log import-time misuse
# assert self.config is not None, 'current appliance not in scope'
return appliance.current_appliance

Expand Down
Loading