Merge "Move CommandFailed exception to tempest.exceptions"
diff --git a/tempest/cli/__init__.py b/tempest/cli/__init__.py
index d7b4a16..02f8c05 100644
--- a/tempest/cli/__init__.py
+++ b/tempest/cli/__init__.py
@@ -19,6 +19,7 @@
import tempest.cli.output_parser
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
import tempest.test
@@ -130,10 +131,10 @@
cmd, stdout=stdout, stderr=stderr)
result, result_err = proc.communicate()
if not fail_ok and proc.returncode != 0:
- raise CommandFailed(proc.returncode,
- cmd,
- result,
- result_err)
+ raise exceptions.CommandFailed(proc.returncode,
+ cmd,
+ result,
+ result_err)
return result
def assertTableStruct(self, items, field_names):
@@ -146,17 +147,3 @@
self.assertTrue(lines[0].startswith(beginning),
msg=('Beginning of first line has invalid content: %s'
% lines[:3]))
-
-
-class CommandFailed(Exception):
- def __init__(self, returncode, cmd, output, stderr):
- super(CommandFailed, self).__init__()
- self.returncode = returncode
- self.cmd = cmd
- self.stdout = output
- self.stderr = stderr
-
- def __str__(self):
- return ("Command '%s' returned non-zero exit status %d.\n"
- "stdout:\n%s\n"
- "stderr:\n%s" % (self.cmd, self.returncode, self.stdout, self.stderr))
diff --git a/tempest/cli/simple_read_only/test_cinder.py b/tempest/cli/simple_read_only/test_cinder.py
index 9a6b159..04971c1 100644
--- a/tempest/cli/simple_read_only/test_cinder.py
+++ b/tempest/cli/simple_read_only/test_cinder.py
@@ -19,6 +19,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
CONF = config.CONF
LOG = logging.getLogger(__name__)
@@ -40,7 +41,7 @@
super(SimpleReadOnlyCinderClientTest, cls).setUpClass()
def test_cinder_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.cinder,
'this-does-not-exist')
@@ -65,7 +66,7 @@
'Attached to'])
self.cinder('list', params='--all-tenants 1')
self.cinder('list', params='--all-tenants 0')
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.cinder,
'list',
params='--all-tenants bad')
diff --git a/tempest/cli/simple_read_only/test_glance.py b/tempest/cli/simple_read_only/test_glance.py
index 3fb1120..90cdc55 100644
--- a/tempest/cli/simple_read_only/test_glance.py
+++ b/tempest/cli/simple_read_only/test_glance.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
CONF = config.CONF
@@ -40,7 +41,7 @@
super(SimpleReadOnlyGlanceClientTest, cls).setUpClass()
def test_glance_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.glance,
'this-does-not-exist')
diff --git a/tempest/cli/simple_read_only/test_keystone.py b/tempest/cli/simple_read_only/test_keystone.py
index f8dcdba..9218fcd 100644
--- a/tempest/cli/simple_read_only/test_keystone.py
+++ b/tempest/cli/simple_read_only/test_keystone.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
CONF = config.CONF
@@ -34,7 +35,7 @@
"""
def test_admin_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.keystone,
'this-does-not-exist')
diff --git a/tempest/cli/simple_read_only/test_neutron.py b/tempest/cli/simple_read_only/test_neutron.py
index 2643596..87f6b67 100644
--- a/tempest/cli/simple_read_only/test_neutron.py
+++ b/tempest/cli/simple_read_only/test_neutron.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
from tempest import test
@@ -42,7 +43,7 @@
@test.attr(type='smoke')
def test_neutron_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.neutron,
'this-does-not-exist')
@@ -88,7 +89,7 @@
def _test_neutron_lbaas_command(self, command):
try:
self.neutron(command)
- except cli.CommandFailed as e:
+ except exceptions.CommandFailed as e:
if '404 Not Found' not in e.stderr:
self.fail('%s: Unexpected failure.' % command)
diff --git a/tempest/cli/simple_read_only/test_nova.py b/tempest/cli/simple_read_only/test_nova.py
index 70eb9ef..7085cc9 100644
--- a/tempest/cli/simple_read_only/test_nova.py
+++ b/tempest/cli/simple_read_only/test_nova.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
import tempest.test
@@ -47,7 +48,7 @@
super(SimpleReadOnlyNovaClientTest, cls).setUpClass()
def test_admin_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.nova,
'this-does-nova-exist')
@@ -84,11 +85,11 @@
self.nova('endpoints')
def test_admin_flavor_acces_list(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.nova,
'flavor-access-list')
# Failed to get access list for public flavor type
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.nova,
'flavor-access-list',
params='--flavor m1.tiny')
@@ -125,7 +126,7 @@
self.nova('list')
self.nova('list', params='--all-tenants 1')
self.nova('list', params='--all-tenants 0')
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.nova,
'list',
params='--all-tenants bad')
diff --git a/tempest/cli/simple_read_only/test_nova_manage.py b/tempest/cli/simple_read_only/test_nova_manage.py
index 67c19d8..dae0cf8 100644
--- a/tempest/cli/simple_read_only/test_nova_manage.py
+++ b/tempest/cli/simple_read_only/test_nova_manage.py
@@ -15,6 +15,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest.openstack.common import log as logging
@@ -46,7 +47,7 @@
super(SimpleReadOnlyNovaManageTest, cls).setUpClass()
def test_admin_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.nova_manage,
'this-does-nova-exist')
diff --git a/tempest/cli/simple_read_only/test_sahara.py b/tempest/cli/simple_read_only/test_sahara.py
index 773921a..2c6e0e2 100644
--- a/tempest/cli/simple_read_only/test_sahara.py
+++ b/tempest/cli/simple_read_only/test_sahara.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
from tempest import test
CONF = config.CONF
@@ -41,7 +42,7 @@
@test.attr(type='negative')
def test_sahara_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.sahara,
'this-does-not-exist')
diff --git a/tempest/cli/simple_read_only/test_swift.py b/tempest/cli/simple_read_only/test_swift.py
index c778542..069a384 100644
--- a/tempest/cli/simple_read_only/test_swift.py
+++ b/tempest/cli/simple_read_only/test_swift.py
@@ -17,6 +17,7 @@
from tempest import cli
from tempest import config
+from tempest import exceptions
CONF = config.CONF
@@ -37,7 +38,7 @@
super(SimpleReadOnlySwiftClientTest, cls).setUpClass()
def test_swift_fake_action(self):
- self.assertRaises(cli.CommandFailed,
+ self.assertRaises(exceptions.CommandFailed,
self.swift,
'this-does-not-exist')
diff --git a/tempest/exceptions.py b/tempest/exceptions.py
index 4eb1cea..9d443cc 100644
--- a/tempest/exceptions.py
+++ b/tempest/exceptions.py
@@ -211,3 +211,17 @@
class InvalidStructure(TempestException):
message = "Invalid structure of table with details"
+
+
+class CommandFailed(Exception):
+ def __init__(self, returncode, cmd, output, stderr):
+ super(CommandFailed, self).__init__()
+ self.returncode = returncode
+ self.cmd = cmd
+ self.stdout = output
+ self.stderr = stderr
+
+ def __str__(self):
+ return ("Command '%s' returned non-zero exit status %d.\n"
+ "stdout:\n%s\n"
+ "stderr:\n%s" % (self.cmd, self.returncode, self.stdout, self.stderr))
diff --git a/tempest/tests/cli/test_command_failed.py b/tempest/tests/cli/test_command_failed.py
index c539ac6..36a4fc8 100644
--- a/tempest/tests/cli/test_command_failed.py
+++ b/tempest/tests/cli/test_command_failed.py
@@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from tempest import cli
+from tempest import exceptions
from tempest.tests import base
@@ -22,8 +22,8 @@
stdout = "output"
stderr = "error"
try:
- raise cli.CommandFailed(returncode, cmd, stdout, stderr)
- except cli.CommandFailed as e:
+ raise exceptions.CommandFailed(returncode, cmd, stdout, stderr)
+ except exceptions.CommandFailed as e:
self.assertIn(str(returncode), str(e))
self.assertIn(cmd, str(e))
self.assertIn(stdout, str(e))