Way too many places create modules temporarily that never set
__loader__ for this test to succeed without a major changes. It also
doesn't test the original issue of modules imported by Py_Initialize()
having __loader__ set (the rest of the test covers that).
diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py
index 162354b..b1a5894 100644
--- a/Lib/test/test_importlib/test_api.py
+++ b/Lib/test/test_importlib/test_api.py
@@ -182,12 +182,6 @@
         # Issue #17098: all modules should have __loader__ defined.
         for name, module in sys.modules.items():
             if isinstance(module, types.ModuleType):
-                # pyexpat/xml.parsers.expat have submodules that it creates
-                # by hand and do not set __loader__, which is acceptable.
-                if 'expat' in name:
-                    continue
-                self.assertTrue(hasattr(module, '__loader__'),
-                        '{!r} lacks a __loader__ attribute'.format(name))
                 if name in sys.builtin_module_names:
                     self.assertEqual(importlib.machinery.BuiltinImporter,
                                      module.__loader__)