Beispiel #1
0
def test_resize():
    mbd = MockBlueDot()
    mbd.resize(4, 3)

    assert mbd.cols == 4
    assert mbd.rows == 3
    assert len(mbd.buttons) == 12
Beispiel #2
0
def test_modify_values():
    mbd = MockBlueDot(device="hci1",
                      port=2,
                      auto_start_server=False,
                      print_messages=False,
                      cols=3,
                      rows=2)
    assert mbd.device == "hci1"
    assert mbd.port == 2
    assert not mbd.running
    assert mbd.cols == 3
    assert mbd.rows == 2

    assert not mbd.print_messages
    mbd.print_messages = True
    assert mbd.print_messages

    assert mbd.double_press_time == 0.3
    mbd.double_press_time = 0.4
    assert mbd.double_press_time == 0.4

    assert mbd.rotation_segments == 8
    mbd.rotation_segments = 16
    assert mbd.rotation_segments == 16

    assert len(mbd.buttons) == 6
Beispiel #3
0
def test_allow_pairing():
    mbd = MockBlueDot()
    assert not mbd.adapter.discoverable
    assert not mbd.adapter.pairable

    mbd.allow_pairing()
    assert mbd.adapter.discoverable
    assert mbd.adapter.pairable
Beispiel #4
0
def test_connect_disconnect():
    mbd = MockBlueDot()
    assert not mbd.is_connected
    mbd.mock_client_connected()
    assert mbd.wait_for_connection(1)
    assert mbd.is_connected
    mbd.mock_client_disconnected()
    assert not mbd.is_connected
Beispiel #5
0
def test_dot_colors():
    from bluedot.colors import BLUE, RED, GREEN, YELLOW

    mbd = MockBlueDot()
    assert mbd.color == "blue"
    assert mbd.color == (0, 0, 255)
    assert mbd.color == BLUE
    assert mbd.color == "#0000ff"
    assert mbd.color == "#0000ffff"

    mbd.color = RED
    assert mbd.color == (255, 0, 0)
    assert mbd.color == "red"
    assert mbd.color == "#ff0000"
    assert mbd.color == "#ff0000ff"

    mbd.color = "green"
    assert mbd.color == GREEN
    assert mbd.color == (0, 128, 0)
    assert mbd.color == "#008000"
    assert mbd.color == "#008000ff"

    mbd.color = "#ffff00"
    assert mbd.color == YELLOW
    assert mbd.color == "yellow"
    assert mbd.color == (255, 255, 0)
    assert mbd.color == "#ffff00ff"

    mbd.color = "#ffffff11"
    assert mbd.color == "#ffffff11"
