bpo-42266: Handle monkey-patching descriptors in LOAD_ATTR cache (GH-23157)

diff --git a/Lib/test/test_opcache.py b/Lib/test/test_opcache.py
new file mode 100644
index 0000000..61f337d
--- /dev/null
+++ b/Lib/test/test_opcache.py
@@ -0,0 +1,23 @@
+import unittest
+
+class TestLoadAttrCache(unittest.TestCase):
+    def test_descriptor_added_after_optimization(self):
+        class Descriptor:
+            pass
+
+        class C:
+            def __init__(self):
+                self.x = 1
+            x = Descriptor()
+
+        def f(o):
+            return o.x
+
+        o = C()
+        for i in range(1025):
+            assert f(o) == 1
+
+        Descriptor.__get__ = lambda self, instance, value: 2
+        Descriptor.__set__ = lambda *args: None
+
+        self.assertEqual(f(o), 2)