Index: third_party/cython/src/pyximport/test/test_pyximport.py |
diff --git a/third_party/cython/src/pyximport/test/test_pyximport.py b/third_party/cython/src/pyximport/test/test_pyximport.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e45d5ff7f434c90a4ef496cc2250305a633b07b4 |
--- /dev/null |
+++ b/third_party/cython/src/pyximport/test/test_pyximport.py |
@@ -0,0 +1,65 @@ |
+import pyximport; pyximport.install(reload_support=True) |
+import os, sys |
+import time, shutil |
+import tempfile |
+ |
+def make_tempdir(): |
+ tempdir = os.path.join(tempfile.gettempdir(), "pyrex_temp") |
+ if os.path.exists(tempdir): |
+ remove_tempdir(tempdir) |
+ |
+ os.mkdir(tempdir) |
+ return tempdir |
+ |
+def remove_tempdir(tempdir): |
+ shutil.rmtree(tempdir, 0, on_remove_file_error) |
+ |
+def on_remove_file_error(func, path, excinfo): |
+ print "Sorry! Could not remove a temp file:", path |
+ print "Extra information." |
+ print func, excinfo |
+ print "You may want to delete this yourself when you get a chance." |
+ |
+def test(): |
+ pyximport._test_files = [] |
+ tempdir = make_tempdir() |
+ sys.path.append(tempdir) |
+ filename = os.path.join(tempdir, "dummy.pyx") |
+ open(filename, "w").write("print 'Hello world from the Pyrex install hook'") |
+ import dummy |
+ reload(dummy) |
+ |
+ depend_filename = os.path.join(tempdir, "dummy.pyxdep") |
+ depend_file = open(depend_filename, "w") |
+ depend_file.write("*.txt\nfoo.bar") |
+ depend_file.close() |
+ |
+ build_filename = os.path.join(tempdir, "dummy.pyxbld") |
+ build_file = open(build_filename, "w") |
+ build_file.write(""" |
+from distutils.extension import Extension |
+def make_ext(name, filename): |
+ return Extension(name=name, sources=[filename]) |
+""") |
+ build_file.close() |
+ |
+ open(os.path.join(tempdir, "foo.bar"), "w").write(" ") |
+ open(os.path.join(tempdir, "1.txt"), "w").write(" ") |
+ open(os.path.join(tempdir, "abc.txt"), "w").write(" ") |
+ reload(dummy) |
+ assert len(pyximport._test_files)==1, pyximport._test_files |
+ reload(dummy) |
+ |
+ time.sleep(1) # sleep a second to get safer mtimes |
+ open(os.path.join(tempdir, "abc.txt"), "w").write(" ") |
+ print "Here goes the reolad" |
+ reload(dummy) |
+ assert len(pyximport._test_files) == 1, pyximport._test_files |
+ |
+ reload(dummy) |
+ assert len(pyximport._test_files) ==0, pyximport._test_files |
+ remove_tempdir(tempdir) |
+ |
+if __name__=="__main__": |
+ test() |
+ |