def test_bad_line(): results = parse(COMPLICATED_FILES_BAD_LINE.splitlines(), "/tmp") assert len(results) == 1 assert results["/tmp"]["total"] == 16, results["/tmp"]["total"] assert results["/tmp"]["name"] == "/tmp", results["/tmp"]["name"] res = results["/tmp"]["entries"]["dm-10"] assert res["type"] == "b" assert res["links"] == 1 assert res["owner"] == "0" assert res["group"] == "6" assert res["major"] == 253 assert res["minor"] == 10 assert res["date"] == "Aug 4 16:56" assert res["name"] == "dm-10" assert res["dir"] == "/tmp"
def test_parse_single_directory(): results = parse(SINGLE_DIRECTORY.splitlines(), "/etc") stanza = results["/etc"] assert stanza["name"] == "/etc" assert stanza["total"] == 32 assert len(stanza["entries"]) == 7 res = stanza["entries"]["cert.pem"] assert res["type"] == "l" assert res["owner"] == "root" assert res["group"] == "root" assert res["date"] == "Jun 28 2017" assert res["name"] == "cert.pem" assert res["link"] == "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" assert res["links"] == 1 assert res["dir"] == "/etc"
def test_parse_selinux(): results = parse(SELINUX_DIRECTORY.splitlines(), "/boot") stanza = results["/boot"] assert stanza["name"] == "/boot" assert stanza["total"] == 3 assert len(stanza["entries"]) == 3 res = stanza["entries"]["config-3.10.0-267"] assert res["type"] == "-" assert res["owner"] == "root" assert res["group"] == "root" assert res["se_user"] == "system_u" assert res["se_role"] == "object_r" assert res["se_type"] == "boot_t" assert res["se_mls"] == "s0" assert res["name"] == "config-3.10.0-267"
def parse_content(self, content): file_types = set(['s', 'd', 'p', 'l', '-', 'c', 'b']) perm = set(['-w-', 'rw-', '--x', '-wx', '---', 'rwx', 'r--', 'r-x']) entries = [] _unparsed_lines = [] for l in content: if l and len(l) > 10 and l[0] in file_types and l[1:4] in perm: entries.append(l) else: _unparsed_lines.append(l) self.unparsed_lines = _unparsed_lines d = ls_parser.parse(entries, '').get('') self.data = d.get('entries')
def test_files_with_selinux_disabled(): results = parse(FILES_CREATED_WITH_SELINUX_DISABLED.splitlines(), "/dev/mapper") assert len(results) == 1 assert results["/dev/mapper"]["total"] == 2 assert results["/dev/mapper"]["name"] == "/dev/mapper", results[0]["name"] res = results["/dev/mapper"]["entries"]["lv_cpwtk001_data01"] assert res["type"] == "l" assert res["links"] == 1 assert res["owner"] == "0" assert res["group"] == "0" assert res["size"] == 7 assert res["date"] == "Apr 27 05:34" assert res["name"] == "lv_cpwtk001_data01" assert res["link"] == "../dm-7" assert res["dir"] == "/dev/mapper"
def test_parse_multiple_directories(): results = parse(MULTIPLE_DIRECTORIES.splitlines(), None) assert len(results) == 2, len(results) assert results["/etc/sysconfig"]["name"] == "/etc/sysconfig" assert results["/etc/sysconfig"]["total"] == 96 assert results["/etc/rc.d/rc3.d"]["name"] == "/etc/rc.d/rc3.d" assert results["/etc/rc.d/rc3.d"]["total"] == 4 res = results["/etc/sysconfig"]["entries"]["ebtables-config"] assert res["type"] == "-" assert res["links"] == 1 assert res["owner"] == "0" assert res["group"] == "0" assert res["size"] == 1390 assert res["date"] == "Mar 4 2014" assert res["name"] == "ebtables-config" assert res["dir"] == "/etc/sysconfig"
def test_parse_multiple_directories_with_break(): results = parse(MULTIPLE_DIRECTORIES_WITH_BREAK.splitlines(), None) assert len(results) == 3, len(results) assert len(results.values()) == 3 assert len(results.items()) == 3 assert len(list(six.iteritems(results))) == 3 assert results["/etc"]["name"] == "/etc" assert results["/etc"]["total"] == 1652 assert results["/etc/rc.d/rc3.d"]["name"] == "/etc/rc.d/rc3.d" assert results["/etc/rc.d/rc3.d"]["total"] == 4 res = results["/etc"]["entries"]["chrony.conf.20180210135613"] assert res["type"] == "-" assert res["links"] == 1 assert res["owner"] == "0" assert res["group"] == "0" assert res["size"] == 1100 assert res["date"] == "Dec 5 2017" assert res["name"] == "chrony.conf.20180210135613" assert res["dir"] == "/etc"
def test_rhel8_selinux(): results = parse(RHEL8_SELINUX_DIRECTORY.splitlines(), "/var/lib/nova/instances") assert len(results) == 1 assert results["/var/lib/nova/instances"][ "name"] == "/var/lib/nova/instances", results[ "/var/lib/nova/instances"]["name"] res = results["/var/lib/nova/instances"]["entries"]["abcd-efgh-ijkl-mnop"] assert results["/var/lib/nova/instances"]["total"] == 0, results[ "/var/lib/nova/instances"]["total"] assert res["type"] == "d" assert res["links"] == 2 assert res["owner"] == "root" assert res["group"] == "root" assert res["se_user"] == "unconfined_u" assert res["se_role"] == "object_r" assert res["se_type"] == "var_lib_t" assert res["se_mls"] == "s0" assert res["date"] == "Apr 8 16:41" assert res["name"] == "abcd-efgh-ijkl-mnop" assert res["dir"] == "/var/lib/nova/instances"