113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Authors: Karl MacMillan <kmacmillan@mentalrootkit.com> 213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# 313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Copyright (C) 2006 Red Hat 413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# see file 'COPYING' for use and warranty information 513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# 613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# This program is free software; you can redistribute it and/or 713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# modify it under the terms of the GNU General Public License as 813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# published by the Free Software Foundation; version 2 only 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# 1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# This program is distributed in the hope that it will be useful, 1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# but WITHOUT ANY WARRANTY; without even the implied warranty of 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# GNU General Public License for more details. 1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# 1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# You should have received a copy of the GNU General Public License 1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# along with this program; if not, write to the Free Software 1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# 1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleimport unittest 2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleimport sepolgen.objectmodel 2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleclass TestInfoFlow(unittest.TestCase): 2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle def test_from_file(self): 2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle info = sepolgen.objectmodel.PermMappings() 2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle fd = open("perm_map") 2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle info.from_file(fd) 28a9fb9053f7297622175c63e924b7427eafbaa1ebRobert Kuska fd.close() 2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle pm = info.get("filesystem", "mount") 31e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.perm, "mount") 32e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_WRITE) 33e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.weight, 1) 3413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle self.assertRaises(KeyError, info.get, "filesystem", "foo") 3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle pm = info.getdefault("filesystem", "foo") 38e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.perm, "foo") 39e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH) 40e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.weight, 5) 4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle pm = info.getdefault("foo", "bar") 43e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.perm, "bar") 44e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH) 45e25d39addcce0bb2fe74a79f4ab6e350b339a876Robert Kuska self.assertEqual(pm.weight, 5) 46