MCPcopy Index your code
hub / github.com/RustPython/RustPython / test___builtins__

Method test___builtins__

Lib/test/test_funcattrs.py:103–137  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

101 (AttributeError, TypeError))
102
103 def test___builtins__(self):
104 if __name__ == "__main__":
105 builtins_dict = __builtins__.__dict__
106 else:
107 builtins_dict = __builtins__
108
109 self.assertIs(self.b.__builtins__, builtins_dict)
110 self.cannot_set_attr(self.b, '__builtins__', 2,
111 (AttributeError, TypeError))
112
113 # bpo-42990: If globals is specified and has no "__builtins__" key,
114 # a function inherits the current builtins namespace.
115 def func(s): return len(s)
116 ns = {}
117 func2 = type(func)(func.__code__, ns)
118 self.assertIs(func2.__globals__, ns)
119 self.assertIs(func2.__builtins__, builtins_dict)
120
121 # Make sure that the function actually works.
122 self.assertEqual(func2("abc"), 3)
123 self.assertEqual(ns, {})
124
125 # Define functions using exec() with different builtins,
126 # and test inheritance when globals has no "__builtins__" key
127 code = textwrap.dedent("""
128 def func3(s): pass
129 func4 = type(func3)(func3.__code__, {})
130 """)
131 safe_builtins = {'None': None}
132 ns = {'type': type, '__builtins__': safe_builtins}
133 exec(code, ns)
134 self.assertIs(ns['func3'].__builtins__, safe_builtins)
135 self.assertIs(ns['func4'].__builtins__, safe_builtins)
136 self.assertIs(ns['func3'].__globals__['__builtins__'], safe_builtins)
137 self.assertNotIn('__builtins__', ns['func4'].__globals__)
138
139 def test___closure__(self):
140 a = 12

Callers

nothing calls this directly

Calls 7

cannot_set_attrMethod · 0.80
dedentMethod · 0.80
assertNotInMethod · 0.80
func2Function · 0.70
execFunction · 0.50
assertIsMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected