def test_expansion(self): h = refparser.parse(test_expansion) i = interfaces.InterfaceSet() i.add_headers(h) self.assertEqual(len(i.interfaces), 3) for key, interface in i.interfaces.items(): self.assertEqual(key, interface.name) if key == "foo": comp_avs = [["$1", "usr_t", "dir", "create", "add_name"], ["$1", "usr_t", "file", "read", "write"]] self.assertTrue(compare_avsets(comp_avs, interface.access)) elif key == "map": comp_avs = [["$2", "usr_t", "dir", "create", "add_name"], ["$2", "usr_t", "file", "read", "write"], ["$1", "bar_t", "file", "read"], ["$2", "bar_t", "file", "write"]] self.assertTrue(compare_avsets(comp_avs, interface.access)) elif key == "hard_map": comp_avs = [["$1", "baz_t", "file", "getattr"], ["$2", "baz_t", "file", "read"], ["$3", "baz_t", "file", "write"], ["$2", "usr_t", "dir", "create", "add_name"], ["$2", "usr_t", "file", "read", "write"], ["$1", "bar_t", "file", "read"], ["$2", "bar_t", "file", "write"], ["$3", "usr_t", "dir", "create", "add_name"], ["$3", "usr_t", "file", "read", "write"], ["$2", "bar_t", "file", "read"], ["$3", "bar_t", "file", "write"]] self.assertTrue(compare_avsets(comp_avs, interface.access))
def test_search(self): h = refparser.parse(test_expansion) i = interfaces.InterfaceSet() i.add_headers(h) a = access.AccessVector(["foo_t", "usr_t", "dir", "create"]) m = matching.AccessMatcher() ml = matching.MatchList() ans = m.search_ifs(i, a, ml) pass
def test_export(self): h = refparser.parse(interface_example) i = interfaces.InterfaceSet() i.add_headers(h) f = open("output", "w") i.to_file(f) f.close() i2 = interfaces.InterfaceSet() f = open("output") i2.from_file(f) if_status = [False, False, False] for ifv in i2.interfaces.values(): if ifv.name == "files_search_usr": if_status[0] = True if ifv.name == "files_list_usr": if_status[1] = True if ifv.name == "files_exec_usr_files": if_status[2] = True self.assertEquals(if_status[0], True) self.assertEquals(if_status[1], True) self.assertEquals(if_status[2], True)
def get_methods(): global methods if len(methods) > 0: return methods gen_interfaces() fn = defaults.interface_info() try: fd = open(fn) # List of per_role_template interfaces ifs = interfaces.InterfaceSet() ifs.from_file(fd) methods = list(ifs.interfaces.keys()) fd.close() except: sys.stderr.write("could not open interface info [%s]\n" % fn) sys.exit(1) methods.sort() return methods
def test_simple(self): h = refparser.parse(simple_interface) i = interfaces.InterfaceSet() i.add_headers(h) self.assertEqual(len(i.interfaces), 1) for key, interface in i.interfaces.items(): self.assertEqual(key, interface.name) self.assertEqual(key, "foo") self.assertEqual(len(interface.access), 2) # Check the access vectors comp_avs = [["$1", "usr_t", "dir", "create", "add_name"], ["$1", "usr_t", "file", "read", "write"]] ret = compare_avsets(comp_avs, interface.access) self.assertTrue(ret) # Check the params self.assertEqual(len(interface.params), 1) for param in interface.params.values(): self.assertEqual(param.type, refpolicy.SRC_TYPE) self.assertEqual(param.name, "$1") self.assertEqual(param.num, 1) self.assertEqual(param.required, True)