Mercurial > hg
view tests/test-atomictempfile.py @ 14570:9f908ef5a595
web: provide diff summary to the changeset page
This is the same message displayed at the end of the "diff --stat" command.
For example, "9 files changed, 1651 insertions(+), 2 deletions(-)".
The webutil.diffstatgen function allows the diffstat data to be lazily
calculated only once and then re-used.
author | Steven Brown <StevenGBrown@gmail.com> |
---|---|
date | Sat, 11 Jun 2011 21:11:43 +0800 |
parents | d764463b433e |
children | 774da7121fc9 |
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.rename() assert os.path.isfile('foo') assert basename not in glob.glob('.foo-*') print 'OK' # close() removes the temp file but does not make the write # permanent -- essentially discards your work (WTF?!) def test2_close(): if os.path.exists('foo'): os.remove('foo') file = atomictempfile('foo') (dir, basename) = os.path.split(file._tempname) file.write('yo\n') file.close() 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_close() test3_oops()