Kaydet (Commit) 5c7a2513 authored tarafından Jeremy Hylton's avatar Jeremy Hylton

Add tests for recent changes:

- global stmt in class does not affect free vars in methods
- locals() works with free and cell vars
üst 220ae7c0
...@@ -15,3 +15,5 @@ test_scope ...@@ -15,3 +15,5 @@ test_scope
14. complex definitions 14. complex definitions
15. scope of global statements 15. scope of global statements
16. check leaks 16. check leaks
17. class and global
18. verify that locals() works
...@@ -405,3 +405,33 @@ for i in range(100): ...@@ -405,3 +405,33 @@ for i in range(100):
f1() f1()
verify(Foo.count == 0) verify(Foo.count == 0)
print "17. class and global"
def test(x):
class Foo:
global x
def __call__(self, y):
return x + y
return Foo()
x = 0
verify(test(6)(2) == 8)
x = -1
verify(test(3)(2) == 5)
print "18. verify that locals() works"
def f(x):
def g(y):
def h(z):
return y + z
w = x + y
y += 3
return locals()
return g
d = f(2)(4)
verify(d.has_key('h'))
del d['h']
verify(d == {'x': 2, 'y': 7, 'w': 6})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment