Bug 8563 - compileall.compile_file() creates empty __pycache__ directories in
data directories where there is no source.

Fix by: Arfrever Frehtes Taifersar Arahesis (Arfrever)
Test by: Barry
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
index fe26026..4ad0061 100644
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -75,6 +75,18 @@
         os.unlink(self.bc_path)
         os.unlink(self.bc_path2)
 
+    def test_no_pycache_in_non_package(self):
+        # Bug 8563 reported that __pycache__ directories got created by
+        # compile_file() for non-.py files.
+        data_dir = os.path.join(self.directory, 'data')
+        data_file = os.path.join(data_dir, 'file')
+        os.mkdir(data_dir)
+        # touch data/file
+        with open(data_file, 'w'):
+            pass
+        compileall.compile_file(data_file)
+        self.assertFalse(os.path.exists(os.path.join(data_dir, '__pycache__')))
+
 
 class EncodingTest(unittest.TestCase):
     """Issue 6716: compileall should escape source code when printing errors
@@ -98,6 +110,7 @@
         finally:
             sys.stdout = orig_stdout
 
+
 class CommandLineTests(unittest.TestCase):
     """Test some aspects of compileall's CLI."""