Merge "Improve SSH to Open/Close interactive terminal"
[yardstick.git] / yardstick / tests / unit / benchmark / scenarios / test_base.py
index a95e6bc..284a71c 100644 (file)
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import unittest
+import time
+
+import mock
 
 from yardstick.benchmark.scenarios import base
+from yardstick.tests.unit import base as ut_base
+
+
+class _TestScenario(base.Scenario):
+    __scenario_type__ = 'Test Scenario'
+
+    def run(self):
+        pass
 
 
-class ScenarioTestCase(unittest.TestCase):
+class ScenarioTestCase(ut_base.BaseUnitTestCase):
 
     def test_get_scenario_type(self):
         scenario_type = 'dummy scenario'
@@ -86,8 +96,27 @@ class ScenarioTestCase(unittest.TestCase):
         self.assertEqual('No such scenario type %s' % wrong_scenario_name,
                          str(exc.exception))
 
+    def test_scenario_abstract_class(self):
+        # pylint: disable=abstract-class-instantiated
+        with self.assertRaises(TypeError):
+            base.Scenario()
+
+    @mock.patch.object(time, 'sleep')
+    def test_pre_run_wait_time(self, mock_sleep):
+        """Ensure default behaviour (backwards compatibility): no wait time"""
+        test_scenario = _TestScenario()
+        test_scenario.pre_run_wait_time(mock.ANY)
+        mock_sleep.assert_not_called()
+
+    @mock.patch.object(time, 'sleep')
+    def test_post_run_wait_time(self, mock_sleep):
+        """Ensure default behaviour (backwards compatibility): wait time"""
+        test_scenario = _TestScenario()
+        test_scenario.post_run_wait_time(100)
+        mock_sleep.assert_called_once_with(100)
+
 
-class IterScenarioClassesTestCase(unittest.TestCase):
+class IterScenarioClassesTestCase(ut_base.BaseUnitTestCase):
 
     def test_no_scenario_type_defined(self):
         some_existing_scenario_class_names = [