In CLI tests set merge_stderr to False by default
Ignore stderr by default, unless merge_stderr=True. ignoring stderr by
default makes the output more deterministic since stderr can contain
random log output (especially in *-manage commands)
Change-Id: I849444b8416e75c0383132ff2f93bd6d92df60f1
diff --git a/cli/__init__.py b/cli/__init__.py
index e244811..5d986c0 100644
--- a/cli/__init__.py
+++ b/cli/__init__.py
@@ -61,7 +61,7 @@
'nova', action, flags, params, admin, fail_ok)
def nova_manage(self, action, flags='', params='', fail_ok=False,
- merge_stderr=True):
+ merge_stderr=False):
"""Executes nova-manage command for the given action."""
return self.cmd(
'nova-manage', action, flags, params, fail_ok, merge_stderr)
@@ -83,8 +83,7 @@
return self.cmd(cmd, action, flags, params, fail_ok)
def cmd(self, cmd, action, flags='', params='', fail_ok=False,
- merge_stderr=True):
- #TODO(jogo): make merge_stderr default to False.
+ merge_stderr=False):
"""Executes specified command for the given action."""
cmd = ' '.join([CONF.cli.cli_dir + cmd,
flags, action, params])
@@ -94,7 +93,8 @@
if merge_stderr:
result = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
else:
- result = subprocess.check_output(cmd)
+ devnull = open('/dev/null', 'w')
+ result = subprocess.check_output(cmd, stderr=devnull)
except subprocess.CalledProcessError, e:
LOG.error("command output:\n%s" % e.output)
raise
diff --git a/cli/simple_read_only/test_compute_manage.py b/cli/simple_read_only/test_compute_manage.py
index 0fa84bd..650ef10 100644
--- a/cli/simple_read_only/test_compute_manage.py
+++ b/cli/simple_read_only/test_compute_manage.py
@@ -51,9 +51,10 @@
def test_version_flag(self):
# Bug 1159957: nova-manage --version writes to stderr
- self.assertNotEqual("", self.nova_manage('', '--version'))
+ self.assertNotEqual("", self.nova_manage('', '--version',
+ merge_stderr=True))
self.assertEqual(self.nova_manage('version'),
- self.nova_manage('', '--version'))
+ self.nova_manage('', '--version', merge_stderr=True))
def test_debug_flag(self):
self.assertNotEqual("", self.nova_manage('instance_type list',
@@ -69,9 +70,8 @@
def test_flavor_list(self):
self.assertNotEqual("", self.nova_manage('flavor list'))
- self.assertEqual(self.nova_manage('instance_type list',
- merge_stderr=False),
- self.nova_manage('flavor list', merge_stderr=False))
+ self.assertEqual(self.nova_manage('instance_type list'),
+ self.nova_manage('flavor list'))
def test_db_archive_deleted_rows(self):
# make sure command doesn't error out