summaryrefslogtreecommitdiff
path: root/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
commit416e5b55de1ffbdb2ced47b9655e3f8facdc299d (patch)
tree85ef44666dd26812602ee61959eeb7dca6df856c /tests/test_check.py
parent8723e53f8dcb017b1c6e0d84ced060fdcb336cb2 (diff)
downloadpython-setuptools-git-416e5b55de1ffbdb2ced47b9655e3f8facdc299d.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 'tests/test_check.py')
-rw-r--r--tests/test_check.py92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/test_check.py b/tests/test_check.py
new file mode 100644
index 00000000..443fa35b
--- /dev/null
+++ b/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")