/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_permissions.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-22 00:56:52 UTC
  • mfrom: (6621.2.26 py3_pokes)
  • Revision ID: jelmer@jelmer.uk-20170522005652-yjahcr9hwmjkno7n
Merge Python3 porting work ('py3 pokes')

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
        t.add('a', 'CAPS-ID')
89
89
        t.commit('foo')
90
90
 
91
 
        chmod_r('.bzr', 0644, 0755)
92
 
        check_mode_r(self, '.bzr', 0644, 0755)
 
91
        chmod_r('.bzr', 0o644, 0o755)
 
92
        check_mode_r(self, '.bzr', 0o644, 0o755)
93
93
 
94
94
        # although we are modifying the filesystem
95
95
        # underneath the objects, they are not locked, and thus it must
98
98
        # when a new lock is taken out.
99
99
        t = WorkingTree.open('.')
100
100
        b = t.branch
101
 
        self.assertEqualMode(0755, b.control_files._dir_mode)
102
 
        self.assertEqualMode(0644, b.control_files._file_mode)
103
 
        self.assertEqualMode(0755, b.bzrdir._get_dir_mode())
104
 
        self.assertEqualMode(0644, b.bzrdir._get_file_mode())
 
101
        self.assertEqualMode(0o755, b.control_files._dir_mode)
 
102
        self.assertEqualMode(0o644, b.control_files._file_mode)
 
103
        self.assertEqualMode(0o755, b.bzrdir._get_dir_mode())
 
104
        self.assertEqualMode(0o644, b.bzrdir._get_file_mode())
105
105
 
106
106
        # Modifying a file shouldn't break the permissions
107
107
        with open('a', 'wb') as f: f.write('foo2\n')
108
108
        t.commit('foo2')
109
109
        # The mode should be maintained after commit
110
 
        check_mode_r(self, '.bzr', 0644, 0755)
 
110
        check_mode_r(self, '.bzr', 0o644, 0o755)
111
111
 
112
112
        # Adding a new file should maintain the permissions
113
113
        with open('b', 'wb') as f: f.write('new b\n')
114
114
        t.add('b')
115
115
        t.commit('new b')
116
 
        check_mode_r(self, '.bzr', 0644, 0755)
 
116
        check_mode_r(self, '.bzr', 0o644, 0o755)
117
117
 
118
118
        # Recursively update the modes of all files
119
 
        chmod_r('.bzr', 0664, 0775)
120
 
        check_mode_r(self, '.bzr', 0664, 0775)
 
119
        chmod_r('.bzr', 0o664, 0o775)
 
120
        check_mode_r(self, '.bzr', 0o664, 0o775)
121
121
        t = WorkingTree.open('.')
122
122
        b = t.branch
123
 
        self.assertEqualMode(0775, b.control_files._dir_mode)
124
 
        self.assertEqualMode(0664, b.control_files._file_mode)
125
 
        self.assertEqualMode(0775, b.bzrdir._get_dir_mode())
126
 
        self.assertEqualMode(0664, b.bzrdir._get_file_mode())
 
123
        self.assertEqualMode(0o775, b.control_files._dir_mode)
 
124
        self.assertEqualMode(0o664, b.control_files._file_mode)
 
125
        self.assertEqualMode(0o775, b.bzrdir._get_dir_mode())
 
126
        self.assertEqualMode(0o664, b.bzrdir._get_file_mode())
127
127
 
128
128
        with open('a', 'wb') as f: f.write('foo3\n')
129
129
        t.commit('foo3')
130
 
        check_mode_r(self, '.bzr', 0664, 0775)
 
130
        check_mode_r(self, '.bzr', 0o664, 0o775)
131
131
 
132
132
        with open('c', 'wb') as f: f.write('new c\n')
133
133
        t.add('c')
134
134
        t.commit('new c')
135
 
        check_mode_r(self, '.bzr', 0664, 0775)
 
135
        check_mode_r(self, '.bzr', 0o664, 0o775)
136
136
 
137
137
    def test_new_files_group_sticky_bit(self):
138
138
        if sys.platform == 'win32':
148
148
 
149
149
        # Test the group sticky bit
150
150
        # Recursively update the modes of all files
151
 
        chmod_r('.bzr', 0664, 02775)
152
 
        check_mode_r(self, '.bzr', 0664, 02775)
 
151
        chmod_r('.bzr', 0o664, 0o2775)
 
152
        check_mode_r(self, '.bzr', 0o664, 0o2775)
153
153
        t = WorkingTree.open('.')
154
154
        b = t.branch
155
 
        self.assertEqualMode(02775, b.control_files._dir_mode)
156
 
        self.assertEqualMode(0664, b.control_files._file_mode)
157
 
        self.assertEqualMode(02775, b.bzrdir._get_dir_mode())
158
 
        self.assertEqualMode(0664, b.bzrdir._get_file_mode())
 
155
        self.assertEqualMode(0o2775, b.control_files._dir_mode)
 
156
        self.assertEqualMode(0o664, b.control_files._file_mode)
 
157
        self.assertEqualMode(0o2775, b.bzrdir._get_dir_mode())
 
158
        self.assertEqualMode(0o664, b.bzrdir._get_file_mode())
159
159
 
160
160
        with open('a', 'wb') as f: f.write('foo4\n')
161
161
        t.commit('foo4')
162
 
        check_mode_r(self, '.bzr', 0664, 02775)
 
162
        check_mode_r(self, '.bzr', 0o664, 0o2775)
163
163
 
164
164
        with open('d', 'wb') as f: f.write('new d\n')
165
165
        t.add('d')
166
166
        t.commit('new d')
167
 
        check_mode_r(self, '.bzr', 0664, 02775)
 
167
        check_mode_r(self, '.bzr', 0o664, 0o2775)
168
168
 
169
169
 
170
170
class TestSftpPermissions(TestCaseWithSFTPServer):
187
187
        t_local.commit('foo')
188
188
 
189
189
        # Delete them because we are modifying the filesystem underneath them
190
 
        chmod_r('local/.bzr', 0644, 0755)
191
 
        check_mode_r(self, 'local/.bzr', 0644, 0755)
 
190
        chmod_r('local/.bzr', 0o644, 0o755)
 
191
        check_mode_r(self, 'local/.bzr', 0o644, 0o755)
192
192
 
193
193
        t = WorkingTree.open('local')
194
194
        b_local = t.branch
195
 
        self.assertEqualMode(0755, b_local.control_files._dir_mode)
196
 
        self.assertEqualMode(0644, b_local.control_files._file_mode)
197
 
        self.assertEqualMode(0755, b_local.bzrdir._get_dir_mode())
198
 
        self.assertEqualMode(0644, b_local.bzrdir._get_file_mode())
 
195
        self.assertEqualMode(0o755, b_local.control_files._dir_mode)
 
196
        self.assertEqualMode(0o644, b_local.control_files._file_mode)
 
197
        self.assertEqualMode(0o755, b_local.bzrdir._get_dir_mode())
 
198
        self.assertEqualMode(0o644, b_local.bzrdir._get_file_mode())
199
199
 
200
200
        os.mkdir('sftp')
201
201
        sftp_url = self.get_url('sftp')
203
203
 
204
204
        b_sftp.pull(b_local)
205
205
        del b_sftp
206
 
        chmod_r('sftp/.bzr', 0644, 0755)
207
 
        check_mode_r(self, 'sftp/.bzr', 0644, 0755)
 
206
        chmod_r('sftp/.bzr', 0o644, 0o755)
 
207
        check_mode_r(self, 'sftp/.bzr', 0o644, 0o755)
208
208
 
209
209
        b_sftp = Branch.open(sftp_url)
210
 
        self.assertEqualMode(0755, b_sftp.control_files._dir_mode)
211
 
        self.assertEqualMode(0644, b_sftp.control_files._file_mode)
212
 
        self.assertEqualMode(0755, b_sftp.bzrdir._get_dir_mode())
213
 
        self.assertEqualMode(0644, b_sftp.bzrdir._get_file_mode())
 
210
        self.assertEqualMode(0o755, b_sftp.control_files._dir_mode)
 
211
        self.assertEqualMode(0o644, b_sftp.control_files._file_mode)
 
212
        self.assertEqualMode(0o755, b_sftp.bzrdir._get_dir_mode())
 
213
        self.assertEqualMode(0o644, b_sftp.bzrdir._get_file_mode())
214
214
 
215
215
        with open('local/a', 'wb') as f: f.write('foo2\n')
216
216
        t_local.commit('foo2')
217
217
        b_sftp.pull(b_local)
