~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_filesystem_cicp.py

(lifeless) Wrap os.rename to get better errors on failure. (Martin Pool)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008 Canonical Ltd
 
1
# Copyright (C) 2008, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
19
19
 
20
20
import os
21
21
 
 
22
from bzrlib import (osutils,
 
23
    )
22
24
from bzrlib.tests.blackbox import ExternalBase
23
25
from bzrlib.tests import CaseInsCasePresFilenameFeature, KnownFailure
24
26
from bzrlib.osutils import canonical_relpath, pathjoin
89
91
        self.build_tree(['MixedCase'])
90
92
        self.check_output('adding MixedCase\n', 'add MixedCase')
91
93
        # 'accidently' rename the file on disk
92
 
        os.rename('MixedCase', 'mixedcase')
 
94
        osutils.rename('MixedCase', 'mixedcase')
93
95
        self.check_empty_output('add mixedcase')
94
96
 
95
97
    def test_re_add_dir(self):
103
105
                          'adding MixedCaseParent/MixedCase\n',
104
106
                          'add MixedCaseParent')
105
107
        # 'accidently' rename the directory on disk
106
 
        os.rename('MixedCaseParent', 'mixedcaseparent')
 
108
        osutils.rename('MixedCaseParent', 'mixedcaseparent')
107
109
        self.check_empty_output('add mixedcaseparent')
108
110
 
109
111
    def test_add_not_found(self):
130
132
        wt = self._make_mixed_case_tree()
131
133
        self.run_bzr('add')
132
134
        self.run_bzr('ci -m message')
133
 
        os.rename('CamelCaseParent/CamelCase', 'CamelCaseParent/NewCamelCase')
 
135
        osutils.rename('CamelCaseParent/CamelCase', 'CamelCaseParent/NewCamelCase')
134
136
 
135
137
        # In this case we can specify the incorrect case for the destination,
136
138
        # as we use --after, so the file-system is sniffed.
157
159
        # Remove the source and create a destination file on disk with a different case.
158
160
        # bzr should report that the filename is already versioned.
159
161
        os.unlink('CamelCaseParent/CamelCase')
160
 
        os.rename('lowercaseparent/lowercase', 'lowercaseparent/LOWERCASE')
 
162
        osutils.rename('lowercaseparent/lowercase', 'lowercaseparent/LOWERCASE')
161
163
        ex = 'bzr: ERROR: Could not move CamelCase => lowercase: lowercaseparent/lowercase is already versioned.\n'
162
164
        self.check_error_output(3, ex, 'mv --after camelcaseparent/camelcase LOWERCASEPARENT/LOWERCASE')
163
165
 
173
175
        wt = self._make_mixed_case_tree()
174
176
        self.run_bzr('add')
175
177
        self.run_bzr('ci -m message')
176
 
        os.rename('CamelCaseParent', 'NewCamelCaseParent')
 
178
        osutils.rename('CamelCaseParent', 'NewCamelCaseParent')
177
179
 
178
180
        # In this case we can specify the incorrect case for the destination,
179
181
        # as we use --after, so the file-system is sniffed.
199
201
 
200
202
        # perform a mv to the new case - we must ensure the file-system has the
201
203
        # new case first.
202
 
        os.rename('CamelCaseParent/CamelCase', 'CamelCaseParent/camelCase')
 
204
        osutils.rename('CamelCaseParent/CamelCase', 'CamelCaseParent/camelCase')
203
205
        self.check_output('CamelCaseParent/CamelCase => CamelCaseParent/camelCase\n',
204
206
                          'mv --after camelcaseparent/camelcase camelcaseparent/camelCase')
205
207
        # bzr should not have renamed the file to a different case