bpo-31315: Fix an assertion failure in imp.create_dynamic(), when spec.name is not a string. (#3257)

diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
index 3bfcb09..51bec50 100644
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -313,6 +313,17 @@
         with self.assertRaisesRegex(ValueError, 'embedded null'):
             imp.load_source(__name__, __file__ + "\0")
 
+    @support.cpython_only
+    def test_issue31315(self):
+        # There shouldn't be an assertion failure in imp.create_dynamic(),
+        # when spec.name is not a string.
+        create_dynamic = support.get_attribute(imp, 'create_dynamic')
+        class BadSpec:
+            name = None
+            origin = 'foo'
+        with self.assertRaises(TypeError):
+            create_dynamic(BadSpec())
+
 
 class ReloadTests(unittest.TestCase):