Beispiel #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
Beispiel #7
0
def test_swipe():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def simulate_swipe(pressed_x, pressed_y, moved_x, moved_y, released_x,
                       released_y):

        mbd.mock_blue_dot_pressed(pressed_x, pressed_y)
        mbd.mock_blue_dot_moved(moved_x, moved_y)
        mbd.mock_blue_dot_released(released_x, released_y)

    #wait_for_swipe
    delay_function(lambda: simulate_swipe(-1, 0, 0, 0, 1, 0), 0.5)
    assert mbd.wait_for_swipe(1)

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

    #simulate swipe left to right
    simulate_swipe(-1, 0, 0, 0, 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()
    simulate_swipe(1, 0, 0, 0, -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()
    simulate_swipe(0, -1, 0, 0, 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()
    simulate_swipe(0, 1, 0, 0, 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
Beispiel #8
0
def test_start_stop():
    mbd = MockBlueDot(auto_start_server=False)
    assert not mbd.running
    mbd.start()
    assert mbd.running
    mbd.stop()
    assert not mbd.running
Beispiel #9
0
def test_dot_appearance():
    mbd = MockBlueDot()
    assert mbd.color == "blue"
    assert mbd.border == False
    assert mbd.square == False
    assert mbd.visible == True

    mbd.resize(2, 1)

    for button in mbd.buttons:
        assert button.color == "blue"
        assert button.border == False
        assert button.square == False
        assert button.visible == True

    mbd[1, 0].color = "red"
    mbd[1, 0].border = True
    mbd[1, 0].square = True
    mbd[1, 0].visible = False

    assert mbd.color == "blue"
    assert mbd.border == False
    assert mbd.square == False
    assert mbd.visible == True

    assert mbd[0, 0].color == "blue"
    assert mbd[0, 0].border == False
    assert mbd[0, 0].square == False
    assert mbd[0, 0].visible == True

    assert mbd[1, 0].color == "red"
    assert mbd[1, 0].border == True
    assert mbd[1, 0].square == True
    assert mbd[1, 0].visible == False

    mbd.color = "red"
    mbd.border = True
    mbd.square = True
    mbd.visible = False

    assert mbd.color == "red"
    assert mbd.border == True
    assert mbd.square == True
    assert mbd.visible == False

    assert mbd[0, 0].color == "red"
    assert mbd[0, 0].border == True
    assert mbd[0, 0].square == True
    assert mbd[0, 0].visible == False
Beispiel #10
0
def test_when_connect_disconnect():
    mbd = MockBlueDot()

    event_connect = Event()
    mbd.when_client_connects = lambda: event_connect.set()

    event_disconnect = Event()
    mbd.when_client_disconnects = lambda: event_disconnect.set()

    assert not event_connect.is_set()
    mbd.mock_client_connected()
    assert event_connect.is_set()

    assert not event_disconnect.is_set()
    mbd.mock_client_disconnected()
    assert event_disconnect.is_set()
Beispiel #11
0
def test_rotation():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def rotation(dot, col, row):
        event_rotated = Event()
        dot.when_rotated = lambda: event_rotated.set()
        assert not event_rotated.is_set()

        #press the blue dot, no rotation
        mbd.mock_blue_dot_pressed(col, row, -0.1, 1)
        assert not event_rotated.is_set()
        r = BlueDotRotation(mbd[col, row].interaction,
                            mbd[0, 0].rotation_segments)
        assert not r.valid
        assert r.value == 0
        assert not r.clockwise
        assert not r.anti_clockwise

        #rotate clockwise
        event_rotated.clear()
        mbd.mock_blue_dot_moved(col, row, 0.1, 1)
        assert event_rotated.is_set()
        r = BlueDotRotation(mbd[col, row].interaction,
                            mbd[col, row].rotation_segments)
        assert r.value == 1
        assert r.valid
        assert r.clockwise
        assert not r.anti_clockwise

        #rotate anti-clockwise
        event_rotated.clear()
        mbd.mock_blue_dot_moved(col, row, -0.1, 1)
        assert event_rotated.is_set()
        r = BlueDotRotation(mbd[col, row].interaction,
                            mbd[col, row].rotation_segments)
        assert r.value == -1
        assert r.valid
        assert not r.clockwise
        assert r.anti_clockwise

        # background
        # rotate clockwise again
        event_rotated.clear()
        dot.set_when_rotated(lambda: delay_function(event_rotated.set, 0.2),
                             background=True)
        mbd.mock_blue_dot_moved(col, row, 0.1, 1)
        assert not event_rotated.is_set()
        assert event_rotated.wait(1)

    rotation(mbd, 0, 0)
    rotation(mbd[0, 0], 0, 0)

    mbd.resize(2, 1)

    rotation(mbd, 1, 0)
    rotation(mbd[1, 0], 1, 0)
Beispiel #12
0
def test_default_values():
    mbd = MockBlueDot()
    assert mbd.device == "hci0"
    assert mbd.port == 1
    assert mbd.running

    assert mbd.print_messages
    assert mbd.double_press_time == 0.3
    assert mbd.rotation_segments == 8

    assert mbd.when_client_connects == None
    assert mbd.when_client_disconnects == None
    assert mbd.when_pressed == None
    assert mbd.when_double_pressed == None
    assert mbd.when_moved == None
    assert mbd.when_released == None
    assert mbd.when_swiped == None
Beispiel #13
0
def test_position():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def position(dot, col, row):
        mbd.mock_blue_dot_pressed(col, row, 0, 0)
        assert not mbd.position.top
        assert mbd.position.middle
        assert not mbd.position.bottom
        assert not mbd.position.left
        assert not mbd.position.right

        mbd.mock_blue_dot_moved(col, row, 1, 0)
        assert not mbd.position.top
        assert not mbd.position.middle
        assert not mbd.position.bottom
        assert not mbd.position.left
        assert mbd.position.right

        mbd.mock_blue_dot_moved(col, row, -1, 0)
        assert not mbd.position.top
        assert not mbd.position.middle
        assert not mbd.position.bottom
        assert mbd.position.left
        assert not mbd.position.right

        mbd.mock_blue_dot_moved(col, row, 0, 1)
        assert mbd.position.top
        assert not mbd.position.middle
        assert not mbd.position.bottom
        assert not mbd.position.left
        assert not mbd.position.right

        mbd.mock_blue_dot_moved(col, row, 0, -1)
        assert not mbd.position.top
        assert not mbd.position.middle
        assert mbd.position.bottom
        assert not mbd.position.left
        assert not mbd.position.right

        mbd.mock_blue_dot_moved(col, row, 0.1234, -0.4567)
        assert mbd.position.x == 0.1234
        assert mbd.position.y == -0.4567

        mbd.mock_blue_dot_moved(col, row, 1, 0)
        assert mbd.position.distance == 1
        assert mbd.position.angle == 90

    position(mbd, 0, 0)
    position(mbd[0, 0], 0, 0)
    mbd.resize(2, 1)
    position(mbd[1, 0], 1, 0)
Beispiel #14
0
def test_pressed_moved_released():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def pressed_moved_released(dot, col, row):

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

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

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

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

        #wait_for_release
        delay_function(lambda: mbd.mock_blue_dot_released(col, row, 0, 0), 0.5)
        assert dot.wait_for_release(1)
        assert not dot.wait_for_press(0)

    def not_pressed(dot, col, row):
        assert not dot.is_pressed
        assert not dot.value == 1

        mbd.mock_blue_dot_pressed(col, row, 0, 0)
        assert not dot.is_pressed
        assert not dot.value == 1

    # single button
    pressed_moved_released(mbd, 0, 0)
    pressed_moved_released(mbd[0, 0], 0, 0)

    # resize to 2 buttons
    mbd.resize(2, 1)

    # test second button and main
    pressed_moved_released(mbd, 1, 0)
    pressed_moved_released(mbd[1, 0], 1, 0)

    # test second button isn't pressed by first
    not_pressed(mbd[1, 0], 0, 0)
Beispiel #15
0
def test_dot_appearance():
    mbd = MockBlueDot()
    assert mbd.color == "blue"
    assert mbd.border == False
    assert mbd.square == False
    assert mbd.visible == True
    mbd.color = "red"
    mbd.border = True
    mbd.square = True
    mbd.visible = False
    assert mbd.color == "red"
    assert mbd.border == True
    assert mbd.square == True
    assert mbd.visible == False
Beispiel #16
0
def test_interaction():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def interaction(dot, col, row):
        assert dot.interaction == None

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

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

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

    interaction(mbd[0, 0], 0, 0)

    mbd.resize(2, 1)

    interaction(mbd[1, 0], 1, 0)
Beispiel #17
0
def test_double_press():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def simulate_double_press():
        #sleep longer than the double press time, to clear any past double presses!
        sleep(mbd.double_press_time + 0.1)
        mbd.mock_blue_dot_pressed(0, 0)
        mbd.mock_blue_dot_released(0, 0)
        mbd.mock_blue_dot_pressed(0, 0)
        mbd.mock_blue_dot_released(0, 0)

    def simulate_failed_double_press():
        sleep(mbd.double_press_time + 0.1)
        mbd.mock_blue_dot_pressed(0, 0)
        mbd.mock_blue_dot_released(0, 0)
        sleep(mbd.double_press_time + 0.1)
        mbd.mock_blue_dot_pressed(0, 0)
        mbd.mock_blue_dot_released(0, 0)

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

    simulate_failed_double_press()
    assert not event_double_pressed.is_set()

    simulate_double_press()
    assert event_double_pressed.is_set()

    # wait for double press
    # double press the blue dot
    delay_function(simulate_double_press, 0.5)

    # wait for double press
    assert mbd.wait_for_double_press(1)

    # dont double press the blue dot
    delay_function(simulate_failed_double_press, 0.5)
    assert not mbd.wait_for_double_press(1)
Beispiel #18
0
def test_when_pressed_moved_released():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def when_pressed_moved_released(dot, col, row):
        #when_pressed
        event_pressed = Event()
        dot.when_pressed = lambda: event_pressed.set()

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

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

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

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

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

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

        assert not event_double_pressed.is_set()
        mbd.mock_blue_dot_pressed(col, row, 0, 0)
        assert event_double_pressed.is_set()

    when_pressed_moved_released(mbd, 0, 0)
    when_pressed_moved_released(mbd[0, 0], 0, 0)

    mbd.resize(2, 1)

    when_pressed_moved_released(mbd, 1, 0)
    when_pressed_moved_released(mbd[1, 0], 1, 0)
Beispiel #19
0
def test_when_connect_disconnect_background():
    mbd = MockBlueDot()

    event_connect = Event()
    mbd.set_when_client_connects(
        lambda: delay_function(event_connect.set, 0.2), background=True)

    event_disconnect = Event()
    mbd.set_when_client_disconnects(
        lambda: delay_function(event_disconnect.set, 0.2), background=True)
    mbd.when_client_disconnects = lambda: event_disconnect.set()

    assert not event_connect.is_set()
    mbd.mock_client_connected()
    assert not event_connect.is_set()
    assert event_connect.wait(1)

    assert not event_disconnect.is_set()
    mbd.mock_client_disconnected()
    assert not event_disconnect.is_set()
    assert event_disconnect.wait(1)
Beispiel #20
0
def test_when_pressed_moved_released_background():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def when_pressed_moved_released_background(dot, col, row):

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

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

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

        #when_released
        event_released = Event()
        dot.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(col, row, 0, 0)
        assert not event_pressed.is_set()
        assert event_pressed.wait(1)

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

        assert not event_released.is_set()
        mbd.mock_blue_dot_released(col, row, 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(col, row, 0, 0)
        mbd.mock_blue_dot_moved(col, row, 1, 1)
        mbd.mock_blue_dot_released(col, row, 0, 0)
        assert not event_double_pressed.is_set()
        mbd.mock_blue_dot_pressed(col, row, 0, 0)
        assert not event_double_pressed.is_set()
        assert event_double_pressed.wait(1)

    when_pressed_moved_released_background(mbd, 0, 0)
    when_pressed_moved_released_background(mbd[0, 0], 0, 0)

    mbd.resize(2, 1)

    when_pressed_moved_released_background(mbd, 1, 0)
    when_pressed_moved_released_background(mbd[1, 0], 1, 0)
Beispiel #21
0
def test_rotation():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    event_rotated = Event()
    mbd.when_rotated = lambda: event_rotated.set()
    assert not event_rotated.is_set()

    #press the blue dot, no rotation
    mbd.mock_blue_dot_pressed(-0.1, 1)
    assert not event_rotated.is_set()
    r = BlueDotRotation(mbd.interaction, mbd.rotation_segments)
    assert not r.valid
    assert r.value == 0
    assert not r.clockwise
    assert not r.anti_clockwise

    #rotate clockwise
    event_rotated.clear()
    mbd.mock_blue_dot_moved(0.1, 1)
    assert event_rotated.is_set()
    r = BlueDotRotation(mbd.interaction, mbd.rotation_segments)
    assert r.value == 1
    assert r.valid
    assert r.clockwise
    assert not r.anti_clockwise

    #rotate anti-clockwise
    event_rotated.clear()
    mbd.mock_blue_dot_moved(-0.1, 1)
    assert event_rotated.is_set()
    r = BlueDotRotation(mbd.interaction, mbd.rotation_segments)
    assert r.value == -1
    assert r.valid
    assert not r.clockwise
    assert r.anti_clockwise
Beispiel #22
0
def test_swipe():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    def swipe(dot, col, row):
        def simulate_swipe(col, row, pressed_x, pressed_y, moved_x, moved_y,
                           released_x, released_y):

            mbd.mock_blue_dot_pressed(col, row, pressed_x, pressed_y)
            mbd.mock_blue_dot_moved(col, row, moved_x, moved_y)
            mbd.mock_blue_dot_released(col, row, released_x, released_y)

        #wait_for_swipe
        delay_function(lambda: simulate_swipe(col, row, -1, 0, 0, 0, 1, 0),
                       0.5)
        assert dot.wait_for_swipe(1)

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

        #simulate swipe left to right
        simulate_swipe(col, row, -1, 0, 0, 0, 1, 0)
        #check event
        assert event_swiped.is_set()
        #get the swipe
        swipe = BlueDotSwipe(mbd[col, row].interaction)
        assert swipe.right
        assert not swipe.left
        assert not swipe.up
        assert not swipe.down

        #right to left
        event_swiped.clear()
        simulate_swipe(col, row, 1, 0, 0, 0, -1, 0)
        assert event_swiped.is_set()
        swipe = BlueDotSwipe(mbd[col, row].interaction)
        assert not swipe.right
        assert swipe.left
        assert not swipe.up
        assert not swipe.down

        #bottom to top
        event_swiped.clear()
        simulate_swipe(col, row, 0, -1, 0, 0, 0, 1)
        assert event_swiped.is_set()
        swipe = BlueDotSwipe(mbd[col, row].interaction)
        assert not swipe.right
        assert not swipe.left
        assert swipe.up
        assert not swipe.down

        #top to bottom
        event_swiped.clear()
        simulate_swipe(col, row, 0, 1, 0, 0, 0, -1)
        assert event_swiped.is_set()
        swipe = BlueDotSwipe(mbd[col, row].interaction)
        assert not swipe.right
        assert not swipe.left
        assert not swipe.up
        assert swipe.down

        # background
        event_swiped.clear()
        dot.set_when_swiped(lambda: delay_function(event_swiped.set, 0.2),
                            background=True)
        simulate_swipe(col, row, 0, 1, 0, 0, 0, -1)
        assert not event_swiped.is_set()
        assert event_swiped.wait(1)

    swipe(mbd, 0, 0)
    swipe(mbd[0, 0], 0, 0)

    mbd.resize(2, 1)

    swipe(mbd, 1, 0)
    swipe(mbd[1, 0], 1, 0)
Beispiel #23
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
Beispiel #24
0
def test_position():
    mbd = MockBlueDot()
    mbd.mock_client_connected()

    mbd.mock_blue_dot_pressed(0, 0)
    assert not mbd.position.top
    assert mbd.position.middle
    assert not mbd.position.bottom
    assert not mbd.position.left
    assert not mbd.position.right

    mbd.mock_blue_dot_moved(1, 0)
    assert not mbd.position.top
    assert not mbd.position.middle
    assert not mbd.position.bottom
    assert not mbd.position.left
    assert mbd.position.right

    mbd.mock_blue_dot_moved(-1, 0)
    assert not mbd.position.top
    assert not mbd.position.middle
    assert not mbd.position.bottom
    assert mbd.position.left
    assert not mbd.position.right

    mbd.mock_blue_dot_moved(0, 1)
    assert mbd.position.top
    assert not mbd.position.middle
    assert not mbd.position.bottom
    assert not mbd.position.left
    assert not mbd.position.right

    mbd.mock_blue_dot_moved(0, -1)
    assert not mbd.position.top
    assert not mbd.position.middle
    assert mbd.position.bottom
    assert not mbd.position.left
    assert not mbd.position.right

    mbd.mock_blue_dot_moved(0.1234, -0.4567)
    assert mbd.position.x == 0.1234
    assert mbd.position.y == -0.4567

    mbd.mock_blue_dot_moved(1, 0)
    assert mbd.position.distance == 1
    assert mbd.position.angle == 90
Beispiel #25
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()
Beispiel #26
0
from bluedot import MockBlueDot
from time import sleep, time

mbd = MockBlueDot(auto_start_server = False)

def pressed(pos):
    print("Pressed: x={} y={} angle={} distance={} middle={} top={} bottom={} left={} right={} time={}".format(pos.x, pos.y, pos.angle, pos.distance, pos.middle, pos.top, pos.bottom, pos.left, pos.right, time()))

def released():
    print("Released: x={} y={}".format(dot.position.x, dot.position.y))
    print()

def moved(pos):
    print("Moved: x={} y={}".format(pos.x, pos.y))

mbd.when_pressed = pressed
mbd.when_released = released
mbd.when_moved = moved
mbd.start()

#launch a mock app
mbd.launch_mock_app()

try:
    while True:
        sleep(1)
finally:
    mbd.mock_client_disconnected()
    mbd.stop()
Beispiel #27
0
from bluedot import MockBlueDot

def say_hello():
    print("Hello World")

bd = MockBlueDot()
bd.when_pressed = say_hello

bd.mock_client_connected()
bd.mock_blue_dot_pressed(0,0)
Beispiel #28
0
def test_button_does_not_exist():
    mbd = MockBlueDot()

    with pytest.raises(ButtonDoesNotExist):
        button = mbd[0, 1]
Beispiel #29
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)
Beispiel #30
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