mirror of
https://github.com/python/cpython.git
synced 2025-07-22 02:35:22 +00:00
[3.13] gh-126742: Add _PyErr_SetLocaleString, use it for gdbm & dlerror messages (GH-126746) (GH-128023)
- Add a helper to set an error from locale-encoded `char*`
- Use the helper for gdbm & dlerror messages
(cherry picked from commit 7303f06846
)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
367ea89384
commit
fe08cdf265
12 changed files with 176 additions and 69 deletions
|
@ -1,10 +1,11 @@
|
|||
from test import support
|
||||
from test.support import import_helper, cpython_only
|
||||
gdbm = import_helper.import_module("dbm.gnu") #skip if not supported
|
||||
import unittest
|
||||
import os
|
||||
from test.support.os_helper import TESTFN, TESTFN_NONASCII, unlink, FakePath
|
||||
import unittest
|
||||
from test import support
|
||||
from test.support import cpython_only, import_helper
|
||||
from test.support.os_helper import (TESTFN, TESTFN_NONASCII, FakePath,
|
||||
create_empty_file, temp_dir, unlink)
|
||||
|
||||
gdbm = import_helper.import_module("dbm.gnu") # skip if not supported
|
||||
|
||||
filename = TESTFN
|
||||
|
||||
|
@ -205,6 +206,16 @@ class TestGdbm(unittest.TestCase):
|
|||
self.assertNotIn(k, db)
|
||||
self.assertEqual(len(db), 0)
|
||||
|
||||
@support.run_with_locale(
|
||||
'LC_ALL',
|
||||
'fr_FR.iso88591', 'ja_JP.sjis', 'zh_CN.gbk',
|
||||
'fr_FR.utf8', 'en_US.utf8',
|
||||
'',
|
||||
)
|
||||
def test_localized_error(self):
|
||||
with temp_dir() as d:
|
||||
create_empty_file(os.path.join(d, 'test'))
|
||||
self.assertRaises(gdbm.error, gdbm.open, filename, 'r')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue