On Sun, May 17, 2015 at 10:33:47PM +0200, Christian Boltz wrote: > this patch adds writeTmpfile() to AATest to write a file into the tmpdir. > If no tmpdir exists yet, automatically create one. > > createTmpdir() is a separate function so that it's possible to manually > create the tmpdir (for example, if a test needs an empty tmpdir). > > Also add a tearDown() function to delete the tmpdir again. This function > calls self.AATeardown() to avoid the need for super() in child classes. > > Finally, simplify AaTestWithTempdir in test-aa.py to use createTmpdir() > and add an example for AATeardown() to test-example.py. > > > [ 10-tests-tempdir.diff ] > > === modified file utils/test/common_test.py > --- utils/test/common_test.py 2015-05-17 22:22:19.266683216 +0200 > +++ utils/test/common_test.py 2015-05-17 22:24:41.240395607 +0200 > @@ -16,7 +16,9 @@ > import inspect > import os > import re > +import shutil > import sys > +import tempfile > > import apparmor.common > import apparmor.config > @@ -47,7 +49,27 @@ > '''override this function if a test needs additional setup steps > (instead of overriding setUp())''' > pass > > + def tearDown(self): > + if self.tmpdir: > + if os.path.exists(self.tmpdir): > + shutil.rmtree(self.tmpdir)
No need to nest this deep, the following will work.
if self.tmpdir and os.path.exists(self.tmpdir):
shutil.rmtree(self.tmpdir)
With that change, Acked-by: Steve Beattie <[email protected]>.
A feature to add would be a .debug field defaulting to False, and which
if True doesn't delete the directory tree, leaving it behind for after
the fact inspection.
(There's a way to do it such that cleanup like that is automatically
blocked on test case failure, but the way I found to do it requires
metaclasses for which the syntax differs greatly between python 2
and python 3. Therefore, a feature for the future.)
--
Steve Beattie
<[email protected]>
http://NxNW.org/~steve/
signature.asc
Description: Digital signature
-- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
