@@ -711,10 +711,11 @@ def _inject_mouse(screen, x, y, button):
711711 bstate |= curses .BUTTON3_CLICKED
712712 if button & MouseEvent .DOUBLE_CLICK != 0 :
713713 bstate |= curses .BUTTON1_DOUBLE_CLICKED
714- if button & MouseEvent .SCROLL_UP != 0 :
715- bstate |= curses .BUTTON4_CLICKED
716- if button & MouseEvent .SCROLL_DOWN != 0 :
717- bstate |= curses .BUTTON5_CLICKED
714+ if hasattr (curses , "BUTTON5_PRESSED" ):
715+ if button & MouseEvent .SCROLL_UP != 0 :
716+ bstate |= curses .BUTTON4_CLICKED
717+ if button & MouseEvent .SCROLL_DOWN != 0 :
718+ bstate |= curses .BUTTON5_CLICKED
718719 curses .ungetmouse (0 , x , y , 0 , bstate )
719720
720721 def test_key_input (self ):
@@ -791,21 +792,23 @@ def internal_checks(screen):
791792 self .assertEqual (ev .buttons , MouseEvent .DOUBLE_CLICK )
792793 self .assertIsNone (screen .get_event ())
793794
794- # Check scroll up
795- self ._inject_mouse (screen , 1 , 1 , MouseEvent .SCROLL_UP )
796- ev = screen .get_event ()
797- self .assertEqual (ev .x , 1 )
798- self .assertEqual (ev .y , 1 )
799- self .assertEqual (ev .buttons , MouseEvent .SCROLL_UP )
800- self .assertIsNone (screen .get_event ())
795+ # Not all curses versions support scrolling...
796+ if hasattr (curses , "BUTTON5_PRESSED" ):
797+ # Check scroll up
798+ self ._inject_mouse (screen , 1 , 1 , MouseEvent .SCROLL_UP )
799+ ev = screen .get_event ()
800+ self .assertEqual (ev .x , 1 )
801+ self .assertEqual (ev .y , 1 )
802+ self .assertEqual (ev .buttons , MouseEvent .SCROLL_UP )
803+ self .assertIsNone (screen .get_event ())
801804
802- # Check scroll up
803- self ._inject_mouse (screen , 1 , 1 , MouseEvent .SCROLL_DOWN )
804- ev = screen .get_event ()
805- self .assertEqual (ev .x , 1 )
806- self .assertEqual (ev .y , 1 )
807- self .assertEqual (ev .buttons , MouseEvent .SCROLL_DOWN )
808- self .assertIsNone (screen .get_event ())
805+ # Check scroll up
806+ self ._inject_mouse (screen , 1 , 1 , MouseEvent .SCROLL_DOWN )
807+ ev = screen .get_event ()
808+ self .assertEqual (ev .x , 1 )
809+ self .assertEqual (ev .y , 1 )
810+ self .assertEqual (ev .buttons , MouseEvent .SCROLL_DOWN )
811+ self .assertIsNone (screen .get_event ())
809812
810813 Screen .wrapper (internal_checks , height = 15 )
811814
0 commit comments