Add tests for recent changes:

- global stmt in class does not affect free vars in methods
- locals() works with free and cell vars
This commit is contained in:
Jeremy Hylton 2001-03-21 16:44:39 +00:00
parent 220ae7c0bf
commit 5c7a2513ec
2 changed files with 32 additions and 0 deletions

View File

@ -15,3 +15,5 @@ test_scope
14. complex definitions
15. scope of global statements
16. check leaks
17. class and global
18. verify that locals() works

View File

@ -405,3 +405,33 @@ def f2():
f1()
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})