From 4065a08ea401e0d95e8d40d9d735edf92edda861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Beraud?= Date: Tue, 16 Jul 2019 19:12:34 +0200 Subject: Add unit tests on cache handler Change-Id: Ife6600da240f830aa0080e3f214cedf1389ea512 --- oslo_policy/tests/test_cache_handler.py | 66 +++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 oslo_policy/tests/test_cache_handler.py (limited to 'oslo_policy') 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) -- cgit v1.2.1