parent
c95504e738
commit
39eac1be28
|
@ -11,9 +11,25 @@ if sys.version_info >= (3, 0):
|
||||||
obj = obj.encode(encoding)
|
obj = obj.encode(encoding)
|
||||||
return str(obj, encoding)
|
return str(obj, encoding)
|
||||||
|
|
||||||
|
def execfile(fn, globs=None, locs=None):
|
||||||
|
if globs is None:
|
||||||
|
back = sys._getframe(1)
|
||||||
|
globs = back.f_globals
|
||||||
|
locs = back.f_locals
|
||||||
|
del back
|
||||||
|
elif locs is None:
|
||||||
|
locs = globs
|
||||||
|
fp = open(fn, "rb")
|
||||||
|
try:
|
||||||
|
source = fp.read()
|
||||||
|
finally:
|
||||||
|
fp.close()
|
||||||
|
exec_(source, globs, locs)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
_totext = unicode
|
_totext = unicode
|
||||||
_basestring = basestring
|
_basestring = basestring
|
||||||
|
execfile = execfile
|
||||||
|
|
||||||
import __builtin__ as builtins
|
import __builtin__ as builtins
|
||||||
def print_(*args, **kwargs):
|
def print_(*args, **kwargs):
|
||||||
|
|
|
@ -84,6 +84,18 @@ def test_print_simple():
|
||||||
s = f.getvalue()
|
s = f.getvalue()
|
||||||
assert s == "xyzabc"
|
assert s == "xyzabc"
|
||||||
|
|
||||||
|
def test_execfile(tmpdir):
|
||||||
|
test_file = tmpdir.join("test.py")
|
||||||
|
test_file.write("x = y")
|
||||||
|
ns = {"y" : 42}
|
||||||
|
py.builtin.execfile(str(test_file), ns)
|
||||||
|
assert ns["x"] == 42
|
||||||
|
class A:
|
||||||
|
y = 3
|
||||||
|
x = 4
|
||||||
|
py.builtin.execfile(str(test_file))
|
||||||
|
assert A.x == 3
|
||||||
|
|
||||||
def test_totext():
|
def test_totext():
|
||||||
py.builtin._totext("hello", "UTF-8")
|
py.builtin._totext("hello", "UTF-8")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue