Move tests into a ./tests folder
- K8sClient moved from ./models to ./managers - all YAMLs placed to ./tests/fixtures/templates - all tests placed to ./tests/ into separated folders depending on tests types - ssh_manager removed from helpers (unused) - main folder 'mcp_tests' renamed to 'fuel_ccp_tests' - conftest.py moved to the ./tests/system and ./tests/component folder because of failed unit tests (we use fixtures with autouse=True which fail unit tests). - empty conftest.py added to the root of fuel_ccp_tests module to get unit tests passed Change-Id: I25671dd7d6f3ee294a4e4146f9f2c2ba4d9b2d06
This commit is contained in:
parent
0253ed827e
commit
b36041e4ce
|
@ -0,0 +1,3 @@
|
|||
# DO NOT EDIT THIS FILE!
|
||||
# To include new fixtures, please use conftest.py files
|
||||
# located in the appropriate ./tests/* folders.
|
|
@ -13,8 +13,8 @@
|
|||
# under the License.
|
||||
import pytest
|
||||
|
||||
from mcp_tests.helpers import ext
|
||||
from mcp_tests.managers import ccpmanager
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
from fuel_ccp_tests.managers import ccpmanager
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
|
@ -17,8 +17,8 @@ import time
|
|||
|
||||
import pytest
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests.helpers import utils
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests.helpers import utils
|
||||
|
||||
LOG = logger.logger
|
||||
|
||||
|
@ -41,7 +41,8 @@ def pytest_runtest_makereport(item, call):
|
|||
|
||||
|
||||
def pytest_runtest_setup(item):
|
||||
item.cls._current_test = item.function
|
||||
if item.cls is not None:
|
||||
item.cls._current_test = item.function
|
||||
item._start_time = time.time()
|
||||
head = "<" * 5 + "#" * 30 + "[ {} ]" + "#" * 30 + ">" * 5
|
||||
head = head.format(item.function.__name__)
|
|
@ -12,7 +12,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import pytest
|
||||
from mcp_tests import settings_oslo
|
||||
from fuel_ccp_tests import settings_oslo
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
|
@ -14,9 +14,9 @@
|
|||
|
||||
import pytest
|
||||
|
||||
from mcp_tests.helpers import ext
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.managers import k8smanager
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.managers import k8smanager
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
|
@ -13,10 +13,10 @@
|
|||
# under the License.
|
||||
import pytest
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests.managers import envmanager_devops
|
||||
from mcp_tests.managers import envmanager_empty
|
||||
from mcp_tests.managers import underlay_ssh_manager
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests.managers import envmanager_devops
|
||||
from fuel_ccp_tests.managers import envmanager_empty
|
||||
from fuel_ccp_tests.managers import underlay_ssh_manager
|
||||
|
||||
LOG = logger.logger
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
from __future__ import division
|
||||
|
||||
from mcp_tests import logger
|
||||
from fuel_ccp_tests import logger
|
||||
|
||||
|
||||
LOG = logger.logger
|
|
@ -21,8 +21,8 @@ import re
|
|||
from devops.helpers import templates
|
||||
import yaml
|
||||
|
||||
from mcp_tests.helpers import mcp_tests_exceptions
|
||||
from mcp_tests import logger
|
||||
from fuel_ccp_tests.helpers import exceptions
|
||||
from fuel_ccp_tests import logger
|
||||
|
||||
|
||||
LOG = logger.logger
|
||||
|
@ -53,7 +53,7 @@ def fix_devops_config(config):
|
|||
:returns: config dict
|
||||
"""
|
||||
if not isinstance(config, dict):
|
||||
raise mcp_tests_exceptions.DevopsConfigTypeError(
|
||||
raise exceptions.DevopsConfigTypeError(
|
||||
type_name=type(config).__name__
|
||||
)
|
||||
if 'template' in config:
|
||||
|
@ -283,7 +283,7 @@ class EnvironmentConfig(object):
|
|||
it's possible simply set value by keypath
|
||||
"""
|
||||
if self.config is None:
|
||||
raise mcp_tests_exceptions.DevopsConfigIsNone()
|
||||
raise exceptions.DevopsConfigIsNone()
|
||||
conf = self._config['template']['devops_settings']
|
||||
set_value_for_dict_by_keypath(conf, keypath, value)
|
||||
|
||||
|
@ -293,7 +293,7 @@ class EnvironmentConfig(object):
|
|||
:param filename: string
|
||||
"""
|
||||
if self._config is None:
|
||||
raise mcp_tests_exceptions.DevopsConfigIsNone()
|
||||
raise exceptions.DevopsConfigIsNone()
|
||||
with open(filename, 'w') as f:
|
||||
f.write(
|
||||
yaml.dump(
|
|
@ -22,8 +22,8 @@ import traceback
|
|||
|
||||
import yaml
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
|
||||
|
||||
LOG = logger.logger
|
|
@ -16,7 +16,7 @@ import logging
|
|||
import os
|
||||
import traceback
|
||||
|
||||
from mcp_tests import settings
|
||||
from fuel_ccp_tests import settings
|
||||
|
||||
if not os.path.exists(settings.LOGS_DIR):
|
||||
os.makedirs(settings.LOGS_DIR)
|
|
@ -12,9 +12,9 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from mcp_tests.helpers import mcp_tests_exceptions
|
||||
from mcp_tests import settings
|
||||
from mcp_tests import logger
|
||||
from fuel_ccp_tests.helpers import exceptions
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests import logger
|
||||
|
||||
LOG = logger.logger
|
||||
|
||||
|
@ -72,7 +72,7 @@ class CCPManager(object):
|
|||
|
||||
def update_service(self, service_name):
|
||||
if not settings.SERVICE_PATH:
|
||||
raise mcp_tests_exceptions.VariableNotSet('SERVICE_PATH')
|
||||
raise exceptions.VariableNotSet('SERVICE_PATH')
|
||||
with self.__underlay.remote(
|
||||
host=self.__config.k8s.kube_host) as remote:
|
||||
remote.execute(
|
|
@ -17,11 +17,11 @@ from devops.helpers import helpers
|
|||
from devops import models
|
||||
from django import db
|
||||
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.helpers import env_config
|
||||
from mcp_tests.helpers import ext
|
||||
from mcp_tests.helpers import mcp_tests_exceptions as exc
|
||||
from mcp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.helpers import env_config
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
from fuel_ccp_tests.helpers import exceptions
|
||||
from fuel_ccp_tests import logger
|
||||
|
||||
|
||||
LOG = logger.logger
|
||||
|
@ -64,7 +64,7 @@ class EnvironmentManager(object):
|
|||
def _devops_config(self, conf):
|
||||
"""Setter for self.__devops_config
|
||||
|
||||
:param conf: mcp_tests.helpers.env_config.EnvironmentConfig
|
||||
:param conf: fuel_ccp_tests.helpers.env_config.EnvironmentConfig
|
||||
"""
|
||||
if not isinstance(conf, env_config.EnvironmentConfig):
|
||||
msg = ("Unexpected type of devops config. Got '{0}' " +
|
||||
|
@ -126,7 +126,7 @@ class EnvironmentManager(object):
|
|||
self._env.snapshot(name, description=description, force=True)
|
||||
self._env.resume()
|
||||
else:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
|
||||
def revert_snapshot(self, name):
|
||||
"""Revert snapshot by name
|
||||
|
@ -139,7 +139,7 @@ class EnvironmentManager(object):
|
|||
LOG.info("Resuming environment after revert")
|
||||
self._env.resume()
|
||||
else:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
self.__config.hardware.current_snapshot = name
|
||||
|
||||
def _create_environment(self):
|
||||
|
@ -149,7 +149,7 @@ class EnvironmentManager(object):
|
|||
otherwise we tries to generate config from self.config_file,
|
||||
"""
|
||||
if self._devops_config.config is None:
|
||||
raise exc.DevopsConfigPathIsNotSet()
|
||||
raise exceptions.DevopsConfigPathIsNotSet()
|
||||
settings = self._devops_config
|
||||
env_name = settings['env_name']
|
||||
LOG.debug(
|
||||
|
@ -157,7 +157,7 @@ class EnvironmentManager(object):
|
|||
)
|
||||
if env_name is None:
|
||||
LOG.error('Environment name is not set!')
|
||||
raise exc.EnvironmentNameIsNotSet()
|
||||
raise exceptions.EnvironmentNameIsNotSet()
|
||||
try:
|
||||
self._env = models.Environment.create_environment(
|
||||
settings.config
|
||||
|
@ -166,7 +166,7 @@ class EnvironmentManager(object):
|
|||
LOG.error(
|
||||
'Seems like environment {0} already exists.'.format(env_name)
|
||||
)
|
||||
raise exc.EnvironmentAlreadyExists(env_name)
|
||||
raise exceptions.EnvironmentAlreadyExists(env_name)
|
||||
self._env.define()
|
||||
self._start_environment()
|
||||
LOG.info(
|
||||
|
@ -178,7 +178,7 @@ class EnvironmentManager(object):
|
|||
|
||||
"""
|
||||
if self._env is None:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
self._env.start()
|
||||
for node in self.k8s_nodes:
|
||||
LOG.debug("Waiting for SSH on node '{}...'".format(node.name))
|
||||
|
@ -194,19 +194,19 @@ class EnvironmentManager(object):
|
|||
def resume(self):
|
||||
"""Resume environment"""
|
||||
if self._env is None:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
self._env.resume()
|
||||
|
||||
def suspend(self):
|
||||
"""Suspend environment"""
|
||||
if self._env is None:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
self._env.suspend()
|
||||
|
||||
def stop(self):
|
||||
"""Stop environment"""
|
||||
if self._env is None:
|
||||
raise exc.EnvironmentIsNotSet()
|
||||
raise exceptions.EnvironmentIsNotSet()
|
||||
self._env.destroy()
|
||||
|
||||
def has_snapshot(self, name):
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
import urllib3
|
||||
|
||||
from mcp_tests.models.k8s.cluster import K8sCluster
|
||||
from fuel_ccp_tests.managers.k8s.cluster import K8sCluster
|
||||
|
||||
__all__ = ['K8sCluster']
|
||||
|
|
@ -20,30 +20,31 @@ from k8sclient.client.apis import apiv_api
|
|||
from k8sclient.client.apis import apisextensionsvbeta_api
|
||||
from k8sclient.client.apis import apisbatchv_api
|
||||
|
||||
from mcp_tests.models.k8s.componentstatuses import \
|
||||
from fuel_ccp_tests.managers.k8s.componentstatuses import \
|
||||
K8sComponentStatusManager
|
||||
from mcp_tests.models.k8s.daemonsets import K8sDaemonSetManager
|
||||
from mcp_tests.models.k8s.deployments import K8sDeploymentManager
|
||||
from mcp_tests.models.k8s.endpoints import K8sEndpointManager
|
||||
from mcp_tests.models.k8s.events import K8sEventManager
|
||||
from mcp_tests.models.k8s.horizontalpodautoscalers import \
|
||||
from fuel_ccp_tests.managers.k8s.daemonsets import K8sDaemonSetManager
|
||||
from fuel_ccp_tests.managers.k8s.deployments import K8sDeploymentManager
|
||||
from fuel_ccp_tests.managers.k8s.endpoints import K8sEndpointManager
|
||||
from fuel_ccp_tests.managers.k8s.events import K8sEventManager
|
||||
from fuel_ccp_tests.managers.k8s.horizontalpodautoscalers import \
|
||||
K8sHorizontalPodAutoscalerManager
|
||||
from mcp_tests.models.k8s.ingresses import K8sIngressManager
|
||||
from mcp_tests.models.k8s.jobs import K8sJobManager
|
||||
from mcp_tests.models.k8s.limitranges import K8sLimitRangeManager
|
||||
from mcp_tests.models.k8s.namespaces import K8sNamespaceManager
|
||||
from mcp_tests.models.k8s.nodes import K8sNodeManager
|
||||
from mcp_tests.models.k8s.persistentvolumeclaims import \
|
||||
from fuel_ccp_tests.managers.k8s.ingresses import K8sIngressManager
|
||||
from fuel_ccp_tests.managers.k8s.jobs import K8sJobManager
|
||||
from fuel_ccp_tests.managers.k8s.limitranges import K8sLimitRangeManager
|
||||
from fuel_ccp_tests.managers.k8s.namespaces import K8sNamespaceManager
|
||||
from fuel_ccp_tests.managers.k8s.nodes import K8sNodeManager
|
||||
from fuel_ccp_tests.managers.k8s.persistentvolumeclaims import \
|
||||
K8sPersistentVolumeClaimManager
|
||||
from mcp_tests.models.k8s.persistentvolumes import \
|
||||
from fuel_ccp_tests.managers.k8s.persistentvolumes import \
|
||||
K8sPersistentVolumeManager
|
||||
from mcp_tests.models.k8s.pods import K8sPodManager
|
||||
from mcp_tests.models.k8s.replicationcontrollers import \
|
||||
from fuel_ccp_tests.managers.k8s.pods import K8sPodManager
|
||||
from fuel_ccp_tests.managers.k8s.replicationcontrollers import \
|
||||
K8sReplicationControllerManager
|
||||
from mcp_tests.models.k8s.resourcequotas import K8sResourceQuotaManager
|
||||
from mcp_tests.models.k8s.secrets import K8sSecretManager
|
||||
from mcp_tests.models.k8s.serviceaccounts import K8sServiceAccountManager
|
||||
from mcp_tests.models.k8s.services import K8sServiceManager
|
||||
from fuel_ccp_tests.managers.k8s.resourcequotas import K8sResourceQuotaManager
|
||||
from fuel_ccp_tests.managers.k8s.secrets import K8sSecretManager
|
||||
from fuel_ccp_tests.managers.k8s.serviceaccounts import \
|
||||
K8sServiceAccountManager
|
||||
from fuel_ccp_tests.managers.k8s.services import K8sServiceManager
|
||||
|
||||
|
||||
class K8sCluster(object):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sComponentStatus(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sDaemonSet(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sDeployment(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sEndpoint(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sEvent(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sHorizontalPodAutoscaler(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sIngress(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sJob(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sLimitRange(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sNamespace(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sNode(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sPersistentVolumeClaim(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sPersistentVolume(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sPod(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sReplicationController(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sResourceQuota(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sSecret(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sServiceAccount(K8sBaseResource):
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
|
||||
|
||||
from mcp_tests.models.k8s.base import K8sBaseResource
|
||||
from mcp_tests.models.k8s.base import K8sBaseManager
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseResource
|
||||
from fuel_ccp_tests.managers.k8s.base import K8sBaseManager
|
||||
|
||||
|
||||
class K8sService(K8sBaseResource):
|
|
@ -17,10 +17,9 @@ import os
|
|||
|
||||
import yaml
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.models.k8s import cluster
|
||||
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.managers.k8s import cluster
|
||||
|
||||
LOG = logger.logger
|
||||
|
||||
|
@ -104,21 +103,23 @@ class K8SManager(object):
|
|||
host=self.__config.k8s.kube_host)
|
||||
return k8sclient
|
||||
|
||||
# NEW
|
||||
@classmethod
|
||||
def create_registry(cls, remote):
|
||||
registry_pod = os.getcwd() + '/mcp_tests/templates/' \
|
||||
def create_registry(self):
|
||||
registry_pod = os.getcwd() + '/fuel_ccp_tests/templates/' \
|
||||
'registry_templates/registry-pod.yaml'
|
||||
service_registry = os.getcwd() + '/mcp_tests/templates/' \
|
||||
service_registry = os.getcwd() + '/fuel_ccp_tests/templates/' \
|
||||
'registry_templates/' \
|
||||
'service-registry.yaml'
|
||||
for item in registry_pod, service_registry:
|
||||
remote.upload(item, './')
|
||||
command = [
|
||||
'kubectl create -f ~/{0}'.format(registry_pod.split('/')[-1]),
|
||||
'kubectl create'
|
||||
' -f ~/{0}'.format(service_registry.split('/')[-1]), ]
|
||||
with remote.get_sudo(remote):
|
||||
for cmd in command:
|
||||
result = remote.execute(cmd)
|
||||
assert result['exit_code'] == 0, "Registry wasn't created"
|
||||
|
||||
with self.__underlay.remote(
|
||||
host=self.__config.k8s.kube_host) as remote:
|
||||
|
||||
for item in registry_pod, service_registry:
|
||||
remote.upload(item, './')
|
||||
command = [
|
||||
'kubectl create -f ~/{0}'.format(registry_pod.split('/')[-1]),
|
||||
'kubectl create'
|
||||
' -f ~/{0}'.format(service_registry.split('/')[-1]), ]
|
||||
with remote.get_sudo(remote):
|
||||
for cmd in command:
|
||||
result = remote.execute(cmd)
|
||||
assert result['exit_code'] == 0, "Registry wasn't created"
|
|
@ -197,7 +197,7 @@ class UnderlaySSHManager(object):
|
|||
:type error_info: str
|
||||
:type expected: list
|
||||
:type raise_on_err: bool
|
||||
:rtype: ExecResult
|
||||
:rtype: list stdout
|
||||
:raises: DevopsCalledProcessError
|
||||
"""
|
||||
remote = self.remote(node_name=node_name, host=host,
|
|
@ -20,13 +20,13 @@ _boolean_states = {'1': True, 'yes': True, 'true': True, 'on': True,
|
|||
|
||||
_default_conf = pkg_resources.resource_filename(
|
||||
__name__, 'templates/default.yaml')
|
||||
# _default_conf = os.getcwd() + '/mcp_tests/templates/default.yaml'
|
||||
|
||||
|
||||
def get_var_as_bool(name, default):
|
||||
value = os.environ.get(name, '')
|
||||
return _boolean_states.get(value.lower(), default)
|
||||
|
||||
|
||||
LOGS_DIR = os.environ.get('LOGS_DIR', os.getcwd())
|
||||
TIMESTAT_PATH_YAML = os.environ.get(
|
||||
'TIMESTAT_PATH_YAML', os.path.join(
|
|
@ -15,9 +15,8 @@ import copy
|
|||
import pkg_resources
|
||||
|
||||
from oslo_config import cfg
|
||||
from mcp_tests.helpers import oslo_cfg_types as ct
|
||||
from mcp_tests.helpers import ext
|
||||
|
||||
from fuel_ccp_tests.helpers import oslo_cfg_types as ct
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
|
||||
_default_conf = pkg_resources.resource_filename(
|
||||
__name__, 'templates/default.yaml')
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
pytest_plugins = ['common_fixtures',
|
||||
'config_fixtures',
|
||||
'underlay_fixtures',
|
||||
'k8s_fixtures',
|
||||
'ccp_fixtures']
|
||||
pytest_plugins = ['fuel_ccp_tests.fixtures.common_fixtures',
|
||||
'fuel_ccp_tests.fixtures.config_fixtures',
|
||||
'fuel_ccp_tests.fixtures.underlay_fixtures',
|
||||
'fuel_ccp_tests.fixtures.k8s_fixtures',
|
||||
'fuel_ccp_tests.fixtures.ccp_fixtures']
|
|
@ -19,9 +19,9 @@ import docker
|
|||
from devops.helpers import helpers
|
||||
import pytest
|
||||
|
||||
from mcp_tests.helpers import containers as cs
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from fuel_ccp_tests.helpers import containers as cs
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
|
||||
LOG = logger.logger
|
||||
|
|
@ -11,12 +11,13 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from devops.helpers import helpers
|
||||
import pytest
|
||||
import yaml
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
|
||||
LOG = logger.logger
|
||||
LOG.addHandler(logger.console)
|
||||
|
@ -28,8 +29,7 @@ class SystemBaseTest(object):
|
|||
def calico_ipip_exists(self, underlay):
|
||||
"""Check if ipip is in calico pool config
|
||||
|
||||
:param node: devops.models.Node
|
||||
:param env: mcp_tests.models.envmanager.EnvironmentManager
|
||||
:param underlay: fuel_ccp_tests.managers.UnderlaySSHManager
|
||||
"""
|
||||
cmd = "calicoctl pool show | grep ipip"
|
||||
for node_name in underlay.node_names():
|
||||
|
@ -38,8 +38,8 @@ class SystemBaseTest(object):
|
|||
def required_images_exists(self, node_name, underlay, required_images):
|
||||
"""Check if there are all base containers on node
|
||||
|
||||
:param node: devops.models.Node
|
||||
:param env: mcp_tests.models.envmanager.EnvironmentManager
|
||||
:param node_name: string
|
||||
:param underlay: fuel_ccp_tests.managers.UnderlaySSHManager
|
||||
:param required_images: list
|
||||
"""
|
||||
cmd = "docker ps --no-trunc --format '{{.Image}}'"
|
||||
|
@ -51,7 +51,7 @@ class SystemBaseTest(object):
|
|||
def check_list_required_images(self, underlay, required_images):
|
||||
"""Check running containers on each node
|
||||
|
||||
:param env: mcp_tests.models.envmanager.EnvironmentManager
|
||||
:param underlay: fuel_ccp_tests.managers.UnderlaySSHManager
|
||||
:param required_images: list
|
||||
"""
|
||||
LOG.info("Check that required containers exist")
|
||||
|
@ -86,8 +86,8 @@ class SystemBaseTest(object):
|
|||
def check_pod_delete(self, k8s_pod, k8sclient):
|
||||
"""Deleting pod from k8s
|
||||
|
||||
:param k8s_pod: mcp_tests.models.k8s.nodes.K8sNode
|
||||
:param k8sclient: mcp_tests.models.k8s.cluster.K8sCluster
|
||||
:param k8s_pod: fuel_ccp_tests.managers.k8s.nodes.K8sNode
|
||||
:param k8sclient: fuel_ccp_tests.managers.k8s.cluster.K8sCluster
|
||||
"""
|
||||
LOG.info("Deleting pod '{}'".format(k8s_pod.name))
|
||||
LOG.debug("Pod status:\n{}".format(k8s_pod.status))
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2016 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
pytest_plugins = ['fuel_ccp_tests.fixtures.common_fixtures',
|
||||
'fuel_ccp_tests.fixtures.config_fixtures',
|
||||
'fuel_ccp_tests.fixtures.underlay_fixtures',
|
||||
'fuel_ccp_tests.fixtures.k8s_fixtures',
|
||||
'fuel_ccp_tests.fixtures.ccp_fixtures']
|
|
@ -14,10 +14,10 @@
|
|||
import os
|
||||
import pytest
|
||||
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.helpers import post_os_deploy_checks
|
||||
from mcp_tests.helpers import ext
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.helpers import post_os_deploy_checks
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
|
||||
LOG = logger.logger
|
||||
LOG.addHandler(logger.console)
|
||||
|
@ -59,7 +59,7 @@ class TestServiceHorizon(object):
|
|||
k8scluster.create_registry(remote)
|
||||
ccpcluster.do_build('builder_push',
|
||||
registry_address=settings.REGISTRY)
|
||||
topology_path = os.getcwd() + '/mcp_tests/templates/' \
|
||||
topology_path = os.getcwd() + '/fuel_ccp_tests/templates/' \
|
||||
'k8s_templates/k8s_topology.yaml'
|
||||
remote.upload(topology_path, './')
|
||||
ccpcluster.do_deploy(registry_address=settings.REGISTRY,
|
||||
|
@ -74,7 +74,7 @@ class TestServiceHorizon(object):
|
|||
"kubectl get service --namespace ccp horizon -o yaml |"
|
||||
" awk '/nodePort: / {print $NF}'")['stdout'])
|
||||
remote.upload(
|
||||
os.getcwd() + '/mcp_tests/templates/misc/local-horizon.conf',
|
||||
os.getcwd() + '/fuel_ccp_tests/templates/misc/local-horizon.conf',
|
||||
"/tmp/horizon-tests")
|
||||
remote.execute(
|
||||
r"sed -i '/dashboard_url=/c\dashboard_url=http://{0}:{1}'"
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import pytest
|
||||
|
||||
from mcp_tests.logger import logger
|
||||
from fuel_ccp_tests.logger import logger
|
||||
|
||||
|
||||
@pytest.yield_fixture(scope='module')
|
|
@ -14,9 +14,9 @@
|
|||
import pytest
|
||||
|
||||
import base_test
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.helpers import ext
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
|
||||
LOG = logger.logger
|
||||
|
||||
|
@ -41,7 +41,7 @@ class TestFuelCCPInstaller(base_test.SystemBaseTest,
|
|||
def get_nginx_spec(k8s_node=None):
|
||||
"""Create spec for k8s pod creation
|
||||
|
||||
:param k8s_node: mcp_tests.models.k8s.nodes.K8sNode
|
||||
:param k8s_node: fuel_ccp_tests.managers.k8s.nodes.K8sNode
|
||||
"""
|
||||
pod = {
|
||||
"apiVersion": "v1",
|
||||
|
@ -63,9 +63,9 @@ class TestFuelCCPInstaller(base_test.SystemBaseTest,
|
|||
def check_nginx_pod_is_reached(underlay, ip, node_name=None):
|
||||
"""Simple check that nginx could be reached
|
||||
|
||||
:param env: mcp_tests.models.envmanager.EnvironmentManager
|
||||
:param underlay: fuel_ccp_tests.managers.UnderlaySSHManager
|
||||
:param ip: string
|
||||
:param node: devops.models.node.Node
|
||||
:param node_name: string
|
||||
"""
|
||||
env_node = node_name or underlay.node_names()[0]
|
||||
cmd = "curl http://{}".format(ip)
|
|
@ -16,11 +16,11 @@ import pytest
|
|||
import yaml
|
||||
|
||||
import base_test
|
||||
from mcp_tests import logger
|
||||
from mcp_tests import settings
|
||||
from mcp_tests.helpers import post_install_k8s_checks
|
||||
from mcp_tests.helpers import post_os_deploy_checks
|
||||
from mcp_tests.helpers import ext
|
||||
from fuel_ccp_tests import logger
|
||||
from fuel_ccp_tests import settings
|
||||
from fuel_ccp_tests.helpers import post_install_k8s_checks
|
||||
from fuel_ccp_tests.helpers import post_os_deploy_checks
|
||||
from fuel_ccp_tests.helpers import ext
|
||||
|
||||
LOG = logger.logger
|
||||
|
||||
|
@ -47,11 +47,13 @@ class TestDeployOpenstack(base_test.SystemBaseTest):
|
|||
return params
|
||||
|
||||
def create_registry(self, remote):
|
||||
registry_pod = os.getcwd() + '/mcp_tests/templates/' \
|
||||
'registry_templates/registry-pod.yaml'
|
||||
service_registry = os.getcwd() + '/mcp_tests/templates/' \
|
||||
'registry_templates/' \
|
||||
'service-registry.yaml'
|
||||
registry_pod = os.path.join(
|
||||
os.getcwd(),
|
||||
'/fuel_ccp_tests/templates/registry_templates/registry-pod.yaml')
|
||||
service_registry = os.path.join(
|
||||
os.getcwd(),
|
||||
'/fuel_ccp_tests/templates/registry_templates/'
|
||||
'service-registry.yaml')
|
||||
for item in registry_pod, service_registry:
|
||||
remote.upload(item, './')
|
||||
command = [
|
||||
|
@ -70,8 +72,9 @@ class TestDeployOpenstack(base_test.SystemBaseTest):
|
|||
assert result['exit_code'] == 0
|
||||
|
||||
def pre_build_deploy_step(self, remote):
|
||||
topology_path = os.getcwd() + '/mcp_tests/templates/' \
|
||||
'k8s_templates/k8s_topology.yaml'
|
||||
topology_path = os.path.join(
|
||||
os.getcwd(),
|
||||
'/fuel_ccp_tests/templates/k8s_templates/k8s_topology.yaml')
|
||||
remote.upload(topology_path, './')
|
||||
command = '>/var/log/microservices.log'
|
||||
with remote.get_sudo(remote):
|
||||
|
@ -111,8 +114,10 @@ class TestDeployOpenstack(base_test.SystemBaseTest):
|
|||
registry = '127.0.0.1:31500'
|
||||
self.create_registry(remote)
|
||||
exclude_list = ['deploy']
|
||||
yaml_path = os.getcwd() + '/mcp_tests/templates/' \
|
||||
'k8s_templates/build-deploy_cluster.yaml'
|
||||
yaml_path = os.path.join(
|
||||
os.getcwd(),
|
||||
'/fuel_ccp_tests/templates/'
|
||||
'k8s_templates/build-deploy_cluster.yaml')
|
||||
with open(yaml_path, 'r') as yaml_path:
|
||||
params_list = yaml.load(yaml_path)['ccp-microservices-options']
|
||||
params = self.get_params(params_list, exclude_list)
|
||||
|
@ -142,8 +147,10 @@ class TestDeployOpenstack(base_test.SystemBaseTest):
|
|||
"current value {0}".format(settings.REGISTRY))
|
||||
|
||||
exclude_list = ['build', '--builder-push', '--builder-workers 1']
|
||||
yaml_path = os.getcwd() + '/mcp_tests/templates/k8s_templates/' \
|
||||
'build-deploy_cluster.yaml'
|
||||
yaml_path = os.path.join(
|
||||
os.getcwd(),
|
||||
'/fuel_ccp_tests/templates/'
|
||||
'k8s_templates/build-deploy_cluster.yaml')
|
||||
|
||||
with open(yaml_path, 'r') as yaml_path:
|
||||
params_list = yaml.load(yaml_path)['ccp-microservices-options']
|
|
@ -2,7 +2,7 @@ import copy
|
|||
|
||||
import pytest
|
||||
|
||||
from mcp_tests.helpers import env_config as funcs
|
||||
from fuel_ccp_tests.helpers import env_config as funcs
|
||||
|
||||
# Test data for funcs.return_obj
|
||||
testdata1 = [
|
|
@ -1,3 +1,3 @@
|
|||
[pytest]
|
||||
addopts = -vvv -s -p no:django -p no:ipdb --junit-xml=nosetests.xml
|
||||
testpaths = mcp_tests
|
||||
testpaths = fuel_ccp_tests
|
||||
|
|
6
tox.ini
6
tox.ini
|
@ -5,16 +5,16 @@
|
|||
|
||||
[tox]
|
||||
skipsdist = True
|
||||
envlist = pep8, py27eters = True
|
||||
envlist = py35,py34,py27,pypy,pep8
|
||||
|
||||
[testenv]
|
||||
install_command = pip install --allow-external -U {opts} {packages}
|
||||
deps =
|
||||
setuptools
|
||||
-r{toxinidir}/mcp_tests/requirements.txt
|
||||
-r{toxinidir}/fuel_ccp_tests/requirements.txt
|
||||
-r{toxinidir}/test-requirements.txt
|
||||
usedevelop = False
|
||||
commands = py.test -s -vvv mcp_tests/tests
|
||||
commands = py.test -s -vvv fuel_ccp_tests/tests/unit
|
||||
|
||||
[testenv:venv]
|
||||
commands = {posargs}
|
||||
|
|
Loading…
Reference in New Issue