示例#1
0
def test_pressed_moved_released():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    #initial value
    assert not mbd.is_pressed
    assert mbd.value == 0

    #pressed
    mbd.mock_blue_dot_pressed(0, 0)
    assert mbd.is_pressed
    assert mbd.value == 1

    #released
    mbd.mock_blue_dot_released(0, 0)
    assert not mbd.is_pressed
    assert mbd.value == 0

    #wait_for_press
    delay_function(lambda: mbd.mock_blue_dot_pressed(0, 0), 0.5)
    assert mbd.wait_for_press(1)
    assert not mbd.wait_for_release(0)

    #wait_for_release
    delay_function(lambda: mbd.mock_blue_dot_released(0, 0), 0.5)
    assert mbd.wait_for_release(1)
    assert not mbd.wait_for_press(0)
示例#2
0
def test_when_pressed_moved_released():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    #when_pressed
    event_pressed = Event()
    mbd.when_pressed = lambda: event_pressed.set()

    #when_double_pressed
    event_double_pressed = Event()
    mbd.when_double_pressed = lambda: event_double_pressed.set()

    #when_moved
    event_moved = Event()
    mbd.when_moved = lambda: event_moved.set()

    #when_released
    event_released = Event()
    mbd.when_released = lambda: event_released.set()

    assert not event_pressed.is_set()
    mbd.mock_blue_dot_pressed(0, 0)
    assert event_pressed.is_set()

    assert not event_moved.is_set()
    mbd.mock_blue_dot_moved(1, 1)
    assert event_moved.is_set()

    assert not event_released.is_set()
    mbd.mock_blue_dot_released(0, 0)
    assert event_released.is_set()

    assert not event_double_pressed.is_set()
    mbd.mock_blue_dot_pressed(0, 0)
    assert event_double_pressed.is_set()
示例#3
0
def test_callback_in_class():
    class CallbackClass():
        def __init__(self):
            self.event = Event()

        def no_pos(self):
            self.event.set()
            self.pos = None

        def with_pos(self, pos):
            self.event.set()
            self.pos = pos

    cc = CallbackClass()
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    mbd.when_pressed = cc.no_pos
    mbd.mock_blue_dot_pressed(0, 0, 0, 0)
    assert cc.event.is_set()
    assert cc.pos is None

    mbd.mock_blue_dot_released(0, 0, 0, 0)
    cc.event.clear()

    mbd.when_pressed = cc.with_pos
    mbd.mock_blue_dot_pressed(0, 0, 0, 0)
    assert cc.event.is_set()
    assert cc.pos.middle
示例#4
0
def test_when_pressed_moved_released_background():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    #when_pressed
    event_pressed = Event()
    mbd.set_when_pressed(lambda: delay_function(event_pressed.set, 0.2),
                         background=True)

    #when_double_pressed
    event_double_pressed = Event()
    mbd.set_when_double_pressed(
        lambda: delay_function(event_double_pressed.set, 0.2), background=True)

    #when_moved
    event_moved = Event()
    mbd.set_when_moved(lambda: delay_function(event_moved.set, 0.2),
                       background=True)

    #when_released
    event_released = Event()
    mbd.set_when_released(lambda: delay_function(event_released.set, 0.2),
                          background=True)

    # test that the events dont block
    assert not event_pressed.is_set()
    mbd.mock_blue_dot_pressed(0, 0)
    assert not event_pressed.is_set()
    assert event_pressed.wait(1)

    assert not event_moved.is_set()
    mbd.mock_blue_dot_moved(1, 1)
    assert not event_moved.is_set()
    assert event_moved.wait(1)

    assert not event_released.is_set()
    mbd.mock_blue_dot_released(0, 0)
    assert not event_released.is_set()
    assert event_released.wait(1)

    # set pressed, moved, released to None so they dont wait
    mbd.set_when_pressed(None)
    mbd.set_when_moved(None)
    mbd.set_when_released(None)
    mbd.mock_blue_dot_pressed(0, 0)
    mbd.mock_blue_dot_moved(1, 1)
    mbd.mock_blue_dot_released(0, 0)
    assert not event_double_pressed.is_set()
    mbd.mock_blue_dot_pressed(0, 0)
    assert not event_double_pressed.is_set()
    assert event_double_pressed.wait(1)