218
218
        # The mode should be maintained after commit
219
 
        check_mode_r(self, 'sftp/.bzr', 0644, 0755)
 
219
        check_mode_r(self, 'sftp/.bzr', 0o644, 0o755)
220
220
 
221
221
        with open('local/b', 'wb') as f: f.write('new b\n')
222
222
        t_local.add('b')
223
223
        t_local.commit('new b')
224
224
        b_sftp.pull(b_local)
225
 
        check_mode_r(self, 'sftp/.bzr', 0644, 0755)
 
225
        check_mode_r(self, 'sftp/.bzr', 0o644, 0o755)
226
226
 
227
227
        del b_sftp
228
228
        # Recursively update the modes of all files
229
 
        chmod_r('sftp/.bzr', 0664, 0775)
230
 
        check_mode_r(self, 'sftp/.bzr', 0664, 0775)
 
229
        chmod_r('sftp/.bzr', 0o664, 0o775)
 
230
        check_mode_r(self, 'sftp/.bzr', 0o664, 0o775)
231
231
 
232
232
        b_sftp = Branch.open(sftp_url)
233
 
        self.assertEqualMode(0775, b_sftp.control_files._dir_mode)
234
 
        self.assertEqualMode(0664, b_sftp.control_files._file_mode)
235
 
        self.assertEqualMode(0775, b_sftp.bzrdir._get_dir_mode())
236
 
        self.assertEqualMode(0664, b_sftp.bzrdir._get_file_mode())
 
233
        self.assertEqualMode(0o775, b_sftp.control_files._dir_mode)
 
234
        self.assertEqualMode(0o664, b_sftp.control_files._file_mode)
 
235
        self.assertEqualMode(0o775, b_sftp.bzrdir._get_dir_mode())
 
236
        self.assertEqualMode(0o664, b_sftp.bzrdir._get_file_mode())
237
237
 
238
238
        with open('local/a', 'wb') as f: f.write('foo3\n')
239
239
        t_local.commit('foo3')
240
240
        b_sftp.pull(b_local)
241
 
        check_mode_r(self, 'sftp/.bzr', 0664, 0775)
 
241
        check_mode_r(self, 'sftp/.bzr', 0o664, 0o775)
242
242
 
243
243
        with open('local/c', 'wb') as f: f.write('new c\n')
244
244
        t_local.add('c')
245
245
        t_local.commit('new c')
246
246
        b_sftp.pull(b_local)
247
 
        check_mode_r(self, 'sftp/.bzr', 0664, 0775)
 
247
        check_mode_r(self, 'sftp/.bzr', 0o664, 0o775)
248
248
 
249
249
    def test_sftp_server_modes(self):
250
250
        if sys.platform == 'win32':
251
251
            raise TestSkipped('chmod has no effect on win32')
252
252
 
253
 
        umask = 0022
 
253
        umask = 0o022
254
254
        original_umask = os.umask(umask)
255
255
 
256
256
        try:
257
257
            t = self.get_transport()
258
258
            # Direct access should be masked by umask
259
 
            t._sftp_open_exclusive('a', mode=0666).write('foo\n')
260
 
            self.assertTransportMode(t, 'a', 0666 &~umask)
 
259
            t._sftp_open_exclusive('a', mode=0o666).write('foo\n')
 
260
            self.assertTransportMode(t, 'a', 0o666 &~umask)
261
261
 
262
262
            # but Transport overrides umask
263
 
            t.put_bytes('b', 'txt', mode=0666)
264
 
            self.assertTransportMode(t, 'b', 0666)
265
 
 
266
 
            t._get_sftp().mkdir('c', mode=0777)
267
 
            self.assertTransportMode(t, 'c', 0777 &~umask)
268
 
 
269
 
            t.mkdir('d', mode=0777)
270
 
            self.assertTransportMode(t, 'd', 0777)
 
263
            t.put_bytes('b', 'txt', mode=0o666)
 
264
            self.assertTransportMode(t, 'b', 0o666)
 
265
 
 
266
            t._get_sftp().mkdir('c', mode=0o777)
 
267
            self.assertTransportMode(t, 'c', 0o777 &~umask)
 
268
 
 
269
            t.mkdir('d', mode=0o777)
 
270
            self.assertTransportMode(t, 'd', 0o777)
271
271
        finally:
272
272
            os.umask(original_umask)