Add tests for unbound locals (Nick Mathewson)
10. recursion
11. unoptimized namespaces
12. lambdas
+13. UnboundLocal
def str(self):
return str(self)
-t = test()
+t = Test()
verify(t.test() == "var")
verify(t.method_and_var() == "method")
verify(t.actual_global() == "global")
g = f8(1, 2, 3)
h = g(2, 4, 6)
verify(h() == 18)
+
+print "13. UnboundLocal"
+
+def errorInOuter():
+ print y
+ def inner():
+ return y
+ y = 1
+
+def errorInInner():
+ def inner():
+ return y
+ inner()
+ y = 1
+
+try:
+ errorInOuter()
+except UnboundLocalError:
+ pass
+else:
+ raise TestFailed
+
+try:
+ errorInInner()
+except UnboundLocalError:
+ pass
+else:
+ raise TestFailed
+