From a37c65957f5a883057109dcbe0772d6cbe0f629f Mon Sep 17 00:00:00 2001 From: Christian Boltz Date: Sun, 27 Oct 2024 16:28:23 +0100 Subject: [PATCH] ProfileList: add __getitem__() ... and add some tests for it. --- utils/apparmor/profile_list.py | 6 ++++++ utils/test/test-profile-list.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/utils/apparmor/profile_list.py b/utils/apparmor/profile_list.py index 7b8c04944..32cd28ffb 100644 --- a/utils/apparmor/profile_list.py +++ b/utils/apparmor/profile_list.py @@ -52,6 +52,12 @@ class ProfileList: name = type(self).__name__ return '\n<%s>\n%s\n\n' % (name, '\n'.join(self.files), name) + def __getitem__(self, key): + if key in self.profiles: + return self.profiles[key] + else: + raise AppArmorBug('attempt to read unknown profile %s' % key) + def init_file(self, filename): if self.files.get(filename): return # don't re-initialize / overwrite existing data diff --git a/utils/test/test-profile-list.py b/utils/test/test-profile-list.py index 1039c7f0e..26a54b20e 100644 --- a/utils/test/test-profile-list.py +++ b/utils/test/test-profile-list.py @@ -47,6 +47,11 @@ class TestAdd_profile(AATest): self.assertEqual(self.pl.profiles_in_file('/etc/apparmor.d/bin.foo'), ['foo']) self.assertEqual(str(self.pl), '\n\n/etc/apparmor.d/bin.foo\n\n') + # test __getitem__() + self.assertEqual(self.pl['foo'], self.dummy_profile) + with self.assertRaises(AppArmorBug): + self.pl['does_not_exist'] + def testAdd_profile_2(self): self.assertFalse(self.pl.profile_exists('foo')) self.assertFalse(self.pl.profile_exists('/bin/foo'))