1*2d543d20SAndroid Build Coastguard Worker# Authors: Karl MacMillan <[email protected]> 2*2d543d20SAndroid Build Coastguard Worker# 3*2d543d20SAndroid Build Coastguard Worker# Copyright (C) 2006 Red Hat 4*2d543d20SAndroid Build Coastguard Worker# see file 'COPYING' for use and warranty information 5*2d543d20SAndroid Build Coastguard Worker# 6*2d543d20SAndroid Build Coastguard Worker# This program is free software; you can redistribute it and/or 7*2d543d20SAndroid Build Coastguard Worker# modify it under the terms of the GNU General Public License as 8*2d543d20SAndroid Build Coastguard Worker# published by the Free Software Foundation; version 2 only 9*2d543d20SAndroid Build Coastguard Worker# 10*2d543d20SAndroid Build Coastguard Worker# This program is distributed in the hope that it will be useful, 11*2d543d20SAndroid Build Coastguard Worker# but WITHOUT ANY WARRANTY; without even the implied warranty of 12*2d543d20SAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*2d543d20SAndroid Build Coastguard Worker# GNU General Public License for more details. 14*2d543d20SAndroid Build Coastguard Worker# 15*2d543d20SAndroid Build Coastguard Worker# You should have received a copy of the GNU General Public License 16*2d543d20SAndroid Build Coastguard Worker# along with this program; if not, write to the Free Software 17*2d543d20SAndroid Build Coastguard Worker# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18*2d543d20SAndroid Build Coastguard Worker# 19*2d543d20SAndroid Build Coastguard Worker 20*2d543d20SAndroid Build Coastguard Workerimport unittest 21*2d543d20SAndroid Build Coastguard Workerimport sepolgen.objectmodel 22*2d543d20SAndroid Build Coastguard Worker 23*2d543d20SAndroid Build Coastguard Workerclass TestInfoFlow(unittest.TestCase): 24*2d543d20SAndroid Build Coastguard Worker def test_from_file(self): 25*2d543d20SAndroid Build Coastguard Worker info = sepolgen.objectmodel.PermMappings() 26*2d543d20SAndroid Build Coastguard Worker fd = open("perm_map") 27*2d543d20SAndroid Build Coastguard Worker info.from_file(fd) 28*2d543d20SAndroid Build Coastguard Worker fd.close() 29*2d543d20SAndroid Build Coastguard Worker 30*2d543d20SAndroid Build Coastguard Worker pm = info.get("filesystem", "mount") 31*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.perm, "mount") 32*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_WRITE) 33*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.weight, 1) 34*2d543d20SAndroid Build Coastguard Worker 35*2d543d20SAndroid Build Coastguard Worker self.assertRaises(KeyError, info.get, "filesystem", "foo") 36*2d543d20SAndroid Build Coastguard Worker 37*2d543d20SAndroid Build Coastguard Worker pm = info.getdefault("filesystem", "foo") 38*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.perm, "foo") 39*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH) 40*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.weight, 5) 41*2d543d20SAndroid Build Coastguard Worker 42*2d543d20SAndroid Build Coastguard Worker pm = info.getdefault("foo", "bar") 43*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.perm, "bar") 44*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.dir, sepolgen.objectmodel.FLOW_BOTH) 45*2d543d20SAndroid Build Coastguard Worker self.assertEqual(pm.weight, 5) 46