Ejemplo n.º 1
0
    def testIterate(self):
        """Test writing several records and then reading them back"""
        self.make_backup_dirs()
        self.make_temp_out_dirs()
        rp1 = self.acl_test1_rpath.append('a1')
        rp2 = self.acl_test1_rpath.append('a2')
        rp3 = self.acl_test1_rpath.append('a3')

        # Now write records corresponding to above rps into file
        Globals.rbdir = tempdir
        man = metadata.PatchDiffMan()
        writer = man.get_acl_writer('snapshot', 10000)
        for rp in [self.acl_test1_rpath, rp1, rp2, rp3]:
            acl = AccessControlLists(rp.index)
            acl.read_from_rp(rp)
            writer.write_object(acl)
        writer.close()

        # Read back records and compare
        acl_iter = man.get_acls_at_time(10000, None)
        assert acl_iter, "No acl file found"
        dir_acl_reread = next(acl_iter)
        assert dir_acl_reread == self.dir_acl
        acl1_reread = next(acl_iter)
        assert acl1_reread == self.acl1
        acl2_reread = next(acl_iter)
        assert acl2_reread == self.acl2
        acl3_reread = next(acl_iter)
        assert acl3_reread == self.acl3
        try:
            extra = next(acl_iter)
        except StopIteration:
            pass
        else:
            assert 0, "Got unexpected object: " + repr(extra)
Ejemplo n.º 2
0
    def testIterate(self):
        """Test writing several records and then reading them back"""
        self.make_backup_dirs()
        self.make_temp_out_dirs()
        rp1 = self.acl_test1_rpath.append('a1')
        rp2 = self.acl_test1_rpath.append('a2')
        rp3 = self.acl_test1_rpath.append('a3')

        # Now write records corresponding to above rps into file
        Globals.rbdir = tempdir
        man = metadata.PatchDiffMan()
        writer = man._get_acl_writer('snapshot', 10000)
        for rp in [self.acl_test1_rpath, rp1, rp2, rp3]:
            acl = AccessControlLists(rp.index)
            acl.read_from_rp(rp)
            writer.write_object(acl)
        writer.close()

        # Read back records and compare
        acl_iter = man._get_acls_at_time(10000, None)
        self.assertTrue(acl_iter, "No acl file found")
        dir_acl_reread = next(acl_iter)
        self.assertEqual(dir_acl_reread, self.dir_acl)
        acl1_reread = next(acl_iter)
        self.assertEqual(acl1_reread, self.acl1)
        acl2_reread = next(acl_iter)
        self.assertEqual(acl2_reread, self.acl2)
        acl3_reread = next(acl_iter)
        self.assertEqual(acl3_reread, self.acl3)
        with self.assertRaises(StopIteration,
                               msg="Too many elements in iterator"):
            next(acl_iter)
Ejemplo n.º 3
0
    def testIterate(self):
        """Test writing several records and then reading them back"""
        self.make_backup_dirs()
        rp1 = self.ea_test1_rpath.append('e1')
        rp2 = self.ea_test1_rpath.append('e2')
        rp3 = self.ea_test1_rpath.append('e3')

        # Now write records corresponding to above rps into file
        Globals.rbdir = tempdir
        man = metadata.PatchDiffMan()
        writer = man.get_ea_writer('snapshot', 10000)
        for rp in [self.ea_test1_rpath, rp1, rp2, rp3]:
            ea = ExtendedAttributes(rp.index)
            ea.read_from_rp(rp)
            writer.write_object(ea)
        writer.close()

        # Read back records and compare
        ea_iter = man.get_eas_at_time(10000, None)
        assert ea_iter, "No extended_attributes.<time> file found"
        sample_ea_reread = next(ea_iter)
        # we ignore SELinux extended attributes for comparaison
        if sample_ea_reread.attr_dict:
            sample_ea_reread.attr_dict.pop(b'security.selinux', None)
        assert sample_ea_reread == self.sample_ea, "Re-read EAs %s are different from %s" % \
            (sample_ea_reread.attr_dict, self.sample_ea.attr_dict)
        ea1_reread = next(ea_iter)
        if ea1_reread.attr_dict:
            ea1_reread.attr_dict.pop(b'security.selinux', None)
        assert ea1_reread == self.ea1, "Re-read EAs %s are different from %s" % \
            (ea1_reread.attr_dict, self.ea1.attr_dict)
        ea2_reread = next(ea_iter)
        if ea2_reread.attr_dict:
            ea2_reread.attr_dict.pop(b'security.selinux', None)
        assert ea2_reread == self.ea2, "Re-read EAs %s are different from %s" % \
            (ea2_reread.attr_dict, self.ea2.attr_dict)
        ea3_reread = next(ea_iter)
        if ea3_reread.attr_dict:
            ea3_reread.attr_dict.pop(b'security.selinux', None)
        assert ea3_reread == self.ea3, "Re-read EAs %s are different from %s" % \
            (ea3_reread.attr_dict, self.ea3.attr_dict)
        try:
            next(ea_iter)
        except StopIteration:
            pass
        else:
            assert 0, "Expected end to iterator"
Ejemplo n.º 4
0
    def testIterate(self):
        """Test writing several records and then reading them back"""
        self.make_backup_dirs()
        rp1 = self.ea_test1_rpath.append('e1')
        rp2 = self.ea_test1_rpath.append('e2')
        rp3 = self.ea_test1_rpath.append('e3')

        # Now write records corresponding to above rps into file
        Globals.rbdir = tempdir
        man = metadata.PatchDiffMan()
        writer = man._get_ea_writer('snapshot', 10000)
        for rp in [self.ea_test1_rpath, rp1, rp2, rp3]:
            ea = ExtendedAttributes(rp.index)
            ea.read_from_rp(rp)
            writer.write_object(ea)
        writer.close()

        # Read back records and compare
        ea_iter = man._get_eas_at_time(10000, None)
        self.assertTrue(ea_iter, "No extended_attributes.<time> file found")
        sample_ea_reread = next(ea_iter)
        # we ignore SELinux extended attributes for comparison
        if sample_ea_reread.attr_dict:
            sample_ea_reread.attr_dict.pop(b'security.selinux', None)
        # Check if re-read EAs are different from sample ones
        self.assertEqual(sample_ea_reread, self.sample_ea)
        ea1_reread = next(ea_iter)
        if ea1_reread.attr_dict:
            ea1_reread.attr_dict.pop(b'security.selinux', None)
        self.assertEqual(ea1_reread, self.ea1)
        ea2_reread = next(ea_iter)
        if ea2_reread.attr_dict:
            ea2_reread.attr_dict.pop(b'security.selinux', None)
        self.assertEqual(ea2_reread, self.ea2)
        ea3_reread = next(ea_iter)
        if ea3_reread.attr_dict:
            ea3_reread.attr_dict.pop(b'security.selinux', None)
        self.assertEqual(ea3_reread, self.ea3)
        with self.assertRaises(StopIteration,
                               msg="Too many elements in iterator"):
            next(ea_iter)