[apparmor] [patch] Move str_to_mode() tests to test-aamode.py

Christian Boltz apparmor at cboltz.de
Sun Oct 9 18:32:48 UTC 2016


Hello,

aa_test.py doesn't run in 'make check' because its filename doesn't
match the 'test-*.py' pattern, so this move means the tests now actually
get run.

While on it, migrate test-aamode.py to use the AATest base class, and
migrate the str_to_mode() tests to a tests[] array.

After this move, aa_test.py doesn't do anything anymore, so delete it.


[ 04-move-str_to_mode-tests-to-test-aamode.diff ]

=== modified file ./utils/test/aa_test.py
--- utils/test/aa_test.py       2016-10-09 20:05:47.584426947 +0200
+++ utils/test/aa_test.py       2016-10-09 20:10:14.970841649 +0200
@@ -1,47 +1 @@
-# ----------------------------------------------------------------------
-#    Copyright (C) 2013 Kshitij Gupta <kgupta8592 at gmail.com>
-#
-#    This program is free software; you can redistribute it and/or
-#    modify it under the terms of version 2 of the GNU General Public
-#    License as published by the Free Software Foundation.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU General Public License for more details.
-#
-# ----------------------------------------------------------------------
-import unittest
 
-import apparmor.aamode
-
-class Test(unittest.TestCase):
-
-    def setUp(self):
-        self.MODE_TEST = {'x': apparmor.aamode.AA_MAY_EXEC,
-                 'w': apparmor.aamode.AA_MAY_WRITE,
-                 'r': apparmor.aamode.AA_MAY_READ,
-                 'a': apparmor.aamode.AA_MAY_APPEND,
-                 'l': apparmor.aamode.AA_MAY_LINK,
-                 'k': apparmor.aamode.AA_MAY_LOCK,
-                 'm': apparmor.aamode.AA_EXEC_MMAP,
-                 'i': apparmor.aamode.AA_EXEC_INHERIT,
-                 'u': apparmor.aamode.AA_EXEC_UNCONFINED | apparmor.aamode.AA_EXEC_UNSAFE,
-                  'U': apparmor.aamode.AA_EXEC_UNCONFINED,
-                  'p': apparmor.aamode.AA_EXEC_PROFILE | apparmor.aamode.AA_EXEC_UNSAFE,
-                  'P': apparmor.aamode.AA_EXEC_PROFILE,
-                  'c': apparmor.aamode.AA_EXEC_CHILD | apparmor.aamode.AA_EXEC_UNSAFE,
-                  'C': apparmor.aamode.AA_EXEC_CHILD,
-                  }
-
-    def test_string_to_modes(self):
-
-        for string in self.MODE_TEST.keys():
-            mode = self.MODE_TEST[string] | apparmor.aamode.AA_OTHER(self.MODE_TEST[string])
-            #print("mode: %s string: %s str_to_mode(string): %s" % (mode, string,  apparmor.aamode.str_to_mode(string)))
-            self.assertEqual(mode, apparmor.aamode.str_to_mode(string), 'mode is %s and string is %s'%(mode, string))
-
-
-if __name__ == "__main__":
-    #import sys;sys.argv = ['', 'Test.testName']
-    unittest.main(verbosity=2)
=== modified file ./utils/test/test-aamode.py
--- utils/test/test-aamode.py   2016-10-01 21:00:58.949770000 +0200
+++ utils/test/test-aamode.py   2016-10-09 20:25:13.990512734 +0200
@@ -1,7 +1,7 @@
 #! /usr/bin/python3
 # ------------------------------------------------------------------
 #
-#    Copyright (C) 2014 Christian Boltz
+#    Copyright (C) 2014-2016 Christian Boltz
 #
 #    This program is free software; you can redistribute it and/or
 #    modify it under the terms of version 2 of the GNU General Public
@@ -10,11 +10,14 @@
 # ------------------------------------------------------------------
 
 import unittest
+from common_test import AATest, setup_all_loops
 
-from apparmor.aamode import split_log_mode, sub_str_to_mode, validate_log_mode
+import apparmor.aamode
+
+from apparmor.aamode import split_log_mode, str_to_mode, sub_str_to_mode, validate_log_mode
 from apparmor.common import AppArmorBug
 
-class AamodeTest_split_log_mode(unittest.TestCase):
+class AamodeTest_split_log_mode(AATest):
     def test_split_log_mode_1(self):
         self.assertEqual(split_log_mode(''), ('', ''))
     def test_split_log_mode_2(self):
@@ -31,7 +34,30 @@
         with self.assertRaises(AppArmorBug):
             split_log_mode('r::w::r')
 
+class AamodeTest_str_to_mode(AATest):
+    tests = [
+        ('x',   apparmor.aamode.AA_MAY_EXEC),
+        ('w',   apparmor.aamode.AA_MAY_WRITE),
+        ('r',   apparmor.aamode.AA_MAY_READ),
+        ('a',   apparmor.aamode.AA_MAY_APPEND),
+        ('l',   apparmor.aamode.AA_MAY_LINK),
+        ('k',   apparmor.aamode.AA_MAY_LOCK),
+        ('m',   apparmor.aamode.AA_EXEC_MMAP),
+        ('i',   apparmor.aamode.AA_EXEC_INHERIT),
+        ('u',   apparmor.aamode.AA_EXEC_UNCONFINED | apparmor.aamode.AA_EXEC_UNSAFE),
+        ('U',   apparmor.aamode.AA_EXEC_UNCONFINED),
+        ('p',   apparmor.aamode.AA_EXEC_PROFILE | apparmor.aamode.AA_EXEC_UNSAFE),
+        ('P',   apparmor.aamode.AA_EXEC_PROFILE),
+        ('c',   apparmor.aamode.AA_EXEC_CHILD | apparmor.aamode.AA_EXEC_UNSAFE),
+        ('C',   apparmor.aamode.AA_EXEC_CHILD),
+    ]
+
+    def _run_test(self, params, expected):
+        mode = expected | apparmor.aamode.AA_OTHER(expected)
+        #print("mode: %s params: %s str_to_mode(params): %s" % (mode, params,  apparmor.aamode.str_to_mode(params)))
+        self.assertEqual(mode, str_to_mode(params), 'mode is %s and expected string is %s'%(mode, expected))
+
-class AamodeTest_sub_str_to_mode(unittest.TestCase):
+class AamodeTest_sub_str_to_mode(AATest):
     def test_sub_str_to_mode_1(self):
         self.assertEqual(sub_str_to_mode(''), set())
     def test_sub_str_to_mode_2(self):
@@ -62,7 +88,7 @@
 
 
 
-class AamodeTest_validate_log_mode(unittest.TestCase):
+class AamodeTest_validate_log_mode(AATest):
     def test_validate_log_mode_1(self):
         self.assertTrue(validate_log_mode('a'))
     def test_validate_log_mode_2(self):
@@ -81,5 +107,7 @@
     def test_validate_log_mode_invalid_4(self):
         self.assertFalse(validate_log_mode(''))
 
+
+setup_all_loops(__name__)
 if __name__ == '__main__':
     unittest.main(verbosity=2)


Regards,

Christian Boltz
-- 
> Heute habe ich die CPU gepflegt und wollte danach
> den PC starten / booten. Es gab kein Bild.
Was heißt das denn genau? Maniküre, Pediküre, UV-Bad, Cremen, ... ;)
[> Frank und T. Ermlich 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/20161009/a6554c0c/attachment.pgp>


More information about the AppArmor mailing list