@@ -240,13 +240,21 @@ def test_refresh_control(self):
240
240
241
241
def test_output_character (self ):
242
242
stdscr = self .stdscr
243
+ encoding = stdscr .encoding
243
244
# addch()
244
245
stdscr .refresh ()
245
246
stdscr .move (0 , 0 )
246
247
stdscr .addch ('A' )
247
248
stdscr .addch (b'A' )
248
249
stdscr .addch (65 )
249
- stdscr .addch ('\u20ac ' )
250
+ c = '\u20ac '
251
+ try :
252
+ stdscr .addch (c )
253
+ except UnicodeEncodeError :
254
+ self .assertRaises (UnicodeEncodeError , c .encode , encoding )
255
+ except OverflowError :
256
+ encoded = c .encode (encoding )
257
+ self .assertNotEqual (len (encoded ), 1 , repr (encoded ))
250
258
stdscr .addch ('A' , curses .A_BOLD )
251
259
stdscr .addch (1 , 2 , 'A' )
252
260
stdscr .addch (2 , 3 , 'A' , curses .A_BOLD )
@@ -258,19 +266,25 @@ def test_output_character(self):
258
266
stdscr .echochar ('A' )
259
267
stdscr .echochar (b'A' )
260
268
stdscr .echochar (65 )
261
- self .assertRaises (OverflowError , stdscr .echochar , '\u20ac ' )
269
+ with self .assertRaises ((UnicodeEncodeError , OverflowError )):
270
+ stdscr .echochar ('\u20ac ' )
262
271
stdscr .echochar ('A' , curses .A_BOLD )
263
272
self .assertIs (stdscr .is_wintouched (), False )
264
273
265
274
def test_output_string (self ):
266
275
stdscr = self .stdscr
276
+ encoding = stdscr .encoding
267
277
# addstr()/insstr()
268
278
for func in [stdscr .addstr , stdscr .insstr ]:
269
279
with self .subTest (func .__qualname__ ):
270
280
stdscr .move (0 , 0 )
271
281
func ('abcd' )
272
282
func (b'abcd' )
273
- func ('àßçđ' )
283
+ s = 'àßçđ'
284
+ try :
285
+ func (s )
286
+ except UnicodeEncodeError :
287
+ self .assertRaises (UnicodeEncodeError , s .encode , encoding )
274
288
func ('abcd' , curses .A_BOLD )
275
289
func (1 , 2 , 'abcd' )
276
290
func (2 , 3 , 'abcd' , curses .A_BOLD )
@@ -281,7 +295,11 @@ def test_output_string(self):
281
295
stdscr .move (0 , 0 )
282
296
func ('1234' , 3 )
283
297
func (b'1234' , 3 )
284
- func ('\u0661 \u0662 \u0663 \u0664 ' , 3 )
298
+ s = '\u0661 \u0662 \u0663 \u0664 '
299
+ try :
300
+ func (s , 3 )
301
+ except UnicodeEncodeError :
302
+ self .assertRaises (UnicodeEncodeError , s .encode , encoding )
285
303
func ('1234' , 5 )
286
304
func ('1234' , 3 , curses .A_BOLD )
287
305
func (1 , 2 , '1234' , 3 )
@@ -471,7 +489,7 @@ def test_background(self):
471
489
win = curses .newwin (5 , 15 , 5 , 2 )
472
490
win .addstr (0 , 0 , 'Lorem ipsum' )
473
491
474
- self .assertEqual (win .getbkgd (), 0 )
492
+ self .assertIn (win .getbkgd (), ( 0 , 32 ) )
475
493
476
494
# bkgdset()
477
495
win .bkgdset ('_' )
0 commit comments