Skip to content

Commit 1b87bfb

Browse files
committed
Update unit tests
1 parent e082fec commit 1b87bfb

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

tests/expressions/test_interpreter_coverage1.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,9 @@ def test_global_name_error():
608608
"""
609609
# 'x' is declared global but never defined in global_env => NameError
610610
tree = parser.parse(code)
611-
with pytest.raises(NameError, match="Global name 'x' is not defined"):
611+
with pytest.raises(
612+
SyntaxError, match="global declaration not allowed at module level"
613+
):
612614
interpreter.execute(tree)
613615

614616

@@ -1308,6 +1310,39 @@ def inner():
13081310
with pytest.raises(SyntaxError, match="name 'x' is nonlocal and global"):
13091311
interpreter.execute(tree)
13101312

1313+
# Test global declaration in nested function
1314+
code = """
1315+
x = 1
1316+
def outer():
1317+
x = 2
1318+
def inner():
1319+
global x
1320+
return x
1321+
return inner()
1322+
1323+
result = outer()
1324+
"""
1325+
tree = parser.parse(code)
1326+
interpreter.execute(tree)
1327+
assert interpreter.get_name_value("result") == 1
1328+
1329+
# Test global declaration
1330+
code = """
1331+
x = 1
1332+
def foo():
1333+
global x
1334+
x = 2
1335+
return x
1336+
1337+
result1 = x
1338+
foo()
1339+
result2 = x
1340+
"""
1341+
tree = parser.parse(code)
1342+
interpreter.execute(tree)
1343+
assert interpreter.get_name_value("result1") == 1
1344+
assert interpreter.get_name_value("result2") == 2
1345+
13111346

13121347
def test_visit_nonlocal():
13131348
parser = ExpressionsParser()

tests/expressions/test_interpreter_generator.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,10 @@ def subgen():
3333
return 'done'
3434
3535
def gen():
36-
print("script: GEN")
3736
output = yield from subgen()
38-
print("script: OUTPUT", output)
3937
yield output
4038
41-
print(gen)
4239
result = list(gen())
43-
print(result)
4440
"""
4541
parser = ExpressionsParser()
4642
interpreter = ExpressionsInterpreter()
@@ -111,7 +107,6 @@ def gen():
111107
return gen
112108
113109
g = make_gen()
114-
print(g)
115110
result1 = list(g())
116111
result2 = list(g())
117112
"""

tests/expressions/test_interpreter_stmt_with.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def test_with_statement_scope_isolation(self, parser, interpreter):
6767
with pytest.raises(NameError):
6868
interpreter.execute(tree)
6969

70-
assert "outer" in interpreter.local_env
70+
assert "outer" in interpreter.global_env
7171
assert "inner" not in interpreter.local_env
7272

7373
def test_with_statement_global_access(self, parser, interpreter):
@@ -82,7 +82,6 @@ def test_with_statement_global_access(self, parser, interpreter):
8282
interpreter.global_env["cm"] = cm
8383

8484
code = """
85-
global x
8685
x = 'global'
8786
with cm:
8887
global x
@@ -230,8 +229,8 @@ def test_with_statement_variable_lifetime(self, parser, interpreter):
230229
tree = parser.parse(code)
231230
interpreter.execute(tree)
232231

233-
assert "before" in interpreter.local_env
234-
assert "after" in interpreter.local_env
232+
assert "before" in interpreter.global_env
233+
assert "after" in interpreter.global_env
235234
assert "during" not in interpreter.local_env
236235
assert interpreter.get_name_value("before") == "modified"
237236

0 commit comments

Comments
 (0)