test AST base type garbage collection

This commit is contained in:
Benjamin Peterson 2012-07-08 11:13:36 -07:00
parent 68aecb5619
commit 9ed37433c4
1 changed files with 14 additions and 1 deletions

View File

@ -1,8 +1,10 @@
import os import os
import sys import sys
import unittest import unittest
from test import support
import ast import ast
import weakref
from test import support
def to_tuple(t): def to_tuple(t):
if t is None or isinstance(t, (str, int, complex)): if t is None or isinstance(t, (str, int, complex)):
@ -207,6 +209,17 @@ class AST_Tests(unittest.TestCase):
# "_ast.AST constructor takes 0 positional arguments" # "_ast.AST constructor takes 0 positional arguments"
ast.AST(2) ast.AST(2)
def test_AST_garbage_collection(self):
class X:
pass
a = ast.AST()
a.x = X()
a.x.a = a
ref = weakref.ref(a.x)
del a
support.gc_collect()
self.assertIsNone(ref())
def test_snippets(self): def test_snippets(self):
for input, output, kind in ((exec_tests, exec_results, "exec"), for input, output, kind in ((exec_tests, exec_results, "exec"),
(single_tests, single_results, "single"), (single_tests, single_results, "single"),