diff options
author | Éric Araujo <merwok@netwok.org> | 2011-10-11 00:18:12 (GMT) |
---|---|---|
committer | Éric Araujo <merwok@netwok.org> | 2011-10-11 00:18:12 (GMT) |
commit | 30cc65460e196902ac9d5c2892c8f5ddfcb46486 (patch) | |
tree | c434dfd375b8a8eadf6174cf69daef735fc537d3 /Lib/packaging | |
parent | 794d567b173e4cc10ad233aeb8743283ea9c3e6b (diff) | |
download | cpython-30cc65460e196902ac9d5c2892c8f5ddfcb46486.zip cpython-30cc65460e196902ac9d5c2892c8f5ddfcb46486.tar.gz cpython-30cc65460e196902ac9d5c2892c8f5ddfcb46486.tar.bz2 |
Add tests for Unicode handling in packaging’ check and register (#13114)
Diffstat (limited to 'Lib/packaging')
-rw-r--r-- | Lib/packaging/tests/test_command_check.py | 25 | ||||
-rw-r--r-- | Lib/packaging/tests/test_command_register.py | 28 |
2 files changed, 43 insertions, 10 deletions
diff --git a/Lib/packaging/tests/test_command_check.py b/Lib/packaging/tests/test_command_check.py index 271e457..3a4ab42 100644 --- a/Lib/packaging/tests/test_command_check.py +++ b/Lib/packaging/tests/test_command_check.py @@ -56,6 +56,15 @@ class CheckTestCase(support.LoggingCatcher, cmd = self._run(metadata, strict=True) self.assertEqual([], self.get_logs(logging.WARNING)) + # now a test with non-ASCII characters + metadata = {'home_page': 'xxx', 'author': '\u00c9ric', + 'author_email': 'xxx', 'name': 'xxx', + 'version': '1.2', + 'summary': 'Something about esszet \u00df', + 'description': 'More things about esszet \u00df'} + cmd = self._run(metadata) + self.assertEqual([], self.get_logs(logging.WARNING)) + def test_check_metadata_1_2(self): # let's run the command with no metadata at all # by default, check is checking the metadata @@ -95,14 +104,26 @@ class CheckTestCase(support.LoggingCatcher, @unittest.skipUnless(_HAS_DOCUTILS, "requires docutils") def test_check_restructuredtext(self): - # let's see if it detects broken rest in long_description + # let's see if it detects broken rest in description broken_rest = 'title\n===\n\ntest' pkg_info, dist = self.create_dist(description=broken_rest) cmd = check(dist) cmd.check_restructuredtext() self.assertEqual(len(self.get_logs(logging.WARNING)), 1) + # clear warnings from the previous call + self.loghandler.flush() + + # let's see if we have an error with strict=1 + metadata = {'home_page': 'xxx', 'author': 'xxx', + 'author_email': 'xxx', + 'name': 'xxx', 'version': '1.2', + 'description': broken_rest} + self.assertRaises(PackagingSetupError, self._run, metadata, + strict=True, all=True) + self.loghandler.flush() - pkg_info, dist = self.create_dist(description='title\n=====\n\ntest') + # and non-broken rest, including a non-ASCII character to test #12114 + dist = self.create_dist(description='title\n=====\n\ntest \u00df')[1] cmd = check(dist) cmd.check_restructuredtext() self.assertEqual([], self.get_logs(logging.WARNING)) diff --git a/Lib/packaging/tests/test_command_register.py b/Lib/packaging/tests/test_command_register.py index 9872e2e..73d9834 100644 --- a/Lib/packaging/tests/test_command_register.py +++ b/Lib/packaging/tests/test_command_register.py @@ -200,12 +200,10 @@ class RegisterTestCase(support.TempdirManager, @unittest.skipUnless(DOCUTILS_SUPPORT, 'needs docutils') def test_strict(self): - # testing the script option - # when on, the register command stops if - # the metadata is incomplete or if - # long_description is not reSt compliant + # testing the strict option: when on, the register command stops if the + # metadata is incomplete or if description contains bad reST - # empty metadata + # empty metadata # XXX this is not really empty.. cmd = self._get_cmd({'name': 'xxx', 'version': 'xxx'}) cmd.ensure_finalized() cmd.strict = True @@ -213,16 +211,15 @@ class RegisterTestCase(support.TempdirManager, register_module.input = inputs self.assertRaises(PackagingSetupError, cmd.run) - # metadata is OK but long_description is broken + # metadata is OK but description is broken metadata = {'home_page': 'xxx', 'author': 'xxx', 'author_email': 'éxéxé', - 'name': 'xxx', 'version': 'xxx', + 'name': 'xxx', 'version': '4.2', 'description': 'title\n==\n\ntext'} cmd = self._get_cmd(metadata) cmd.ensure_finalized() cmd.strict = True - self.assertRaises(PackagingSetupError, cmd.run) # now something that works @@ -243,6 +240,21 @@ class RegisterTestCase(support.TempdirManager, cmd.ensure_finalized() cmd.run() + # and finally a Unicode test (bug #12114) + metadata = {'home_page': 'xxx', 'author': '\u00c9ric', + 'author_email': 'xxx', 'name': 'xxx', + 'version': 'xxx', + 'summary': 'Something about esszet \u00df', + 'description': 'More things about esszet \u00df'} + + cmd = self._get_cmd(metadata) + cmd.ensure_finalized() + cmd.strict = True + inputs = Inputs('1', 'tarek', 'y') + register_module.input = inputs + cmd.ensure_finalized() + cmd.run() + def test_register_pep345(self): cmd = self._get_cmd({}) cmd.ensure_finalized() |