Mercurial > hg
view tests/test-atomictempfile.py @ 16611:462dd183bd73 stable
build: fix hgrc manpage building with docutils 0.9
Since docutils 0.9, `roman` module has been moved from module directory root
(i.e. `site-packages/roman.py`) to `docutils.utils` module. Therefore `import
roman` statement should be wrapped in `try: ... except ImportError: ...` block
to handle importing correctly.
author | Nikolaj Sjujskij <sterkrig@myopera.com> |
---|---|
date | Tue, 08 May 2012 23:59:39 +0400 |
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()