[Python-checkins] distutils2: raise if the distribution is not found. also disable cache for testing

tarek.ziade python-checkins at python.org
Sun Jan 30 10:43:58 CET 2011


tarek.ziade pushed f31564d7ed76 to distutils2:

http://hg.python.org/distutils2/rev/f31564d7ed76
changeset:   949:f31564d7ed76
user:        Gael Pasgrimaud <gael at gawel.org>
date:        Sat Jan 29 18:02:19 2011 +0100
summary:
  raise if the distribution is not found. also disable cache for testing

files:
  distutils2/install.py
  distutils2/tests/test_uninstall.py

diff --git a/distutils2/install.py b/distutils2/install.py
--- a/distutils2/install.py
+++ b/distutils2/install.py
@@ -9,12 +9,12 @@
 
 from distutils2 import logger
 from distutils2._backport.pkgutil import get_distributions
-<<<<<<< local
 from distutils2._backport.pkgutil import get_distribution
 from distutils2._backport.sysconfig import get_config_var
 from distutils2.depgraph import generate_graph
 from distutils2.index import wrapper
 from distutils2.index.errors import ProjectNotFound, ReleaseNotFound
+from distutils2.errors import DistutilsError
 from distutils2.version import get_version_predicate
 
 """Provides installations scripts.
@@ -319,6 +319,8 @@
     """Removes a single project from the installation"""
     tmp = tempfile.mkdtemp(prefix=project_name+'-uninstall')
     dist = get_distribution(project_name, paths=paths)
+    if dist is None:
+        raise DistutilsError('Distribution %s not found' % project_name)
     files = dist.get_installed_files(local=True)
     rmdirs = []
     rmfiles = []
diff --git a/distutils2/tests/test_uninstall.py b/distutils2/tests/test_uninstall.py
--- a/distutils2/tests/test_uninstall.py
+++ b/distutils2/tests/test_uninstall.py
@@ -2,7 +2,9 @@
 import os
 import sys
 from StringIO import StringIO
+from distutils2._backport.pkgutil import disable_cache, enable_cache
 from distutils2.tests import unittest, support, run_unittest
+from distutils2.errors import DistutilsError
 from distutils2.install import remove
 
 SETUP_CFG = """
@@ -25,7 +27,9 @@
         self.addCleanup(setattr, sys, 'stdout', sys.stdout)
         self.addCleanup(setattr, sys, 'stderr', sys.stderr)
         self.addCleanup(os.chdir, os.getcwd())
+        self.addCleanup(enable_cache)
         self.root_dir = self.mkdtemp()
+        disable_cache()
 
     def run_setup(self, *args):
         # run setup with args
@@ -68,6 +72,9 @@
         install_lib = self.get_path(dist, 'purelib')
         return dist, install_lib
 
+    def test_uninstall_unknow_distribution(self):
+        self.assertRaises(DistutilsError, remove, 'foo', paths=[self.root_dir])
+
     def test_uninstall(self):
         dist, install_lib = self.install_dist()
         self.assertIsFile(install_lib, 'foo', 'sub', '__init__.py')

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list