def test_get_server_actions():
    action_name = 'echo'

    expected = ({'action': action_name, 'controller': 'get_echo'}, )

    response = get_server_actions()

    assert type(expected) == type(response)
    assert expected[0].get('action') == response[0].get('action')
Exemplo n.º 2
0
def handle_default_request(row_request):
    request = json.loads(row_request.decode(ENCODING))

    server_actions = get_server_actions()
    action_name = request.get('action')

    if validate_request(request):
        controller = resolve(action_name, server_actions)
        if controller:
            try:
                response = controller(request)
            except Exception as err:
                logging.critical(err)
                response = make_response(request, 500, 'Internal server error')
        else:
            logging.error(f'Action with name {action_name} does not exist')
            response = make_404(request)
    else:
        logging.error(f'Request is no valid')
        response = make_400(request)

    row_response = json.dumps(response).encode(ENCODING)
    return row_response
Exemplo n.º 3
0
        host = conf.get('host', host)
        port = conf.get('port', port)
        buffersize = conf.get('buffersize', buffersize)

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s',
                    handlers=[
                        logging.FileHandler(file_name, encoding=ENCODING),
                        logging.StreamHandler()
                    ])

try:
    sock = socket.socket()
    sock.bind((host, port))
    sock.listen(5)
    server_actions = get_server_actions()

    logging.info('Server started')

    while True:
        client, address = sock.accept()

        logging.info(f'Client with address { address } was detected')

        b_request = client.recv(buffersize)
        request = json.loads(b_request.decode(encoding))

        response = check_validate(request, server_actions)

        s_response = json.dumps(response)
        client.send(s_response.encode(encoding))
Exemplo n.º 4
0
def test_get_server_actions(assert_server_actions):
    server_actions = get_server_actions()

    assert assert_server_actions == server_actions
Exemplo n.º 5
0
def test_expected_server_actions(expected_actions):
    server_actions = get_server_actions()
    for server_action in server_actions:
        assert server_action.get('action') in expected_actions