summaryrefslogtreecommitdiff
path: root/Lib/distutils/tests/test_check.py
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-04-11 15:00:43 +0000
committerTarek Ziadé <ziade.tarek@gmail.com>2009-04-11 15:00:43 +0000
commitf396ecf3b841fa8b0e66ca13b83c0d23f62c0bcc (patch)
tree60d53d22f0635c730b69da4d1050f8c32ec09852 /Lib/distutils/tests/test_check.py
parent99a0c674681b60713ecf602022e75b2d7e763492 (diff)
downloadcpython-git-f396ecf3b841fa8b0e66ca13b83c0d23f62c0bcc.tar.gz
Merged revisions 71473 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r71473 | tarek.ziade | 2009-04-11 16:55:07 +0200 (Sat, 11 Apr 2009) | 1 line #5732: added the check command into Distutils ........
Diffstat (limited to 'Lib/distutils/tests/test_check.py')
-rw-r--r--Lib/distutils/tests/test_check.py92
1 files changed, 92 insertions, 0 deletions
diff --git a/Lib/distutils/tests/test_check.py b/Lib/distutils/tests/test_check.py
new file mode 100644
index 0000000000..443fa35baf
--- /dev/null
+++ b/Lib/distutils/tests/test_check.py
@@ -0,0 +1,92 @@
+"""Tests for distutils.command.check."""
+import unittest
+
+from distutils.command.check import check, HAS_DOCUTILS
+from distutils.tests import support
+from distutils.errors import DistutilsSetupError
+
+class CheckTestCase(support.LoggingSilencer,
+ support.TempdirManager,
+ unittest.TestCase):
+
+ def _run(self, metadata=None, **options):
+ if metadata is None:
+ metadata = {}
+ pkg_info, dist = self.create_dist(**metadata)
+ cmd = check(dist)
+ cmd.initialize_options()
+ for name, value in options.items():
+ setattr(cmd, name, value)
+ cmd.ensure_finalized()
+ cmd.run()
+ return cmd
+
+ def test_check_metadata(self):
+ # let's run the command with no metadata at all
+ # by default, check is checking the metadata
+ # should have some warnings
+ cmd = self._run()
+ self.assertEquals(cmd._warnings, 2)
+
+ # now let's add the required fields
+ # and run it again, to make sure we don't get
+ # any warning anymore
+ metadata = {'url': 'xxx', 'author': 'xxx',
+ 'author_email': 'xxx',
+ 'name': 'xxx', 'version': 'xxx'}
+ cmd = self._run(metadata)
+ self.assertEquals(cmd._warnings, 0)
+
+ # now with the strict mode, we should
+ # get an error if there are missing metadata
+ self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1})
+
+ # and of course, no error when all metadata are present
+ cmd = self._run(metadata, strict=1)
+ self.assertEquals(cmd._warnings, 0)
+
+ def test_check_document(self):
+ if not HAS_DOCUTILS: # won't test without docutils
+ return
+ pkg_info, dist = self.create_dist()
+ cmd = check(dist)
+
+ # let's see if it detects broken rest
+ broken_rest = 'title\n===\n\ntest'
+ msgs = cmd._check_rst_data(broken_rest)
+ self.assertEquals(len(msgs), 1)
+
+ # and non-broken rest
+ rest = 'title\n=====\n\ntest'
+ msgs = cmd._check_rst_data(rest)
+ self.assertEquals(len(msgs), 0)
+
+ def test_check_restructuredtext(self):
+ if not HAS_DOCUTILS: # won't test without docutils
+ return
+ # let's see if it detects broken rest in long_description
+ broken_rest = 'title\n===\n\ntest'
+ pkg_info, dist = self.create_dist(long_description=broken_rest)
+ cmd = check(dist)
+ cmd.check_restructuredtext()
+ self.assertEquals(cmd._warnings, 1)
+
+ # let's see if we have an error with strict=1
+ cmd = check(dist)
+ cmd.initialize_options()
+ cmd.strict = 1
+ cmd.ensure_finalized()
+ self.assertRaises(DistutilsSetupError, cmd.run)
+
+ # and non-broken rest
+ rest = 'title\n=====\n\ntest'
+ pkg_info, dist = self.create_dist(long_description=rest)
+ cmd = check(dist)
+ cmd.check_restructuredtext()
+ self.assertEquals(cmd._warnings, 0)
+
+def test_suite():
+ return unittest.makeSuite(CheckTestCase)
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")