diff options
author | Zuul <zuul@review.opendev.org> | 2019-12-20 16:31:35 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-12-20 16:31:35 +0000 |
commit | 27f8a5d01c40a4f0693fc2abfc1aaa38bad23e4d (patch) | |
tree | e6a61f4ad5394802947e7d4b35e87053b7c1d9ba | |
parent | 2ab42ddec4fe1124fce4bedfb4ce1fdd7e329778 (diff) | |
parent | e2c71e9937fe1b7faf06bc1435f0018a386eb4ac (diff) | |
download | oslo-concurrency-27f8a5d01c40a4f0693fc2abfc1aaa38bad23e4d.tar.gz |
Merge "Fix remove_lock test"
-rw-r--r-- | oslo_concurrency/tests/unit/test_lockutils.py | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/oslo_concurrency/tests/unit/test_lockutils.py b/oslo_concurrency/tests/unit/test_lockutils.py index fee32bb..1bd74a2 100644 --- a/oslo_concurrency/tests/unit/test_lockutils.py +++ b/oslo_concurrency/tests/unit/test_lockutils.py @@ -22,6 +22,7 @@ import tempfile import threading import time +import mock from oslo_config import cfg from oslotest import base as test_base import six @@ -311,28 +312,34 @@ class LockTestCase(test_base.BaseTestCase): with lockutils.lock("test") as sem2: self.assertEqual(sem, sem2) - def _test_remove_lock_external_file(self, lock_dir, use_external=False): - lock_name = 'mylock' - lock_pfix = 'mypfix-remove-lock-test-' - - if use_external: - lock_path = lock_dir - else: - lock_path = None - - lockutils.remove_external_lock_file(lock_name, lock_pfix, lock_path) - - for ent in os.listdir(lock_dir): - self.assertRaises(OSError, ent.startswith, lock_pfix) - - def test_remove_lock_external_file(self): - lock_dir = tempfile.mkdtemp() - self.config(lock_path=lock_dir, group='oslo_concurrency') - self._test_remove_lock_external_file(lock_dir) - - def test_remove_lock_external_file_lock_path(self): - self._test_remove_lock_external_file(tempfile.mkdtemp(), - use_external=True) + @mock.patch('logging.Logger.info') + @mock.patch('os.remove') + @mock.patch('oslo_concurrency.lockutils._get_lock_path') + def test_remove_lock_external_file_exists(self, path_mock, remove_mock, + log_mock): + lockutils.remove_external_lock_file(mock.sentinel.name, + mock.sentinel.prefix, + mock.sentinel.lock_path) + + path_mock.assert_called_once_with(mock.sentinel.name, + mock.sentinel.prefix, + mock.sentinel.lock_path) + remove_mock.assert_called_once_with(path_mock.return_value) + log_mock.assert_not_called() + + @mock.patch('logging.Logger.info') + @mock.patch('os.remove', side_effect=OSError) + @mock.patch('oslo_concurrency.lockutils._get_lock_path') + def test_remove_lock_external_file_doesnt_exists(self, path_mock, + remove_mock, log_mock): + lockutils.remove_external_lock_file(mock.sentinel.name, + mock.sentinel.prefix, + mock.sentinel.lock_path) + path_mock.assert_called_once_with(mock.sentinel.name, + mock.sentinel.prefix, + mock.sentinel.lock_path) + remove_mock.assert_called_once_with(path_mock.return_value) + log_mock.assert_called() def test_no_slash_in_b64(self): # base64(sha1(foobar)) has a slash in it |