test-atomictempfile.py
48 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
/ tests / test-atomictempfile.py
Greg Ward
|
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
|
r15057 | file.close() | ||
Greg Ward
|
r14007 | |||
assert os.path.isfile('foo') | ||||
assert basename not in glob.glob('.foo-*') | ||||
print 'OK' | ||||
Greg Ward
|
r15057 | # discard() removes the temp file without making the write permanent | ||
def test2_discard(): | ||||
Greg Ward
|
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
|
r15057 | file.discard() | ||
Greg Ward
|
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
|
r15057 | test2_discard() | ||
Greg Ward
|
r14007 | test3_oops() | ||