bpo-40025: Require _generate_next_value_ to be defined before members(GH-19763)

require `_generate_next_value_` to be defined before members
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 47081cf..a2a3c56 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -1702,6 +1702,16 @@
         self.assertEqual(Color.blue.value, 2)
         self.assertEqual(Color.green.value, 3)
 
+    def test_auto_order(self):
+        with self.assertRaises(TypeError):
+            class Color(Enum):
+                red = auto()
+                green = auto()
+                blue = auto()
+                def _generate_next_value_(name, start, count, last):
+                    return name
+
+
     def test_duplicate_auto(self):
         class Dupes(Enum):
             first = primero = auto()