1946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca# reload seems to work for Python 2.3 but not 2.2.
2946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaimport time, os, sys
3946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaimport test_pyximport
4946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
5946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca# debugging the 2.2 problem
6946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaif 1:
7946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    from distutils import sysconfig
8946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    try:
9946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca        sysconfig.set_python_build()
10946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    except AttributeError:
11946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca        pass
12946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    import pyxbuild
13946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    print pyxbuild.distutils.sysconfig == sysconfig
14946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
15946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecadef test():
16946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    tempdir = test_pyximport.make_tempdir()
17946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    sys.path.append(tempdir)
18946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    hello_file = os.path.join(tempdir, "hello.pyx")
19946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    open(hello_file, "w").write("x = 1; print x; before = 'before'\n")
20946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    import hello
21946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca        assert hello.x == 1
22946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
23946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    time.sleep(1) # sleep to make sure that new "hello.pyx" has later
24946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca              # timestamp than object file.
25946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
26946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    open(hello_file, "w").write("x = 2; print x; after = 'after'\n")
27946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    reload(hello)
28946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    assert hello.x == 2, "Reload should work on Python 2.3 but not 2.2"
29946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    test_pyximport.remove_tempdir(tempdir)
30946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
31c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonsecaif __name__=="__main__":
32c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca    test()
33946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
34946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca