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 test_acl_dropping(self):
        """Test dropping of ACL names"""
        self.make_temp_out_dirs()
        rp = tempdir.append('a1')
        rp.touch()
        """ben uses a dvorak keyboard, and these sequences are
        analogous to asdfsjkd for a qwerty user... these
        users and groups are not expected to exist. -dean"""
        acl = AccessControlLists(('a1', ), """user::rwx
user:aoensutheu:r--
group::r-x
group:aeuai:r-x
group:enutohnh:-w-
other::---""")
        rp.write_acl(acl)
        rp2 = tempdir.append('a1')
        acl2 = AccessControlLists(('a1', ))
        acl2.read_from_rp(rp2)
        assert acl2.is_basic()
        Globals.never_drop_acls = 1
        try:
            rp.write_acl(acl)
        except SystemExit:
            pass
        else:
            assert 0, "Above should have exited with fatal error"
        Globals.never_drop_acls = None
Ejemplo n.º 3
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.º 4
0
    def testBasicDir(self):
        """Test reading and writing of ACL w/ defaults to directory"""
        self.make_temp_out_dirs()
        new_acl = AccessControlLists(())
        new_acl.read_from_rp(tempdir)
        assert new_acl.is_basic()
        assert new_acl != self.dir_acl

        self.dir_acl.write_to_rp(tempdir)
        new_acl.read_from_rp(tempdir)
        assert not new_acl.is_basic()
        if not new_acl == self.dir_acl:
            assert new_acl.eq_verbose(self.dir_acl)
            assert 0, "Shouldn't be here---eq != eq_verbose?"
Ejemplo n.º 5
0
    def testBasicDir(self):
        """Test reading and writing of ACL w/ defaults to directory"""
        self.make_temp_out_dirs()
        new_acl = AccessControlLists(())
        new_acl.read_from_rp(tempdir)
        self.assertTrue(new_acl.is_basic())
        self.assertNotEqual(new_acl, self.dir_acl)

        self.dir_acl.write_to_rp(tempdir)
        new_acl.read_from_rp(tempdir)
        self.assertFalse(new_acl.is_basic())
        if not new_acl == self.dir_acl:
            self.assertTrue(new_acl._eq_verbose(self.dir_acl))
            self.assertFalse("Shouldn't be here---eq != _eq_verbose?")
Ejemplo n.º 6
0
    def testBasic(self):
        """Test basic writing and reading of ACLs"""
        self.make_temp_out_dirs()
        new_acl = AccessControlLists(())
        tempdir.chmod(0o700)
        new_acl.read_from_rp(tempdir)
        self.assertTrue(new_acl.is_basic())
        self.assertNotEqual(new_acl, self.sample_acl)
        self.assertEqual(new_acl, self.empty_acl)

        self.sample_acl.write_to_rp(tempdir)
        new_acl.read_from_rp(tempdir)
        self.assertEqual(str(new_acl), str(self.sample_acl))
        self.assertEqual(new_acl, self.sample_acl)
Ejemplo n.º 7
0
    def testBasic(self):
        """Test basic writing and reading of ACLs"""
        self.make_temp_out_dirs()
        new_acl = AccessControlLists(())
        tempdir.chmod(0o700)
        new_acl.read_from_rp(tempdir)
        assert new_acl.is_basic(), str(new_acl)
        assert not new_acl == self.sample_acl
        assert new_acl != self.sample_acl
        assert new_acl == self.empty_acl, \
            (str(new_acl), str(self.empty_acl))

        self.sample_acl.write_to_rp(tempdir)
        new_acl.read_from_rp(tempdir)
        assert str(new_acl) == str(self.sample_acl), \
            (str(new_acl), str(self.sample_acl))
        assert new_acl == self.sample_acl