##// END OF EJS Templates
bundlerepo: fix and improve getremotechanges...
bundlerepo: fix and improve getremotechanges Fixes the regression where incoming could show local changes introduced by rev 72c84f24b420.

File last commit:

r14007:d764463b default
r14161:8a0fca92 default
Show More
test-atomictempfile.py
49 lines | 1.2 KiB | text/x-python | PythonLexer
/ tests / test-atomictempfile.py
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()