def test_request_get_calls_connection_get_with_correct_params(mocker):
    get_mock = mocker.patch.object(Connection, 'get')
    connection = Connection('http://127.0.0.1:4003')

    resource = Resource(connection)
    resource.request_get('spongebob', params={'foo': 'bar'})

    get_mock.assert_called_once_with('spongebob', params={'foo': 'bar'})
def test_request_delete_calls_connection_delete_with_correct_params(mocker):
    delete_mock = mocker.patch.object(Connection, 'delete')
    connection = Connection('http://127.0.0.1:4003', '2')

    resource = Resource(connection)
    resource.request_delete('spongebob', params={'foo': 'bar'})

    delete_mock.assert_called_once_with('spongebob', params={'foo': 'bar'})
def test_request_post_calls_connection_post_with_correct_params(mocker):
    post_mock = mocker.patch.object(Connection, 'post')
    connection = Connection('http://127.0.0.1:4003')

    resource = Resource(connection)
    resource.request_post('spongebob',
                          data={'one': 'two'},
                          params={'foo': 'bar'})

    post_mock.assert_called_once_with('spongebob',
                                      data={'one': 'two'},
                                      params={'foo': 'bar'})
Beispiel #4
0
def main() -> None:
    print('--- Ping Pong Pi Client starting... ---')
    print('> Server URL:    %s' % SERVER_URL)
    print('> Resource Type: %s' % RESOURCE_TYPE)
    print()

    config = ClientConfig(SERVER_URL)
    display = Display.get_display()
    input = Input.get_input()
    atexit.register(input.clear)
    atexit.register(display.clear)

    try:
        with Resource(RESOURCE_TYPE, config) as resource:
            input.register_key_handler(lambda: handle_input(resource))
            last_status = resource.get_status()
            display.show_message(last_status.name,
                                 get_color_for_status(last_status))
            while True:
                status = resource.get_status()
                if last_status != status:
                    print('Status changed to: %s' % status)
                    display.show_message(status.name,
                                         get_color_for_status(status))
                    last_status = status
                try:
                    sleep(1)
                except KeyboardInterrupt:
                    exit()
    except ConnectionError:
        display.show_message('Initial status check failed - stopping',
                             Color.RED)
Beispiel #5
0
def handle_input(resource: Resource):
    status = resource.get_status()
    if status is ResourceStatus.RESERVED:
        resource.occupy()
    elif status is ResourceStatus.OCCUPIED:
        resource.release()
    elif status is ResourceStatus.FREE:
        resource.occupy()