Fix importlib.machinery.FrozenImporter.load_module() to set __package__
properly. Discovered by also moving the loader tests over to
importlib.test.abc.LoaderTests.
diff --git a/Lib/importlib/test/frozen/test_loader.py b/Lib/importlib/test/frozen/test_loader.py
index 95854f2..63a9742 100644
--- a/Lib/importlib/test/frozen/test_loader.py
+++ b/Lib/importlib/test/frozen/test_loader.py
@@ -1,26 +1,59 @@
 from importlib import machinery
-from ..builtin import test_loader
+from .. import abc
+from .. import support
 
 
-class LoaderTests(test_loader.LoaderTests):
+class LoaderTests(abc.LoaderTests):
 
-    name = '__phello__'
-    load_module = staticmethod(lambda name:
-                                machinery.FrozenImporter.load_module(name))
-    verification = {'__name__': '__phello__', '__file__': '<frozen>',
-                    '__package__': None, '__path__': ['__phello__']}
+    def test_module(self):
+        with support.uncache('__hello__'):
+            module = machinery.FrozenImporter.load_module('__hello__')
+            check = {'__name__': '__hello__', '__file__': '<frozen>',
+                        '__package__': None}
+            for attr, value in check.items():
+                self.assertEqual(getattr(module, attr), value)
 
+    def test_package(self):
+        with support.uncache('__phello__'):
+            module = machinery.FrozenImporter.load_module('__phello__')
+            check = {'__name__': '__phello__', '__file__': '<frozen>',
+                     '__package__': '__phello__', '__path__': ['__phello__']}
+            for attr, value in check.items():
+                attr_value = getattr(module, attr)
+                self.assertEqual(attr_value, value,
+                                 "for __phello__.%s, %r != %r" %
+                                 (attr, attr_value, value))
 
-class SubmoduleLoaderTests(LoaderTests):
+    def test_lacking_parent(self):
+        with support.uncache('__phello__', '__phello__.spam'):
+            module = machinery.FrozenImporter.load_module('__phello__.spam')
+            check = {'__name__': '__phello__.spam', '__file__': '<frozen>',
+                     '__package__': '__phello__'}
+            for attr, value in check.items():
+                attr_value = getattr(module, attr)
+                self.assertEqual(attr_value, value,
+                                 "for __phello__.spam.%s, %r != %r" %
+                                 (attr, attr_value, value))
 
-    name = '__phello__.spam'
-    verification = {'__name__': '__phello__.spam', '__file__': '<frozen>',
-                    '__package__': None}
+    def test_module_reuse(self):
+        with support.uncache('__hello__'):
+            module1 = machinery.FrozenImporter.load_module('__hello__')
+            module2 = machinery.FrozenImporter.load_module('__hello__')
+            self.assert_(module1 is module2)
+
+    def test_state_after_failure(self):
+        # No way to trigger an error in a frozen module.
+        pass
+
+    def test_unloadable(self):
+        assert machinery.FrozenImporter.find_module('_not_real') is None
+        self.assertRaises(ImportError, machinery.FrozenImporter.load_module,
+                            '_not_real')
 
 
 def test_main():
     from test.support import run_unittest
-    run_unittest(LoaderTests, SubmoduleLoaderTests)
+    run_unittest(LoaderTests)
 
 
 if __name__ == '__main__':