diff options
author | Zuul <zuul@review.opendev.org> | 2021-04-16 12:12:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-04-16 12:12:31 +0000 |
commit | 0733d0e16ff56a656ec02100820f473272f00110 (patch) | |
tree | fcedc932ff078c757125c146308a5b8b91265854 /oslo_policy | |
parent | 4fe8c7fd380b021eb86a449b32c18b09f3ea10cf (diff) | |
parent | 4065a08ea401e0d95e8d40d9d735edf92edda861 (diff) | |
download | oslo-policy-0733d0e16ff56a656ec02100820f473272f00110.tar.gz |
Merge "Add unit tests on cache handler"
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) |