Skip to content

Commit

Permalink
Better cleanup in MultitouchSimulatorTestCase.
Browse files Browse the repository at this point in the history
  • Loading branch information
pythonic64 committed Apr 23, 2021
1 parent ad9750a commit 87906f1
Showing 1 changed file with 40 additions and 6 deletions.
46 changes: 40 additions & 6 deletions kivy/tests/test_mouse_multitouchsim.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ def mouse_init(self, on_demand=False, disabled=False, scatter=False):
self.assertTrue(mouse.multitouch_on_demand)
return (eventloop, win, mouse, wid)

def remove_sim_touch(self, win, x, y):
win.dispatch('on_mouse_down', x, self.correct_y(win, y), 'left', {})
win.dispatch('on_mouse_up', x, self.correct_y(win, y), 'left', {})

def multitouch_dot_touch(self, button, **kwargs):
# touch -> dot appears -> touch again -> dot disappears
eventloop, win, mouse, wid = self.mouse_init(**kwargs)
Expand All @@ -68,9 +72,13 @@ def multitouch_dot_touch(self, button, **kwargs):
if 'on_demand' in kwargs and 'scatter' not in kwargs:
# doesn't do anything on a pure Button
self.render(wid)

# cleanup!
# remove mouse provider
win.dispatch(
'on_mouse_up',
10, self.correct_y(win, 10),
'right', {}
)
self.assertFalse(mouse.touches)
mouse.stop()
eventloop.remove_input_provider(mouse)
return
Expand Down Expand Up @@ -147,7 +155,12 @@ def multitouch_dot_touch(self, button, **kwargs):
event_id, mouse.touches
)
# cleanup!
# remove mouse provider
win.dispatch(
'on_mouse_up',
10, self.correct_y(win, 10),
button, {}
)
self.assertFalse(mouse.touches)
mouse.stop()
eventloop.remove_input_provider(mouse)
return
Expand Down Expand Up @@ -194,6 +207,11 @@ def multitouch_dot_touch(self, button, **kwargs):

self.render(wid)

# remove red dot
if button == 'right':
self.remove_sim_touch(win, 10, 10)
self.assertFalse(mouse.touches)

# cleanup!
# remove mouse provider
mouse.stop()
Expand Down Expand Up @@ -225,9 +243,13 @@ def multitouch_dot_move(self, button, **kwargs):
if 'on_demand' in kwargs and 'scatter' not in kwargs:
# doesn't do anything on a pure Button
self.render(wid)

# cleanup!
# remove mouse provider
win.dispatch(
'on_mouse_up',
10, self.correct_y(win, 10),
'right', {}
)
self.assertFalse(mouse.touches)
mouse.stop()
eventloop.remove_input_provider(mouse)
return
Expand Down Expand Up @@ -293,7 +315,12 @@ def multitouch_dot_move(self, button, **kwargs):
mouse.touches[event_id].ud.get('_drawelement')
) # the red dot isn't present
# cleanup!
# remove mouse provider
win.dispatch(
'on_mouse_up',
10, self.correct_y(win, 10),
'right', {}
)
self.assertFalse(mouse.touches)
mouse.stop()
eventloop.remove_input_provider(mouse)
return
Expand Down Expand Up @@ -374,6 +401,10 @@ def multitouch_dot_move(self, button, **kwargs):

self.render(wid)

if button == 'right':
self.remove_sim_touch(win, 50, 50)
self.assertFalse(mouse.touches)

# cleanup!
# remove mouse provider
mouse.stop()
Expand Down Expand Up @@ -491,6 +522,9 @@ def test_multitouch_appear(self):

self.render(wid)

self.remove_sim_touch(win, 10, 10)
self.assertFalse(mouse.touches)

# cleanup!
# remove mouse provider
mouse.stop()
Expand Down

0 comments on commit 87906f1

Please sign in to comment.