('"', 'Unterminated string starting at', 0),
('"spam', 'Unterminated string starting at', 0),
]
+ # A complete \uXXXX escape at end of input leaves it unterminated.
+ test_cases += [
+ (r'"\u0041', 'Unterminated string starting at', 0),
+ (r'"\ud834', 'Unterminated string starting at', 0),
+ (r'"\ud834\udd1e', 'Unterminated string starting at', 0),
+ (r'{"a": "\u0041', 'Unterminated string starting at', 6),
+ ]
for data, msg, idx in test_cases:
with self.assertRaises(self.JSONDecodeError) as cm:
self.loads(data)