Esempio n. 1
0
    def test_01__parse__none(self):
        listfile = "/a/b/c/path.conf"
        config = init_config(listfile)

        line = "# this is a comment line to be ignored\n"

        collector = FilelistCollector(listfile, config)
        fos = collector._parse(line)

        self.assertEquals(fos, [])
Esempio n. 2
0
    def test_02__parse__single_virtual_file(self):
        listfile = "/a/b/c/path.conf"
        config = init_config(listfile)

        line = " %s,create=1,content=\"generated file\" \n" % listfile

        collector = FilelistCollector(listfile, config)
        fos = collector._parse(line)
        fos_ref = [Factory.create(listfile, False,
                                  create=1, content="generated file")]

        self.assertNotEquals(fos, [])
        self.assertEquals(fos, fos_ref)
Esempio n. 3
0
    def test_02_list__multi_generated_file(self):
        listfile = os.path.join(self.workdir, "file.list")
        listfile2 = os.path.join(self.workdir, "file2.list")
        config = init_config(listfile)

        line = "%s/file*.list\n" % self.workdir
        open(listfile, "w").write(line)
        open(listfile2, "w").write(line)

        collector = FilelistCollector(listfile, config)
        fos = collector.list(listfile)
        fos_ref = [Factory.create(listfile), Factory.create(listfile2)]

        self.assertEquals(sorted(fos), sorted(fos_ref))
Esempio n. 4
0
    def test_08_collect__single_real_file__ignore_owner_mod(self):
        listfile = path = os.path.join(self.workdir, "file.list")

        config = init_config(listfile)
        config.ignore_owner = True

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()
        fo_ref = Factory.create(path, False)

        self.assertEquals(fos[0].uid, 0)
        self.assertEquals(fos[0].gid, 0)
Esempio n. 5
0
    def test_06_collect__single_real_file__not_supported_type(self):
        path = random.choice(
            ["/dev/null", "/dev/zero", "/dev/random"]
        )

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()

        self.assertEquals(fos, [])
Esempio n. 6
0
    def test_03_list__multi_real_files(self):
        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write("\n".join(PATHS))

        collector = FilelistCollector(listfile, config)

        ur = not config.no_rpmdb
        fos = collector.list(listfile)
        fos_ref = sorted(
            Factory.create(p, use_rpmdb=ur) for p in PATHS_EXPANDED
        )

        self.assertEquals(sorted(fos), fos_ref)
    def test_04_collect__single_real_file__no_rpms_own(self):
        path = random.choice(SYSTEM_FILES_EXIST_AND_NO_RPMS_OWN)

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()
        fo_ref = Factory.create(path, use_rpmdb=(not config.no_rpmdb))

        self.assertEquals(fos[0].path, path)
        self.assertEquals(fos, [fo_ref])
Esempio n. 8
0
    def test_09_collect__single_real_file__rpmattr(self):
        path = random.choice(["/etc/hosts", "/etc/services"])

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)
        config.driver = "autotools.single.rpm"

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()
        fo_ref = Factory.create(path, False)

        ## should differ as RpmConflictsFilter works.
        #self.assertEquals(fos, [fo_ref])
        self.assertTrue("rpm_attr" in fos[0])
Esempio n. 9
0
    def test_07_collect__single_real_file__destdir_mod(self):
        listfile = path = os.path.join(self.workdir, "file.list")

        config = init_config(listfile)
        config.destdir = self.workdir

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()
        fo_ref = Factory.create(path, False)

        self.assertEquals(
            os.path.join(self.workdir, fos[0].path),
            fo_ref.path
        )
Esempio n. 10
0
    def test_10_collect__single_real_file__rpmconflicts(self):
        path = random.choice(
            ["/etc/hosts", "/etc/services", "/bin/sh"]
        )

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)
        config.driver = "autotools.single.rpm"
        config.no_rpmdb = False

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()

        self.assertTrue(fos[0].install_path != fos[0].src)
        self.assertTrue("save_path" in fos[0])
Esempio n. 11
0
    def test_05_collect__single_real_file__no_read_access(self):
        if os.getuid() == 0:
            print >> sys.stderr, "You look root and cannot test this. Skipped"
            return

        path = random.choice(
            ["/etc/shadow", "/etc/securetty", "/etc/gshadow"]
        )

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()

        self.assertEquals(fos, [])
Esempio n. 12
0
    def test_04_collect__single_real_file_rpm_owns(self):
        """test_04_collect__single_real_file_rpm_owns: FIXME"""
        return

        path = random.choice(
            ["/etc/hosts", "/etc/services", "/etc/bashrc", "/etc/passwd"]
        )

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write(path + "\n")

        collector = FilelistCollector(listfile, config)

        fos = collector.collect()
        fo_ref = Factory.create(path, use_rpmdb=(not config.no_rpmdb))

        self.assertEquals(fos[0].path, path)
        self.assertEquals(fos, [fo_ref])
Esempio n. 13
0
    def test_15_collect__multi_real_files(self):
        """test_15_collect__multi_real_files: FIXME"""
        return  # modifiers also needed to create reference data.

        listfile = os.path.join(self.workdir, "file.list")
        config = init_config(listfile)

        open(listfile, "w").write("\n".join(PATHS))

        collector = FilelistCollector(listfile, config)
        fos = collector.collect()
        filters = [
            Filters.UnsupportedTypesFilter(),
            Filters.NotExistFilter(),
            Filters.ReadAccessFilter(),
        ]
        fos_ref = sorted(
            Factory.create(p, False) for p in PATHS_EXPANDED
        )
        fos_ref = [
            f for f in fos_ref if not any(filter(f) for filter in filters)
        ]

        self.assertEquals(sorted(fos), fos_ref)