def test_new_branch(self): if isinstance(self.branch_format, RemoteBranchFormat): # Remote branch format have no permission logic in them; there's # nothing to test here. raise tests.TestNotApplicable('Remote branches have no' ' permission logic') if sys.platform == 'win32': raise tests.TestNotApplicable('chmod has no effect on win32') os.mkdir('a') mode = stat.S_IMODE(os.stat('a').st_mode) t = self.make_branch_and_tree('.') # also, these are BzrBranch format specific things.. if not isinstance(t.branch, BzrBranch): raise tests.TestNotApplicable( "Only applicable to bzr branches") b = t.branch self.assertEqualMode(mode, b.bzrdir._get_dir_mode()) self.assertEqualMode(mode & ~07111, b.bzrdir._get_file_mode()) self.assertEqualMode(mode, b.control_files._dir_mode) self.assertEqualMode(mode & ~07111, b.control_files._file_mode) os.mkdir('d') os.chmod('d', 0700) b = self.make_branch('d') self.assertEqualMode(0700, b.bzrdir._get_dir_mode()) self.assertEqualMode(0600, b.bzrdir._get_file_mode()) self.assertEqualMode(0700, b.control_files._dir_mode) self.assertEqualMode(0600, b.control_files._file_mode) check_mode_r(self, 'd/.bzr', 00600, 00700)
def test_new_branch_group_sticky_bit(self): if isinstance(self.branch_format, RemoteBranchFormat): # Remote branch format have no permission logic in them; there's # nothing to test here. raise tests.TestNotApplicable('Remote branches have no' ' permission logic') if sys.platform == 'win32': raise tests.TestNotApplicable('chmod has no effect on win32') elif sys.platform == 'darwin' or 'freebsd' in sys.platform: # FreeBSD-based platforms create temp dirs with the 'wheel' group, # which users are not likely to be in, and this prevents us # from setting the sgid bit os.chown(self.test_dir, os.getuid(), os.getgid()) t = self.make_branch_and_tree('.') b = t.branch # also, these are BzrBranch format specific things.. if not isinstance(b, BzrBranch): raise tests.TestNotApplicable( "Only applicable to bzr branches") os.mkdir('b') os.chmod('b', 02777) b = self.make_branch('b') self.assertEqualMode(02777, b.bzrdir._get_dir_mode()) self.assertEqualMode(00666, b.bzrdir._get_file_mode()) self.assertEqualMode(02777, b.control_files._dir_mode) self.assertEqualMode(00666, b.control_files._file_mode) check_mode_r(self, 'b/.bzr', 00666, 02777) os.mkdir('c') os.chmod('c', 02750) b = self.make_branch('c') self.assertEqualMode(02750, b.bzrdir._get_dir_mode()) self.assertEqualMode(00640, b.bzrdir._get_file_mode()) self.assertEqualMode(02750, b.control_files._dir_mode) self.assertEqualMode(00640, b.control_files._file_mode) check_mode_r(self, 'c/.bzr', 00640, 02750)
def test_new_branch(self): if isinstance(self.branch_format, RemoteBranchFormat): # Remote branch format have no permission logic in them; there's # nothing to test here. return if sys.platform == 'win32': raise TestSkipped('chmod has no effect on win32') # also, these are BzrBranch format specific things.. os.mkdir('a') mode = stat.S_IMODE(os.stat('a').st_mode) t = self.make_branch_and_tree('.') b = t.branch self.assertEqualMode(mode, b.bzrdir._get_dir_mode()) self.assertEqualMode(mode & ~07111, b.bzrdir._get_file_mode()) self.assertEqualMode(mode, b.control_files._dir_mode) self.assertEqualMode(mode & ~07111, b.control_files._file_mode) os.mkdir('b') os.chmod('b', 02777) b = self.make_branch('b') self.assertEqualMode(02777, b.bzrdir._get_dir_mode()) self.assertEqualMode(00666, b.bzrdir._get_file_mode()) self.assertEqualMode(02777, b.control_files._dir_mode) self.assertEqualMode(00666, b.control_files._file_mode) check_mode_r(self, 'b/.bzr', 00666, 02777) os.mkdir('c') os.chmod('c', 02750) b = self.make_branch('c') self.assertEqualMode(02750, b.bzrdir._get_dir_mode()) self.assertEqualMode(00640, b.bzrdir._get_file_mode()) self.assertEqualMode(02750, b.control_files._dir_mode) self.assertEqualMode(00640, b.control_files._file_mode) check_mode_r(self, 'c/.bzr', 00640, 02750) os.mkdir('d') os.chmod('d', 0700) b = self.make_branch('d') self.assertEqualMode(0700, b.bzrdir._get_dir_mode()) self.assertEqualMode(0600, b.bzrdir._get_file_mode()) self.assertEqualMode(0700, b.control_files._dir_mode) self.assertEqualMode(0600, b.control_files._file_mode) check_mode_r(self, 'd/.bzr', 00600, 00700)