##// END OF EJS Templates
clfilter: prevent unwanted warning about filtered parents as unknown...
clfilter: prevent unwanted warning about filtered parents as unknown During changectx __init__ the dirstate's parents MAY be checked. If the repo is filtered, this check will complain "working directory has unknown parents" even if the parents are perfectly known. This may happen when the repo is used for serving and the dirstate has parents that are secret, as those secret changesets will be filtered.

File last commit:

r15057:774da712 default
r18005:aba3c161 default
Show More
test-atomictempfile.py
48 lines | 1.2 KiB | text/x-python | PythonLexer
/ tests / test-atomictempfile.py
Greg Ward
atomictempfile: avoid infinite recursion in __del__()....
r14007 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')
Greg Ward
atomictempfile: make close() consistent with other file-like objects....
r15057 file.close()
Greg Ward
atomictempfile: avoid infinite recursion in __del__()....
r14007
assert os.path.isfile('foo')
assert basename not in glob.glob('.foo-*')
print 'OK'
Greg Ward
atomictempfile: make close() consistent with other file-like objects....
r15057 # discard() removes the temp file without making the write permanent
def test2_discard():
Greg Ward
atomictempfile: avoid infinite recursion in __del__()....
r14007 if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
file.write('yo\n')
Greg Ward
atomictempfile: make close() consistent with other file-like objects....
r15057 file.discard()
Greg Ward
atomictempfile: avoid infinite recursion in __del__()....
r14007
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()
Greg Ward
atomictempfile: make close() consistent with other file-like objects....
r15057 test2_discard()
Greg Ward
atomictempfile: avoid infinite recursion in __del__()....
r14007 test3_oops()