示例#5
0
def test_swipe():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    #when_swiped
    event_swiped = Event()
    mbd.when_swiped = lambda: event_swiped.set()
    assert not event_swiped.is_set()

    #simulate swipe left to right
    mbd.mock_blue_dot_pressed(-1, 0)
    mbd.mock_blue_dot_moved(0, 0)
    mbd.mock_blue_dot_released(1, 0)
    #check event
    assert event_swiped.is_set()
    #get the swipe
    swipe = BlueDotSwipe(mbd.interaction)
    assert swipe.right
    assert not swipe.left
    assert not swipe.up
    assert not swipe.down

    #right to left
    event_swiped.clear()
    mbd.mock_blue_dot_pressed(1, 0)
    mbd.mock_blue_dot_moved(0, 0)
    mbd.mock_blue_dot_released(-1, 0)
    assert event_swiped.is_set()
    swipe = BlueDotSwipe(mbd.interaction)
    assert not swipe.right
    assert swipe.left
    assert not swipe.up
    assert not swipe.down

    #bottom to top
    event_swiped.clear()
    mbd.mock_blue_dot_pressed(0, -1)
    mbd.mock_blue_dot_moved(0, 0)
    mbd.mock_blue_dot_released(0, 1)
    assert event_swiped.is_set()
    swipe = BlueDotSwipe(mbd.interaction)
    assert not swipe.right
    assert not swipe.left
    assert swipe.up
    assert not swipe.down

    #top to bottom
    event_swiped.clear()
    mbd.mock_blue_dot_pressed(0, 1)
    mbd.mock_blue_dot_moved(0, 0)
    mbd.mock_blue_dot_released(0, -1)
    assert event_swiped.is_set()
    swipe = BlueDotSwipe(mbd.interaction)
    assert not swipe.right
    assert not swipe.left
    assert not swipe.up
    assert swipe.down
示例#6
0
def test_interaction():
    mbd = MockBlueDot()
    mbd.mock_client_connected()
    assert mbd.interaction == None

    mbd.mock_blue_dot_pressed(-1, 0)
    assert mbd.interaction.active
    assert len(mbd.interaction.positions) == 1
    assert mbd.interaction.distance == 0
    assert mbd.interaction.pressed_position.x == -1
    assert mbd.interaction.pressed_position.y == 0
    assert mbd.interaction.current_position.x == -1
    assert mbd.interaction.current_position.y == 0
    assert mbd.interaction.previous_position == None
    assert mbd.interaction.released_position == None

    mbd.mock_blue_dot_moved(0, 0)
    assert mbd.interaction.active
    assert len(mbd.interaction.positions) == 2
    assert mbd.interaction.distance == 1
    assert mbd.interaction.pressed_position.x == -1
    assert mbd.interaction.pressed_position.y == 0
    assert mbd.interaction.current_position.x == 0
    assert mbd.interaction.current_position.y == 0
    assert mbd.interaction.previous_position.x == -1
    assert mbd.interaction.previous_position.y == 0
    assert mbd.interaction.released_position == None

    mbd.mock_blue_dot_released(1, 0)
    assert not mbd.interaction.active
    assert len(mbd.interaction.positions) == 3
    assert mbd.interaction.distance == 2
    assert mbd.interaction.pressed_position.x == -1
    assert mbd.interaction.pressed_position.y == 0
    assert mbd.interaction.current_position.x == 1
    assert mbd.interaction.current_position.y == 0
    assert mbd.interaction.previous_position.x == 0
    assert mbd.interaction.previous_position.y == 0
    assert mbd.interaction.released_position.x == 1
    assert mbd.interaction.released_position.y == 0