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')
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
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))
def test_get_server_actions(assert_server_actions): server_actions = get_server_actions() assert assert_server_actions == server_actions
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