mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
This commit is contained in:
parent
1b2bd3b348
commit
e239d23e8c
13 changed files with 144 additions and 78 deletions
|
|
@ -2508,11 +2508,17 @@ class TestTimeTZ(TestTime, TZInfoBase, unittest.TestCase):
|
|||
|
||||
# Check that an invalid tzname result raises an exception.
|
||||
class Badtzname(tzinfo):
|
||||
def tzname(self, dt): return 42
|
||||
tz = 42
|
||||
def tzname(self, dt): return self.tz
|
||||
t = time(2, 3, 4, tzinfo=Badtzname())
|
||||
self.assertEqual(t.strftime("%H:%M:%S"), "02:03:04")
|
||||
self.assertRaises(TypeError, t.strftime, "%Z")
|
||||
|
||||
# Issue #6697:
|
||||
if '_Fast' in str(type(self)):
|
||||
Badtzname.tz = '\ud800'
|
||||
self.assertRaises(ValueError, t.strftime, "%Z")
|
||||
|
||||
def test_hash_edge_cases(self):
|
||||
# Offsets that overflow a basic time.
|
||||
t1 = self.theclass(0, 1, 2, 3, tzinfo=FixedOffset(1439, ""))
|
||||
|
|
|
|||
|
|
@ -203,6 +203,8 @@ class ParseTest(unittest.TestCase):
|
|||
|
||||
operations = out.out
|
||||
self._verify_parse_output(operations)
|
||||
# Issue #6697.
|
||||
self.assertRaises(AttributeError, getattr, parser, '\uD800')
|
||||
|
||||
def test_parse_file(self):
|
||||
# Try parsing a file
|
||||
|
|
|
|||
|
|
@ -667,6 +667,8 @@ class GeneralModuleTests(unittest.TestCase):
|
|||
type=socket.SOCK_STREAM, proto=0,
|
||||
flags=socket.AI_PASSIVE)
|
||||
self.assertEqual(a, b)
|
||||
# Issue #6697.
|
||||
self.assertRaises(UnicodeEncodeError, socket.getaddrinfo, 'localhost', '\uD800')
|
||||
|
||||
def test_getnameinfo(self):
|
||||
# only IP addresses are allowed
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ class Test(unittest.TestCase):
|
|||
|
||||
def test_openlog(self):
|
||||
syslog.openlog('python')
|
||||
# Issue #6697.
|
||||
self.assertRaises(UnicodeEncodeError, syslog.openlog, '\uD800')
|
||||
|
||||
def test_syslog(self):
|
||||
syslog.openlog('python')
|
||||
|
|
|
|||
|
|
@ -8,10 +8,26 @@ cET = support.import_module('xml.etree.cElementTree')
|
|||
# cElementTree specific tests
|
||||
|
||||
def sanity():
|
||||
"""
|
||||
r"""
|
||||
Import sanity.
|
||||
|
||||
>>> from xml.etree import cElementTree
|
||||
|
||||
Issue #6697.
|
||||
|
||||
>>> e = cElementTree.Element('a')
|
||||
>>> getattr(e, '\uD800') # doctest: +ELLIPSIS
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
UnicodeEncodeError: ...
|
||||
|
||||
>>> p = cElementTree.XMLParser()
|
||||
>>> p.version.split()[0]
|
||||
'Expat'
|
||||
>>> getattr(p, '\uD800')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
AttributeError: 'XMLParser' object has no attribute '\ud800'
|
||||
"""
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue