test_base: speedup unittest, wait for queue not empty 27/37427/1
authorRoss Brattain <ross.b.brattain@intel.com>
Thu, 13 Jul 2017 18:21:27 +0000 (11:21 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Thu, 13 Jul 2017 19:49:37 +0000 (12:49 -0700)
Change-Id: I41a72b1fd7099e404a1cf832de39f15bbc7b46e0
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
tests/unit/benchmark/runner/test_base.py

index 6e72fa5..0313ef8 100644 (file)
@@ -15,12 +15,15 @@ from __future__ import absolute_import
 import unittest
 import time
 
+from mock import mock
+
 from yardstick.benchmark.runners.iteration import IterationRunner
 
 
 class RunnerTestCase(unittest.TestCase):
 
-    def test_get_output(self):
+    @mock.patch("yardstick.benchmark.runners.iteration.multiprocessing")
+    def test_get_output(self, mock_process):
         runner = IterationRunner({})
         runner.output_queue.put({'case': 'opnfv_yardstick_tc002'})
         runner.output_queue.put({'criteria': 'PASS'})
@@ -30,7 +33,10 @@ class RunnerTestCase(unittest.TestCase):
             'criteria': 'PASS'
         }
 
-        time.sleep(1)
+        for retries in range(1000):
+            time.sleep(0.01)
+            if not runner.output_queue.empty():
+                break
         actual_result = runner.get_output()
         self.assertEqual(idle_result, actual_result)