bpo-39322: Add gc.is_finalized to check if an object has been finalised by the gc (GH-17989)

diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index c0d4a75..18f8d10 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -586,6 +586,24 @@
         self.assertFalse(gc.is_tracked(UserFloatSlots()))
         self.assertFalse(gc.is_tracked(UserIntSlots()))
 
+    def test_is_finalized(self):
+        # Objects not tracked by the always gc return false
+        self.assertFalse(gc.is_finalized(3))
+
+        storage = []
+        class Lazarus:
+            def __del__(self):
+                storage.append(self)
+
+        lazarus = Lazarus()
+        self.assertFalse(gc.is_finalized(lazarus))
+
+        del lazarus
+        gc.collect()
+
+        lazarus = storage.pop()
+        self.assertTrue(gc.is_finalized(lazarus))
+
     def test_bug1055820b(self):
         # Corresponds to temp2b.py in the bug report.