def test_garbage(self): """Test if reference cycles can be viewed.""" start_debug_garbage() try: body = self.get('/garbage', status=200) #self.assertTrue('0 reference cycles' in body, body) cycle = ['spam', 'eggs'] cycle.append(cycle) del cycle body = self.get('/garbage', status=200) #self.assertTrue('0 reference cycles' in body, body) body = self.get('/refresh', status=303) body = self.get('/garbage', status=200) #self.assertTrue('1 reference cycle' in body, body) self.assertTrue('/garbage/0' in body) body = self.get('/garbage/0', status=200) self.assertTrue('/garbage/graph/0' in body, body) self.assertTrue('/garbage/graph/0?reduce=' in body, body) body = self.get('/garbage/graph/0', status=200) body = self.get('/garbage/graph/0?reduce=on', status=200) finally: end_debug_garbage()
def setUp(self): start_debug_garbage() gc.set_debug(gc.DEBUG_SAVEALL)
from pympler.garbagegraph import start_debug_garbage from pympler import web class Leaf(object): pass class Branch(object): def __init__(self, root): self.root = root self.leaf = Leaf() class Root(object): def __init__(self, num_branches): self.branches = [Branch(self) for _ in range(num_branches)] start_debug_garbage() tree = Root(2) del tree web.start_profiler(debug=True)