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:
Roman Vasilets
2014-12-01 19:47:10 +02:00
parent 07500da48b
commit 762b6aac6b
2 changed files with 46 additions and 0 deletions

View File

@@ -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"))

View File

@@ -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