@@ -240,13 +240,21 @@ def test_refresh_control(self):
240240
241241 def test_output_character (self ):
242242 stdscr = self .stdscr
243+ encoding = stdscr .encoding
243244 # addch()
244245 stdscr .refresh ()
245246 stdscr .move (0 , 0 )
246247 stdscr .addch ('A' )
247248 stdscr .addch (b'A' )
248249 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 ))
250258 stdscr .addch ('A' , curses .A_BOLD )
251259 stdscr .addch (1 , 2 , 'A' )
252260 stdscr .addch (2 , 3 , 'A' , curses .A_BOLD )
@@ -258,19 +266,25 @@ def test_output_character(self):
258266 stdscr .echochar ('A' )
259267 stdscr .echochar (b'A' )
260268 stdscr .echochar (65 )
261- self .assertRaises (OverflowError , stdscr .echochar , '\u20ac ' )
269+ with self .assertRaises ((UnicodeEncodeError , OverflowError )):
270+ stdscr .echochar ('\u20ac ' )
262271 stdscr .echochar ('A' , curses .A_BOLD )
263272 self .assertIs (stdscr .is_wintouched (), False )
264273
265274 def test_output_string (self ):
266275 stdscr = self .stdscr
276+ encoding = stdscr .encoding
267277 # addstr()/insstr()
268278 for func in [stdscr .addstr , stdscr .insstr ]:
269279 with self .subTest (func .__qualname__ ):
270280 stdscr .move (0 , 0 )
271281 func ('abcd' )
272282 func (b'abcd' )
273- func ('àßçđ' )
283+ s = 'àßçđ'
284+ try :
285+ func (s )
286+ except UnicodeEncodeError :
287+ self .assertRaises (UnicodeEncodeError , s .encode , encoding )
274288 func ('abcd' , curses .A_BOLD )
275289 func (1 , 2 , 'abcd' )
276290 func (2 , 3 , 'abcd' , curses .A_BOLD )
@@ -281,7 +295,11 @@ def test_output_string(self):
281295 stdscr .move (0 , 0 )
282296 func ('1234' , 3 )
283297 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 )
285303 func ('1234' , 5 )
286304 func ('1234' , 3 , curses .A_BOLD )
287305 func (1 , 2 , '1234' , 3 )
@@ -471,7 +489,7 @@ def test_background(self):
471489 win = curses .newwin (5 , 15 , 5 , 2 )
472490 win .addstr (0 , 0 , 'Lorem ipsum' )
473491
474- self .assertEqual (win .getbkgd (), 0 )
492+ self .assertIn (win .getbkgd (), ( 0 , 32 ) )
475493
476494 # bkgdset()
477495 win .bkgdset ('_' )
0 commit comments