@@ -239,13 +239,21 @@ def test_refresh_control(self):
239239
240240 def test_output_character (self ):
241241 stdscr = self .stdscr
242+ encoding = stdscr .encoding
242243 # addch()
243244 stdscr .refresh ()
244245 stdscr .move (0 , 0 )
245246 stdscr .addch ('A' )
246247 stdscr .addch (b'A' )
247248 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 ))
249257 stdscr .addch ('A' , curses .A_BOLD )
250258 stdscr .addch (1 , 2 , 'A' )
251259 stdscr .addch (2 , 3 , 'A' , curses .A_BOLD )
@@ -257,19 +265,25 @@ def test_output_character(self):
257265 stdscr .echochar ('A' )
258266 stdscr .echochar (b'A' )
259267 stdscr .echochar (65 )
260- self .assertRaises (OverflowError , stdscr .echochar , '\u20ac ' )
268+ with self .assertRaises ((UnicodeEncodeError , OverflowError )):
269+ stdscr .echochar ('\u20ac ' )
261270 stdscr .echochar ('A' , curses .A_BOLD )
262271 self .assertIs (stdscr .is_wintouched (), False )
263272
264273 def test_output_string (self ):
265274 stdscr = self .stdscr
275+ encoding = stdscr .encoding
266276 # addstr()/insstr()
267277 for func in [stdscr .addstr , stdscr .insstr ]:
268278 with self .subTest (func .__qualname__ ):
269279 stdscr .move (0 , 0 )
270280 func ('abcd' )
271281 func (b'abcd' )
272- func ('àßçđ' )
282+ s = 'àßçđ'
283+ try :
284+ func (s )
285+ except UnicodeEncodeError :
286+ self .assertRaises (UnicodeEncodeError , s .encode , encoding )
273287 func ('abcd' , curses .A_BOLD )
274288 func (1 , 2 , 'abcd' )
275289 func (2 , 3 , 'abcd' , curses .A_BOLD )
@@ -280,7 +294,11 @@ def test_output_string(self):
280294 stdscr .move (0 , 0 )
281295 func ('1234' , 3 )
282296 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 )
284302 func ('1234' , 5 )
285303 func ('1234' , 3 , curses .A_BOLD )
286304 func (1 , 2 , '1234' , 3 )
@@ -470,7 +488,7 @@ def test_background(self):
470488 win = curses .newwin (5 , 15 , 5 , 2 )
471489 win .addstr (0 , 0 , 'Lorem ipsum' )
472490
473- self .assertEqual (win .getbkgd (), 0 )
491+ self .assertIn (win .getbkgd (), ( 0 , 32 ) )
474492
475493 # bkgdset()
476494 win .bkgdset ('_' )
0 commit comments