summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-02-23 12:41:29 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-02-23 12:41:29 (GMT)
commit11b34d07d81969590385abfea46b90feb2a9accb (patch)
tree5cf666e84d9aa8ee3f9ffe6c0edd97626868505d
parent89d4f0d7c5a418cbb12312c1f2ccd84bd34e1ab2 (diff)
downloadcpython-11b34d07d81969590385abfea46b90feb2a9accb.zip
cpython-11b34d07d81969590385abfea46b90feb2a9accb.tar.gz
cpython-11b34d07d81969590385abfea46b90feb2a9accb.tar.bz2
more test coverage
-rw-r--r--Lib/distutils/tests/test_bdist_dumb.py80
-rw-r--r--Lib/distutils/tests/test_version.py70
2 files changed, 150 insertions, 0 deletions
diff --git a/Lib/distutils/tests/test_bdist_dumb.py b/Lib/distutils/tests/test_bdist_dumb.py
new file mode 100644
index 0000000..2863b62
--- /dev/null
+++ b/Lib/distutils/tests/test_bdist_dumb.py
@@ -0,0 +1,80 @@
+"""Tests for distutils.command.bdist_dumb."""
+
+import unittest
+import sys
+import os
+
+from distutils.core import Distribution
+from distutils.command.bdist_dumb import bdist_dumb
+from distutils.tests import support
+
+SETUP_PY = """\
+from distutils.core import setup
+import foo
+
+setup(name='foo', version='0.1', py_modules=['foo'],
+ url='xxx', author='xxx', author_email='xxx')
+
+"""
+
+class BuildDumbTestCase(support.TempdirManager,
+ support.LoggingSilencer,
+ unittest.TestCase):
+
+ def setUp(self):
+ support.TempdirManager.setUp(self)
+ support.LoggingSilencer.setUp(self)
+ self.old_location = os.getcwd()
+ self.old_sys_argv = sys.argv[:]
+
+ def tearDown(self):
+ os.chdir(self.old_location)
+ sys.argv = self.old_sys_argv[:]
+ support.LoggingSilencer.tearDown(self)
+ support.TempdirManager.tearDown(self)
+
+ def test_simple_built(self):
+
+ # let's create a simple package
+ tmp_dir = self.mkdtemp()
+ pkg_dir = os.path.join(tmp_dir, 'foo')
+ os.mkdir(pkg_dir)
+ self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
+ self.write_file((pkg_dir, 'foo.py'), '#')
+ self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
+ self.write_file((pkg_dir, 'README'), '')
+
+ dist = Distribution({'name': 'foo', 'version': '0.1',
+ 'py_modules': ['foo'],
+ 'url': 'xxx', 'author': 'xxx',
+ 'author_email': 'xxx'})
+ dist.script_name = 'setup.py'
+ os.chdir(pkg_dir)
+
+ sys.argv = ['setup.py']
+ cmd = bdist_dumb(dist)
+
+ # so the output is the same no matter
+ # what is the platform
+ cmd.format = 'zip'
+
+ cmd.ensure_finalized()
+ cmd.run()
+
+ # see what we have
+ dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
+ base = "%s.%s" % (dist.get_fullname(), cmd.plat_name)
+ if os.name == 'os2':
+ base = base.replace(':', '-')
+
+ wanted = ['%s.zip' % base]
+ self.assertEquals(dist_created, wanted)
+
+ # now let's check what we have in the zip file
+ # XXX to be done
+
+def test_suite():
+ return unittest.makeSuite(BuildDumbTestCase)
+
+if __name__ == '__main__':
+ test_support.run_unittest(test_suite())
diff --git a/Lib/distutils/tests/test_version.py b/Lib/distutils/tests/test_version.py
new file mode 100644
index 0000000..747db94
--- /dev/null
+++ b/Lib/distutils/tests/test_version.py
@@ -0,0 +1,70 @@
+"""Tests for distutils.version."""
+import unittest
+from distutils.version import LooseVersion
+from distutils.version import StrictVersion
+
+class VersionTestCase(unittest.TestCase):
+
+ def test_prerelease(self):
+ version = StrictVersion('1.2.3a1')
+ self.assertEquals(version.version, (1, 2, 3))
+ self.assertEquals(version.prerelease, ('a', 1))
+ self.assertEquals(str(version), '1.2.3a1')
+
+ version = StrictVersion('1.2.0')
+ self.assertEquals(str(version), '1.2')
+
+ def test_cmp_strict(self):
+ versions = (('1.5.1', '1.5.2b2', -1),
+ ('161', '3.10a', ValueError),
+ ('8.02', '8.02', 0),
+ ('3.4j', '1996.07.12', ValueError),
+ ('3.2.pl0', '3.1.1.6', ValueError),
+ ('2g6', '11g', ValueError),
+ ('0.9', '2.2', -1),
+ ('1.2.1', '1.2', 1),
+ ('1.1', '1.2.2', -1),
+ ('1.2', '1.1', 1),
+ ('1.2.1', '1.2.2', -1),
+ ('1.2.2', '1.2', 1),
+ ('1.2', '1.2.2', -1),
+ ('0.4.0', '0.4', 0),
+ ('1.13++', '5.5.kw', ValueError))
+
+ for v1, v2, wanted in versions:
+ try:
+ res = StrictVersion(v1).__cmp__(StrictVersion(v2))
+ except ValueError:
+ if wanted is ValueError:
+ continue
+ else:
+ raise AssertionError(("cmp(%s, %s) "
+ "shouldn't raise ValueError")
+ % (v1, v2))
+ self.assertEquals(res, wanted,
+ 'cmp(%s, %s) should be %s, got %s' %
+ (v1, v2, wanted, res))
+
+
+ def test_cmp(self):
+ versions = (('1.5.1', '1.5.2b2', -1),
+ ('161', '3.10a', 1),
+ ('8.02', '8.02', 0),
+ ('3.4j', '1996.07.12', -1),
+ ('3.2.pl0', '3.1.1.6', 1),
+ ('2g6', '11g', -1),
+ ('0.960923', '2.2beta29', -1),
+ ('1.13++', '5.5.kw', -1))
+
+
+ for v1, v2, wanted in versions:
+ res = LooseVersion(v1).__cmp__(LooseVersion(v2))
+ self.assertEquals(res, wanted,
+ 'cmp(%s, %s) should be %s, got %s' %
+ (v1, v2, wanted, res))
+
+def test_suite():
+ return unittest.makeSuite(VersionTestCase)
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")