~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_permissions.py

  • Committer: John Arbash Meinel
  • Date: 2005-12-15 20:03:03 UTC
  • mto: (1185.50.20 bzr-jam-integration)
  • mto: This revision was merged to the branch mainline in revision 1532.
  • Revision ID: john@arbash-meinel.com-20051215200303-be2d09abef0f6e57
Added mode to the appropriate transport functions, and tests to make sure they work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
17
 
18
18
 
19
 
"""Black-box tests for bzr setting permissions.
 
19
"""Tests for bzr setting permissions.
 
20
 
 
21
Files which are created underneath .bzr/ should inherit its permissions.
 
22
So if the directory is group writable, the files and subdirs should be as well.
 
23
 
 
24
In the future, when we have Repository/Branch/Checkout information, the
 
25
permissions should be inherited individually, rather than all be the same.
 
26
 
 
27
TODO: jam 20051215 There are no tests for ftp yet, because we have no ftp server
 
28
TODO: jam 20051215 Currently the default behavior for 'bzr branch' is just 
 
29
                   defined by the local umask. This isn't terrible, is it
 
30
                   the truly desired behavior?
20
31
"""
21
32
 
22
33
import os
26
37
from bzrlib.branch import Branch
27
38
from bzrlib.tests import TestCaseInTempDir, TestSkipped
28
39
from bzrlib.tests.test_sftp import TestCaseWithSFTPServer
 
40
from bzrlib.tests.test_transport import check_mode
29
41
 
30
42
 
31
43
def chmod_r(base, file_mode, dir_mode):
39
51
            os.chmod(p, file_mode)
40
52
 
41
53
 
42
 
def check_mode(test, path, mode):
43
 
    """Check that a particular path has the correct mode."""
44
 
    actual_mode = stat.S_IMODE(os.stat(path).st_mode)
45
 
    test.assertEqual(mode, actual_mode,
46
 
        'mode of %r incorrect (%o != %o)' % (path, mode, actual_mode))
47
 
 
48
 
 
49
54
def check_mode_r(test, base, file_mode, dir_mode):
50
55
    """Check that all permissions match"""
51
56
    for root, dirs, files in os.walk(base):
106
111
        check_mode_r(self, '.bzr', 0664, 0775)
107
112
 
108
113
 
109
 
# TODO: JAM 20051215 Probably we want to check FTP permissions as well
110
 
#       but we need an FTP server for that
111
114
class TestSftpPermissions(TestCaseWithSFTPServer):
112
115
 
113
116
    def test_new_files(self):
114
117
        if sys.platform == 'win32':
115
118
            raise TestSkipped('chmod has no effect on win32')
 
119
        # Though it would be nice to test that SFTP to a server
 
120
        # which does support chmod has the right effect
116
121
 
117
122
        # We don't actually use it directly, we just want to
118
123
        # keep the connection open, since StubSFTPServer only