diff options
author | Hervé Beraud <hberaud@redhat.com> | 2019-07-16 19:12:34 +0200 |
---|---|---|
committer | Stephen Finucane <sfinucan@redhat.com> | 2021-02-09 14:32:06 +0000 |
commit | 4065a08ea401e0d95e8d40d9d735edf92edda861 (patch) | |
tree | 0fee340872079e8bae13f329ed791a8a608c66dc /oslo_policy | |
parent | de243e7a72097246a1c9be9072a4322df38927b2 (diff) | |
download | oslo-policy-4065a08ea401e0d95e8d40d9d735edf92edda861.tar.gz |
Add unit tests on cache handler
Change-Id: Ife6600da240f830aa0080e3f214cedf1389ea512
Diffstat (limited to 'oslo_policy')
-rw-r--r-- | oslo_policy/tests/test_cache_handler.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/oslo_policy/tests/test_cache_handler.py b/oslo_policy/tests/test_cache_handler.py new file mode 100644 index 0000000..867487d --- /dev/null +++ b/oslo_policy/tests/test_cache_handler.py @@ -0,0 +1,66 @@ +# Copyright (c) 2020 OpenStack Foundation. +# All Rights Reserved. + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Test the cache handler module""" + +import os + +import fixtures +from oslotest import base as test_base + +from oslo_policy import _cache_handler as _ch + + +class CacheHandlerTest(test_base.BaseTestCase): + + def setUp(self): + super().setUp() + self.tmpdir = self.useFixture(fixtures.TempDir()) + + def test_read_cached_file(self): + file_cache = {} + + path = os.path.join(self.tmpdir.path, 'tmpfile') + with open(path, 'w+') as fp: + fp.write('test') + + reloaded, data = _ch.read_cached_file(file_cache, path) + self.assertEqual('test', data) + self.assertTrue(reloaded) + + reloaded, data = _ch.read_cached_file(file_cache, path) + self.assertEqual('test', data) + self.assertFalse(reloaded) + + reloaded, data = _ch.read_cached_file( + file_cache, path, force_reload=True) + self.assertEqual('test', data) + self.assertTrue(reloaded) + + def test_read_cached_file_with_updates(self): + file_cache = {} + + path = os.path.join(self.tmpdir.path, 'tmpfile') + with open(path, 'w+') as fp: + fp.write('test') + + reloaded, data = _ch.read_cached_file(file_cache, path) + + # update the timestamps + times = (os.stat(path).st_atime + 1, os.stat(path).st_mtime + 1) + os.utime(path, times) + + reloaded, data = _ch.read_cached_file(file_cache, path) + self.assertTrue(reloaded) |