test_check.py (2759B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_check.py 2 import unittest 3 from distutils.command.check import check, HAS_DOCUTILS 4 from distutils.tests import support 5 from distutils.errors import DistutilsSetupError 6 7 class CheckTestCase(support.LoggingSilencer, support.TempdirManager, unittest.TestCase): 8 9 def _run(self, metadata = None, **options): 10 if metadata is None: 11 metadata = {} 12 pkg_info, dist = self.create_dist(**metadata) 13 cmd = check(dist) 14 cmd.initialize_options() 15 for name, value in options.items(): 16 setattr(cmd, name, value) 17 18 cmd.ensure_finalized() 19 cmd.run() 20 return cmd 21 22 def test_check_metadata(self): 23 cmd = self._run() 24 self.assertEqual(cmd._warnings, 2) 25 metadata = {'url': 'xxx', 26 'author': 'xxx', 27 'author_email': 'xxx', 28 'name': 'xxx', 29 'version': 'xxx'} 30 cmd = self._run(metadata) 31 self.assertEqual(cmd._warnings, 0) 32 self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1}) 33 cmd = self._run(metadata, strict=1) 34 self.assertEqual(cmd._warnings, 0) 35 36 def test_check_document(self): 37 if not HAS_DOCUTILS: 38 return 39 pkg_info, dist = self.create_dist() 40 cmd = check(dist) 41 broken_rest = 'title\n===\n\ntest' 42 msgs = cmd._check_rst_data(broken_rest) 43 self.assertEqual(len(msgs), 1) 44 rest = 'title\n=====\n\ntest' 45 msgs = cmd._check_rst_data(rest) 46 self.assertEqual(len(msgs), 0) 47 48 def test_check_restructuredtext(self): 49 if not HAS_DOCUTILS: 50 return 51 broken_rest = 'title\n===\n\ntest' 52 pkg_info, dist = self.create_dist(long_description=broken_rest) 53 cmd = check(dist) 54 cmd.check_restructuredtext() 55 self.assertEqual(cmd._warnings, 1) 56 metadata = {'url': 'xxx', 57 'author': 'xxx', 58 'author_email': 'xxx', 59 'name': 'xxx', 60 'version': 'xxx', 61 'long_description': broken_rest} 62 self.assertRaises(DistutilsSetupError, self._run, metadata, **{'strict': 1, 63 'restructuredtext': 1}) 64 metadata['long_description'] = 'title\n=====\n\ntest' 65 cmd = self._run(metadata, strict=1, restructuredtext=1) 66 self.assertEqual(cmd._warnings, 0) 67 68 def test_check_all(self): 69 metadata = {'url': 'xxx', 70 'author': 'xxx'} 71 self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1, 72 'restructuredtext': 1}) 73 74 75 def test_suite(): 76 return unittest.makeSuite(CheckTestCase) 77 78 79 if __name__ == '__main__': 80 unittest.main(defaultTest='test_suite')