bugtests.test397.py Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython-standalone Show documentation
Show all versions of jython-standalone Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
'''
Checks that files are closed in three situations:
1. Garbage collection/finalization close
2. Regular close
3. Shutdown time, close out open PyFiles
'''
import os
import support
from java.io import File
from java.lang import System, Thread
def check(fn='test.txt'):
f = File(fn)
if not f.exists():
raise support.TestError('"%s" should exist' % fn)
if not f.length():
raise support.TestError('"%s" should have contents' % fn)
os.remove(fn)
open("garbagecollected", "w").write("test")
#Wait up to 2 seconds for garbage collected to disappear
System.gc()
for i in range(10):
if not os.path.exists('garbagecollected'):
break
Thread.sleep(200)
check("garbagecollected")
f = open("normalclose", "w")
f.write("test")
f.close()
check("normalclose")
#test397m writes to "shutdown" and exits
support.runJython('test397m.py')
check('shutdown')