Modernize modulefinder module and tests a bit.

The tests don’t use an internal distutils function anymore, and use
regular assertEqual with sorted lists instead of a convoluted manual
diff.
diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py
index a184217..c5fc320 100644
--- a/Lib/test/test_modulefinder.py
+++ b/Lib/test/test_modulefinder.py
@@ -1,7 +1,7 @@
-import __future__
 import os
+import errno
+import shutil
 import unittest
-import distutils.dir_util
 import tempfile
 
 from test import support
@@ -9,7 +9,7 @@
 import modulefinder
 
 TEST_DIR = tempfile.mkdtemp()
-TEST_PATH = [TEST_DIR, os.path.dirname(__future__.__file__)]
+TEST_PATH = [TEST_DIR, os.path.dirname(tempfile.__file__)]
 
 # Each test description is a list of 5 items:
 #
@@ -196,12 +196,17 @@
                                 from . import bar
 """]
 
+
 def open_file(path):
-    ##print "#", os.path.abspath(path)
     dirname = os.path.dirname(path)
-    distutils.dir_util.mkpath(dirname)
+    try:
+        os.makedirs(dirname)
+    except OSError as e:
+        if e.errno != errno.EEXIST:
+            raise
     return open(path, "w")
 
+
 def create_package(source):
     ofi = None
     try:
@@ -216,6 +221,7 @@
         if ofi:
             ofi.close()
 
+
 class ModuleFinderTest(unittest.TestCase):
     def _do_test(self, info, report=False):
         import_this, modules, missing, maybe_missing, source = info
@@ -234,19 +240,17 @@
 ##                    import traceback; traceback.print_exc()
 ##                sys.path = opath
 ##                return
-            modules = set(modules)
-            found = set(mf.modules.keys())
-            more = list(found - modules)
-            less = list(modules - found)
+            modules = sorted(set(modules))
+            found = sorted(mf.modules)
             # check if we found what we expected, not more, not less
-            self.assertEqual((more, less), ([], []))
+            self.assertEqual(found, modules)
 
             # check for missing and maybe missing modules
             bad, maybe = mf.any_missing_maybe()
             self.assertEqual(bad, missing)
             self.assertEqual(maybe, maybe_missing)
         finally:
-            distutils.dir_util.remove_tree(TEST_DIR)
+            shutil.rmtree(TEST_DIR)
 
     def test_package(self):
         self._do_test(package_test)
@@ -254,25 +258,23 @@
     def test_maybe(self):
         self._do_test(maybe_test)
 
-    if getattr(__future__, "absolute_import", None):
+    def test_maybe_new(self):
+        self._do_test(maybe_test_new)
 
-        def test_maybe_new(self):
-            self._do_test(maybe_test_new)
+    def test_absolute_imports(self):
+        self._do_test(absolute_import_test)
 
-        def test_absolute_imports(self):
-            self._do_test(absolute_import_test)
+    def test_relative_imports(self):
+        self._do_test(relative_import_test)
 
-        def test_relative_imports(self):
-            self._do_test(relative_import_test)
+    def test_relative_imports_2(self):
+        self._do_test(relative_import_test_2)
 
-        def test_relative_imports_2(self):
-            self._do_test(relative_import_test_2)
+    def test_relative_imports_3(self):
+        self._do_test(relative_import_test_3)
 
-        def test_relative_imports_3(self):
-            self._do_test(relative_import_test_3)
 
 def test_main():
-    distutils.log.set_threshold(distutils.log.WARN)
     support.run_unittest(ModuleFinderTest)
 
 if __name__ == "__main__":