[apparmor] [patch] utils/test/test-aa.py: skip tests that break with python2.7
Christian Boltz
apparmor at cboltz.de
Tue Sep 20 19:54:02 UTC 2016
Hello,
Am Dienstag, 20. September 2016, 12:03:57 CEST schrieb Steve Beattie:
> Currently, the utils/ make check tests fail when run under
> python2.7. For reasons that aren't entirely clear, the action to set
> apparmor.aa.cfg['settings']['ldd'] to './fake_ldd' does not actually
> work on python2.7, so get_reqs() tries to use /usr/bin/ldd anyway
> (printing out the contents of apparmor.aa.cfg['settings']['ldd']
> after the set operation in _run_test() shows it to still contain
> '/usr/bin/ldd' o.O).
That sounds interesting[tm]. At least it isn't something only you see -
I can reproduce it here.
Maybe the reason is that py2 and py3 use different {c,C}onfigparser
python modules to read the config file (see apparmor/config.py) - but I'm
still surprised why the py2 result seems to be read-only and the py3
result isn't. And I'm even more surprised that, assuming the py2 result
is really read-only, we don't get an exception when trying to write to
it.
> Therefore, skip these two tests when running
> under python2.7.
That's not really nice, but the easiest solution ;-)
> Signed-off-by: Steve Beattie <steve at nxnw.org>
> ---
> utils/test/test-aa.py | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> Index: b/utils/test/test-aa.py
> ===================================================================
> --- a/utils/test/test-aa.py
> +++ b/utils/test/test-aa.py
> @@ -14,6 +14,7 @@ from common_test import AATest, setup_al
> from common_test import read_file, write_file
>
> import os
> +import sys
>
> import apparmor.aa # needed to set global vars in some tests
> from apparmor.aa import (check_for_apparmor, get_output, get_reqs,
> get_interpreter_and_abstraction, create_new_profile, @@ -93,6 +94,12
> @@ class AATest_get_reqs(AATest):
> ]
>
> def _run_test(self, params, expected):
> + # for some reason, setting the ldd config option does not get
> + # honored in python2.7
> + # XXX KILL when python 2.7 is dropped XXX
> + if sys.version_info[0] < 3:
> + print("Skipping on python < 2.x")
This message is wrong - it should say "... python 2.x", not
"... python < 2.x" (which effectively means 1.x)
> + return
> apparmor.aa.cfg['settings']['ldd'] = './fake_ldd'
>
> self.assertEqual(get_reqs(params), expected)
With the skip message changed,
Acked-by: Christian Boltz <apparmor at cboltz.de>
I get similar py2 failures in AaTest_create_new_profile, so you might
want to apply your patch to this class also. Consider this
Pre-Acked-by: Christian Boltz <apparmor at cboltz.de>
Regards,
Christian Boltz
--
Manchmal stellt man halt Fragen, auf die keiner eine Antwort hat.
(Habe ich hier auch schon hingekriegt). [Helga Fischer in opensuse-de]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20160920/982a514b/attachment.pgp>
More information about the AppArmor
mailing list