From 6c6663d45e6ed3923ea1e2f6071feb92d165bdfc Mon Sep 17 00:00:00 2001 From: Ruby Loo Date: Mon, 13 Mar 2017 21:00:39 +0000 Subject: [PATCH] Speed up test_touch_conductor_deadlock() This speeds up the unit test in ironic.tests.unit.db.test_conductor, DbConductorTestCase.test_touch_conductor_deadlock() by mocking oslo_db.api.time.sleep(). In my local environment, it went from 1 second to about 0.02 seconds. Change-Id: I534611dc51a8a3af6ddb17bf28cb096df084d8e7 Closes-Bug: #1672533 --- ironic/tests/unit/db/test_conductor.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ironic/tests/unit/db/test_conductor.py b/ironic/tests/unit/db/test_conductor.py index abe57390c9..c983188a30 100644 --- a/ironic/tests/unit/db/test_conductor.py +++ b/ironic/tests/unit/db/test_conductor.py @@ -18,6 +18,7 @@ import datetime import mock +import oslo_db from oslo_db import exception as db_exc from oslo_db import sqlalchemy from oslo_utils import timeutils @@ -131,12 +132,15 @@ class DbConductorTestCase(base.DbTestCase): c = self.dbapi.get_conductor(c.hostname) self.assertEqual(test_time, timeutils.normalize_time(c.updated_at)) + @mock.patch.object(oslo_db.api.time, 'sleep', autospec=True) @mock.patch.object(sqlalchemy.orm.Query, 'update', autospec=True) - def test_touch_conductor_deadlock(self, mock_update): + def test_touch_conductor_deadlock(self, mock_update, mock_sleep): + mock_sleep.return_value = None mock_update.side_effect = [db_exc.DBDeadlock(), None] c = self._create_test_cdr() self.dbapi.touch_conductor(c.hostname) self.assertEqual(2, mock_update.call_count) + self.assertEqual(2, mock_sleep.call_count) def test_touch_conductor_not_found(self): # A conductor's heartbeat will not create a new record,