100% coverage in functional tests
In Rally, we have functional tests that run different CLI commands and check that the CLI output contains all the expected data. We need to ensure that every single subcommand of “rally task”, “rally deployment” etc. (for example, “rally task start”, “rally task report”) is covered in these functional test with all possible parameters usage (e.g. the “--deployment” parameter in “rally task start --deployment <name>” didn’t get tested, which has lead to errors recently). Change-Id: I654ad4317b2d061dd899f5fdfb028cda50af9b8b
This commit is contained in:
@@ -71,3 +71,9 @@ class DeploymentTestCase(unittest.TestCase):
|
||||
self.rally("deployment create --name t_create_env --fromenv")
|
||||
self.assertRaises(utils.RallyCmdError, self.rally,
|
||||
("deployment check"))
|
||||
|
||||
def test_recreate(self):
|
||||
with mock.patch.dict("os.environ", utils.TEST_ENV):
|
||||
self.rally("deployment create --name t_create_env --fromenv")
|
||||
self.rally("deployment recreate --deployment t_create_env")
|
||||
self.assertIn("t_create_env", self.rally("deployment list"))
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
# under the License.
|
||||
|
||||
import os
|
||||
import re
|
||||
import unittest
|
||||
|
||||
import mock
|
||||
|
||||
from rally.cmd import envutils
|
||||
from tests.functional import utils
|
||||
|
||||
|
||||
@@ -39,6 +41,11 @@ class TaskTestCase(unittest.TestCase):
|
||||
]
|
||||
}
|
||||
|
||||
def _get_deployment_uuid(self, output):
|
||||
return re.search(
|
||||
r"Using deployment: (?P<uuid>[0-9a-f\-]{36})",
|
||||
output).group("uuid")
|
||||
|
||||
def test_status(self):
|
||||
rally = utils.Rally()
|
||||
cfg = self._get_sample_task_config()
|
||||
@@ -139,6 +146,39 @@ class TaskTestCase(unittest.TestCase):
|
||||
self.assertRaises(utils.RallyCmdError,
|
||||
rally, "task list --status not_existing_status")
|
||||
|
||||
def test_validate_is_valid(self):
|
||||
rally = utils.Rally()
|
||||
cfg = self._get_sample_task_config()
|
||||
config = utils.TaskConfig(cfg)
|
||||
output = rally("task validate --task %s" % config.filename)
|
||||
self.assertIn("Task config is valid", output)
|
||||
|
||||
def test_validate_is_invalid(self):
|
||||
rally = utils.Rally()
|
||||
with mock.patch.dict("os.environ", utils.TEST_ENV):
|
||||
deployment_id = envutils.get_global("RALLY_DEPLOYMENT")
|
||||
cfg = {"invalid": "config"}
|
||||
config = utils.TaskConfig(cfg)
|
||||
output = rally(("task validate --task %(task_file)s "
|
||||
"--deployment %(deployment_id)s") %
|
||||
{"task_file": config.filename,
|
||||
"deployment_id": deployment_id})
|
||||
self.assertIn("Task config is invalid", output)
|
||||
|
||||
def test_start(self):
|
||||
rally = utils.Rally()
|
||||
with mock.patch.dict("os.environ", utils.TEST_ENV):
|
||||
deployment_id = envutils.get_global("RALLY_DEPLOYMENT")
|
||||
cfg = self._get_sample_task_config()
|
||||
config = utils.TaskConfig(cfg)
|
||||
output = rally(("task start --task %(task_file)s "
|
||||
"--deployment %(deployment_id)s") %
|
||||
{"task_file": config.filename,
|
||||
"deployment_id": deployment_id})
|
||||
result = re.search(
|
||||
r"(?P<task_id>[0-9a-f\-]{36}) is started", output)
|
||||
self.assertIsNotNone(result)
|
||||
|
||||
# NOTE(oanufriev): Not implemented
|
||||
def test_abort(self):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user