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