summaryrefslogtreecommitdiff
path: root/pyximport/test/test_reload.py
blob: 0ba5ba13f3e2f1a3f61513fa76afd233d2d56720 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import absolute_import, print_function

import time, os, sys
from . import test_pyximport


if 1:
    from distutils import sysconfig
    try:
        sysconfig.set_python_build()
    except AttributeError:
        pass
    import pyxbuild
    print(pyxbuild.distutils.sysconfig == sysconfig)


def test():
    tempdir = test_pyximport.make_tempdir()
    sys.path.append(tempdir)
    hello_file = os.path.join(tempdir, "hello.pyx")
    with open(hello_file, "w") as fid:
        fid.write("x = 1; print x; before = 'before'\n")
    import hello
    assert hello.x == 1

    time.sleep(1)  # sleep to make sure that new "hello.pyx" has later
                   # timestamp than object file.

    with open(hello_file, "w") as fid:
        fid.write("x = 2; print x; after = 'after'\n")
    reload(hello)
    assert hello.x == 2, "Reload should work on Python 2.3 but not 2.2"
    test_pyximport.remove_tempdir(tempdir)


if __name__=="__main__":
    test()