summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Kosonen <juha.kosonen@nokia.com>2018-01-16 16:45:46 +0200
committerJuha Kosonen <juha.kosonen@nokia.com>2018-01-16 16:45:46 +0200
commit1ef546ca2464dc9210522026bb95200b6abab47a (patch)
treec0d2e32086ad0b3ce8c7c33b889a93cad340a590
parent12c99c5f3fef126283e3a9795c4c1d436cc7846f (diff)
Fix Rally output retrieval
Read stdout until nothing left instead of stopping once the child process is terminated. Change-Id: I46a2eb93fd614e2e7ff676727eb9dc132c29d03f Signed-off-by: Juha Kosonen <juha.kosonen@nokia.com>
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py6
-rw-r--r--functest/tests/unit/openstack/rally/test_rally.py13
2 files changed, 4 insertions, 15 deletions
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
index eefd3eb46..103c3a7e2 100644
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ b/functest/opnfv_tests/openstack/rally/rally.py
@@ -219,8 +219,7 @@ class RallyBase(testcase.TestCase):
def get_cmd_output(proc):
"""Get command stdout."""
result = ""
- while proc.poll() is None:
- line = proc.stdout.readline()
+ for line in proc.stdout:
result += line
return result
@@ -410,8 +409,7 @@ class RallyBase(testcase.TestCase):
success = 0.0
nb_totals = 0
- while proc.poll() is None:
- line = proc.stdout.readline()
+ for line in proc.stdout:
if ("Load duration" in line or
"started" in line or
"finished" in line or
diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py
index 450eb85bc..6b50daead 100644
--- a/functest/tests/unit/openstack/rally/test_rally.py
+++ b/functest/tests/unit/openstack/rally/test_rally.py
@@ -27,7 +27,6 @@ class OSRallyTesting(unittest.TestCase):
with mock.patch('snaps.openstack.tests.openstack_tests.'
'get_credentials', return_value=os_creds) as m:
self.rally_base = rally.RallyBase()
- self.polling_iter = 2
self.assertTrue(m.called)
def test_build_task_args_missing_floating_network(self):
@@ -102,19 +101,11 @@ class OSRallyTesting(unittest.TestCase):
self.assertEqual(self.rally_base.task_succeed(json_raw),
True)
- def polling(self):
- if self.polling_iter == 0:
- return "something"
- self.polling_iter -= 1
- return None
-
def test_get_cmd_output(self):
proc = mock.Mock()
- attrs = {'poll.side_effect': self.polling,
- 'stdout.readline.return_value': 'line'}
- proc.configure_mock(**attrs)
+ proc.stdout.__iter__ = mock.Mock(return_value=iter(['line1', 'line2']))
self.assertEqual(self.rally_base.get_cmd_output(proc),
- 'lineline')
+ 'line1line2')
@mock.patch('__builtin__.open', mock.mock_open())
@mock.patch('functest.opnfv_tests.openstack.rally.rally.yaml.safe_load',