[apparmor] [patch] parser: make caching tests not fail w/python <= 3.2
Seth Arnold
seth.arnold at canonical.com
Thu Aug 27 00:11:27 UTC 2015
On Wed, Aug 26, 2015 at 04:22:46PM -0700, Steve Beattie wrote:
> v2: change logic for python2.x versions.
>
> Signed-off-by: Steve Beattie <steve at nxnw.org>
Acked-by: Seth Arnold <seth.arnold at canonical.com>
Thanks
> ---
> parser/tst/caching.py | 21 ++++++++++++++++++---
> 1 file changed, 18 insertions(+), 3 deletions(-)
>
> Index: b/parser/tst/caching.py
> ===================================================================
> --- a/parser/tst/caching.py
> +++ b/parser/tst/caching.py
> @@ -17,6 +17,7 @@
>
> from argparse import ArgumentParser
> import os
> +import platform
> import shutil
> import time
> import tempfile
> @@ -232,10 +233,24 @@ class AAParserCachingTests(AAParserCachi
> self.run_cmd_check(cmd)
> self.assert_path_exists(self.cache_file)
>
> + def _assertTimeStampEquals(self, time1, time2):
> + '''Compare two timestamps to ensure equality'''
> +
> + # python 3.2 and earlier don't support writing timestamps with
> + # nanosecond resolution, only microsecond. When comparing
> + # timestamps in such an environment, loosen the equality bounds
> + # to compensate
> + # Reference: https://bugs.python.org/issue12904
> + (major, minor, _) = platform.python_version_tuple()
> + if (int(major) < 3) or ((int(major) == 3) and (int(minor) <= 2)):
> + self.assertAlmostEquals(time1, time2, places=5)
> + else:
> + self.assertEquals(time1, time2)
> +
> def _set_mtime(self, path, mtime):
> atime = os.stat(path).st_atime
> os.utime(path, (atime, mtime))
> - self.assertEquals(os.stat(path).st_mtime, mtime)
> + self._assertTimeStampEquals(os.stat(path).st_mtime, mtime)
>
> def test_cache_loaded_when_exists(self):
> '''test cache is loaded when it exists, is newer than profile, and features match'''
> @@ -414,7 +429,7 @@ class AAParserCachingTests(AAParserCachi
>
> stat = os.stat(self.cache_file)
> self.assertNotEquals(orig_stat.st_ino, stat.st_ino)
> - self.assertEquals(profile_mtime, stat.st_mtime)
> + self._assertTimeStampEquals(profile_mtime, stat.st_mtime)
>
> def test_abstraction_newer_rewrites_cache(self):
> '''test cache is rewritten if abstraction is newer'''
> @@ -431,7 +446,7 @@ class AAParserCachingTests(AAParserCachi
>
> stat = os.stat(self.cache_file)
> self.assertNotEquals(orig_stat.st_ino, stat.st_ino)
> - self.assertEquals(abstraction_mtime, stat.st_mtime)
> + self._assertTimeStampEquals(abstraction_mtime, stat.st_mtime)
>
> def test_parser_newer_uses_cache(self):
> '''test cache is not skipped if parser is newer'''
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20150826/9ffa5fdc/attachment.pgp>
More information about the AppArmor
mailing list