summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_gc.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_gc.py')
-rw-r--r--Lib/test/test_gc.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index 16b2242..65e74d4 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -766,6 +766,38 @@ class GCTests(unittest.TestCase):
gc.unfreeze()
self.assertEqual(gc.get_freeze_count(), 0)
+ def test_get_objects(self):
+ gc.collect()
+ l = []
+ l.append(l)
+ self.assertIn(l, gc.get_objects(generation=0))
+ self.assertNotIn(l, gc.get_objects(generation=1))
+ self.assertNotIn(l, gc.get_objects(generation=2))
+ gc.collect(generation=0)
+ self.assertNotIn(l, gc.get_objects(generation=0))
+ self.assertIn(l, gc.get_objects(generation=1))
+ self.assertNotIn(l, gc.get_objects(generation=2))
+ gc.collect(generation=1)
+ self.assertNotIn(l, gc.get_objects(generation=0))
+ self.assertNotIn(l, gc.get_objects(generation=1))
+ self.assertIn(l, gc.get_objects(generation=2))
+ gc.collect(generation=2)
+ self.assertNotIn(l, gc.get_objects(generation=0))
+ self.assertNotIn(l, gc.get_objects(generation=1))
+ self.assertIn(l, gc.get_objects(generation=2))
+ del l
+ gc.collect()
+
+ def test_get_objects_arguments(self):
+ gc.collect()
+ self.assertEqual(len(gc.get_objects()),
+ len(gc.get_objects(generation=None)))
+
+ self.assertRaises(ValueError, gc.get_objects, 1000)
+ self.assertRaises(ValueError, gc.get_objects, -1000)
+ self.assertRaises(TypeError, gc.get_objects, "1")
+ self.assertRaises(TypeError, gc.get_objects, 1.234)
+
class GCCallbackTests(unittest.TestCase):
def setUp(self):