summaryrefslogtreecommitdiff
path: root/distutils2/tests
diff options
context:
space:
mode:
authorJulien Courteau <j_courteau@hotmail.com>2012-05-12 14:23:20 -0400
committerJulien Courteau <j_courteau@hotmail.com>2012-05-12 14:23:20 -0400
commit42eb0c19439494044dde68a7f75c28e746bc6b0d (patch)
treee34cb1797ee62497018f2605e25094713eda5353 /distutils2/tests
parent5d5463009a93746b987f941b5698cf18ff6ec4fa (diff)
parent6076dd84aaa4d4313be65a171331c91bd9412019 (diff)
downloaddisutils2-42eb0c19439494044dde68a7f75c28e746bc6b0d.tar.gz
merge #1364
Diffstat (limited to 'distutils2/tests')
-rw-r--r--distutils2/tests/test_database.py21
-rw-r--r--distutils2/tests/test_install.py22
2 files changed, 40 insertions, 3 deletions
diff --git a/distutils2/tests/test_database.py b/distutils2/tests/test_database.py
index 09db9ef..6975258 100644
--- a/distutils2/tests/test_database.py
+++ b/distutils2/tests/test_database.py
@@ -80,12 +80,14 @@ class CommonDistributionTests(FakeDistsMixin):
attributes are used in test methods. See source code for details.
"""
+ def _get_dist_path(self, distdir):
+ here = os.path.abspath(os.path.dirname(__file__))
+ return os.path.join(here, 'fake_dists', distdir)
+
def test_instantiation(self):
# check that useful attributes are here
name, version, distdir = self.sample_dist
- here = os.path.abspath(os.path.dirname(__file__))
- dist_path = os.path.join(here, 'fake_dists', distdir)
-
+ dist_path = self._get_dist_path(distdir)
dist = self.dist = self.cls(dist_path)
self.assertEqual(dist.path, dist_path)
self.assertEqual(dist.name, name)
@@ -101,6 +103,17 @@ class CommonDistributionTests(FakeDistsMixin):
self.assertIn(self.cls.__name__, repr(dist))
@requires_zlib
+ def test_str(self):
+ name, version, distdir = self.sample_dist
+ dist = self.cls(self._get_dist_path(distdir))
+ self.assertEqual(name, dist.name)
+ # Sanity test: dist.name is unicode,
+ # but str output contains no u prefix.
+ self.assertIsInstance(dist.name, unicode)
+ self.assertEqual(version, dist.version)
+ self.assertEqual(str(dist), self.expected_str_output)
+
+ @requires_zlib
def test_comparison(self):
# tests for __eq__ and __hash__
dist = self.cls(self.dirs[0])
@@ -128,6 +141,7 @@ class TestDistribution(CommonDistributionTests, unittest.TestCase):
cls = Distribution
sample_dist = 'choxie', '2.0.0.9', 'choxie-2.0.0.9.dist-info'
+ expected_str_output = 'choxie 2.0.0.9'
def setUp(self):
super(TestDistribution, self).setUp()
@@ -265,6 +279,7 @@ class TestEggInfoDistribution(CommonDistributionTests,
cls = EggInfoDistribution
sample_dist = 'bacon', '0.1', 'bacon-0.1.egg-info'
+ expected_str_output = 'bacon 0.1'
def setUp(self):
super(TestEggInfoDistribution, self).setUp()
diff --git a/distutils2/tests/test_install.py b/distutils2/tests/test_install.py
index cb1d499..f613b22 100644
--- a/distutils2/tests/test_install.py
+++ b/distutils2/tests/test_install.py
@@ -1,6 +1,8 @@
"""Tests for the distutils2.install module."""
import os
import logging
+import sys
+
from tempfile import mkstemp
from distutils2 import install
@@ -258,6 +260,26 @@ class TestInstall(LoggingCatcher, TempdirManager, unittest.TestCase):
for key in expect:
self.assertEqual(expect[key], dict1[key])
+ def test_install_custom_dir(self):
+ dest = self.mkdtemp()
+ src = self.mkdtemp()
+
+ project_dir, dist = self.create_dist(
+ name='Spamlib', version='0.1',
+ data_files={'spamd': '{scripts}/spamd'})
+
+ dist.name = MagicMock(return_value='Spamlib')
+ dist.version = MagicMock(return_value='0.1')
+ dist.unpack = MagicMock(return_value=project_dir)
+
+ self.write_file([project_dir, 'setup.cfg'],
+ ("[metadata]\n"
+ "name = mypackage\n"
+ "version = 0.1.0\n"))
+
+ install.install_from_infos(dest, install=[dist])
+ self.assertEqual(len(os.listdir(dest)), 1)
+
def test_install_dists_rollback(self):
# if one of the distribution installation fails, call uninstall on all
# installed distributions.