[apparmor] [PATCH v2 8/8] utils: Fix apparmor.easyprof import in test-aa-easyprof.py
Seth Arnold
seth.arnold at canonical.com
Wed Mar 1 22:11:35 UTC 2017
On Wed, Mar 01, 2017 at 08:52:06PM +0000, Tyler Hicks wrote:
> The test-aa-easyprof.py script was attempting to do its own special
> setup to import the in-tree easyprof module. However, this proved to be
> very flaky and resulted in the test periodically failing due to an
> AttributeError the first time easyprof.parse_args() was called.
>
> This patch removes the flakiness by trusting that PYTHONPATH is set up
> appropriately before the test script is ran. PYTHONPATH is already
> initialized appropriately by utils/test/Makefile according to the
> USE_SYSTEM make variable.
>
> Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
> Cc: Christian Boltz <apparmor at cboltz.de>
Acked-by: Seth Arnold <seth.arnold at canonical.com>
This feels so much less brittle. :)
Thanks
> ---
> utils/test/test-aa-easyprof.py | 26 ++------------------------
> 1 file changed, 2 insertions(+), 24 deletions(-)
>
> diff --git a/utils/test/test-aa-easyprof.py b/utils/test/test-aa-easyprof.py
> index e7916de..ff69c42 100755
> --- a/utils/test/test-aa-easyprof.py
> +++ b/utils/test/test-aa-easyprof.py
> @@ -18,6 +18,8 @@ import sys
> import tempfile
> import unittest
>
> +import apparmor.easyprof as easyprof
> +
> topdir = None
> debugging = False
>
> @@ -2673,40 +2675,16 @@ POLICYGROUPS_DIR="%s/templates"
> # Main
> #
> if __name__ == '__main__':
> - def cleanup(files):
> - for f in files:
> - if os.path.exists(f):
> - os.unlink(f)
> -
> absfn = os.path.abspath(sys.argv[0])
> topdir = os.path.dirname(os.path.dirname(absfn))
>
> if len(sys.argv) > 1 and (sys.argv[1] == '-d' or sys.argv[1] == '--debug'):
> debugging = True
>
> - created = []
> -
> - # Create the necessary files to import aa-easyprof
> - init = os.path.join(os.path.dirname(absfn), '__init__.py')
> - if not os.path.exists(init):
> - open(init, 'a').close()
> - created.append(init)
> -
> - symlink = os.path.join(os.path.dirname(absfn), 'easyprof.py')
> - if not os.path.exists(symlink):
> - os.symlink(os.path.join(topdir, 'apparmor', 'easyprof.py'), symlink)
> - created.append(symlink)
> - created.append(symlink + 'c')
> -
> - # Now that we have everything we need, import aa-easyprof
> - import easyprof
> -
> # run the tests
> suite = unittest.TestSuite()
> suite.addTest(unittest.TestLoader().loadTestsFromTestCase(T))
> rc = unittest.TextTestRunner(verbosity=2).run(suite)
>
> - cleanup(created)
> -
> if not rc.wasSuccessful():
> sys.exit(1)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20170301/5b4aebad/attachment-0001.pgp>
More information about the AppArmor
mailing list