~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_atomicfile.py

  • Committer: Vincent Ladeuil
  • Date: 2012-01-18 14:09:19 UTC
  • mto: This revision was merged to the branch mainline in revision 6468.
  • Revision ID: v.ladeuil+lp@free.fr-20120118140919-rlvdrhpc0nq1lbwi
Change set/remove to require a lock for the branch config files.

This means that tests (or any plugin for that matter) do not requires an
explicit lock on the branch anymore to change a single option. This also
means the optimisation becomes "opt-in" and as such won't be as
spectacular as it may be and/or harder to get right (nothing fails
anymore).

This reduces the diff by ~300 lines.

Code/tests that were updating more than one config option is still taking
a lock to at least avoid some IOs and demonstrate the benefits through
the decreased number of hpss calls.

The duplication between BranchStack and BranchOnlyStack will be removed
once the same sharing is in place for local config files, at which point
the Stack class itself may be able to host the changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
    def test_commit(self):
35
35
        f = atomicfile.AtomicFile('test')
36
 
        self.failIfExists('test')
 
36
        self.assertPathDoesNotExist('test')
37
37
        f.write('foo\n')
38
38
        f.commit()
39
39
 
124
124
        f.commit()
125
125
        st = os.lstat('test')
126
126
        self.assertEqualMode(0666 & ~umask, stat.S_IMODE(st.st_mode))
127
 
 
128
 
    def test_closed(self):
129
 
        local_warnings = []
130
 
        def capture_warnings(msg, cls, stacklevel=None):
131
 
            self.assertEqual(cls, DeprecationWarning)
132
 
            local_warnings.append(msg)
133
 
 
134
 
        method = symbol_versioning.warn
135
 
        try:
136
 
            symbol_versioning.set_warning_method(capture_warnings)
137
 
            f = atomicfile.AtomicFile('test', mode='wb')
138
 
            self.assertEqual(False, f.closed)
139
 
            f.abort()
140
 
            self.assertEqual(True, f.closed)
141
 
 
142
 
            f = atomicfile.AtomicFile('test', mode='wb')
143
 
            f.close()
144
 
            self.assertEqual(True, f.closed)
145
 
 
146
 
            f = atomicfile.AtomicFile('test', mode='wb')
147
 
            f.commit()
148
 
            self.assertEqual(True, f.closed)
149
 
        finally:
150
 
            symbol_versioning.set_warning_method(method)
151
 
 
152
 
        txt = 'AtomicFile.closed deprecated in bzr 0.10'
153
 
        self.assertEqual([txt]*4, local_warnings)