forked from Rust-related/RustPython
33 lines
874 B
Python
33 lines
874 B
Python
from testutils import assert_raises
|
|
|
|
assert '__builtins__' in globals()
|
|
# assert type(__builtins__).__name__ == 'module'
|
|
with assert_raises(AttributeError):
|
|
__builtins__.__builtins__
|
|
|
|
assert __builtins__.__name__ == "builtins"
|
|
import builtins
|
|
assert builtins.__name__ == "builtins"
|
|
|
|
__builtins__.x = 'new'
|
|
assert x == 'new' # noqa: F821
|
|
|
|
exec('assert "__builtins__" in globals()', dict())
|
|
exec('assert __builtins__ == 7', {'__builtins__': 7})
|
|
exec('assert not isinstance(__builtins__, dict)')
|
|
exec('assert isinstance(__builtins__, dict)', {})
|
|
|
|
namespace = {}
|
|
exec('', namespace)
|
|
assert namespace['__builtins__'] == __builtins__.__dict__
|
|
|
|
# with assert_raises(NameError):
|
|
# exec('print(__builtins__)', {'__builtins__': {}})
|
|
|
|
# __builtins__ is deletable but names are alive
|
|
del __builtins__
|
|
with assert_raises(NameError):
|
|
__builtins__ # noqa: F821
|
|
|
|
assert print
|