Mercurial > hg
view tests/test-atomictempfile.py @ 17474:f85816af6294
obsolete: add a high level function to create an obsolete marker
This function is designed to be used by all code that creates new
obsolete markers in the local repository.
It is not used by debugobsolete because debugobsolete allows the
use of an unknown hash as argument.
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Fri, 24 Aug 2012 21:16:23 +0200 |
parents | 774da7121fc9 |
children | fb9d1c2805ff |
line wrap: on
line source
import os import glob from mercurial.util import atomictempfile # basic usage def test1_simple(): if os.path.exists('foo'): os.remove('foo') file = atomictempfile('foo') (dir, basename) = os.path.split(file._tempname) assert not os.path.isfile('foo') assert basename in glob.glob('.foo-*') file.write('argh\n') file.close() assert os.path.isfile('foo') assert basename not in glob.glob('.foo-*') print 'OK' # discard() removes the temp file without making the write permanent def test2_discard(): if os.path.exists('foo'): os.remove('foo') file = atomictempfile('foo') (dir, basename) = os.path.split(file._tempname) file.write('yo\n') file.discard() assert not os.path.isfile('foo') assert basename not in os.listdir('.') print 'OK' # if a programmer screws up and passes bad args to atomictempfile, they # get a plain ordinary TypeError, not infinite recursion def test3_oops(): try: file = atomictempfile() except TypeError: print "OK" else: print "expected TypeError" if __name__ == '__main__': test1_simple() test2_discard() test3_oops()