Esempio n. 1
0
def main() -> None:
    import traceback
    import sys
    from rotkehlchen.server import RotkehlchenServer
    try:
        rotkehlchen_server = RotkehlchenServer()
    except SystemPermissionError as e:
        print(f'ERROR at initialization: {str(e)}')
        sys.exit(1)
    except SystemExit as e:
        # Mypy here thinks e.code is always None which is not correct according to the docs:
        # https://docs.python.org/3/library/exceptions.html#SystemExit
        if e.code is None or e.code == 0 or e.code == 2:  # type: ignore
            # exit_code 2 is for invalid arguments
            exit_code = 0 if e.code is None else e.code  # type: ignore
            sys.exit(exit_code)
        else:
            tb = traceback.format_exc()
            logging.critical(tb)
            print("Failed to start rotkehlchen backend:\n{}".format(tb))
            sys.exit(1)
    except: # noqa
        tb = traceback.format_exc()
        logging.critical(tb)
        print("Failed to start rotkehlchen backend:\n{}".format(tb))
        sys.exit(1)

    rotkehlchen_server.main()
Esempio n. 2
0
def main():
    import traceback
    import sys
    from rotkehlchen.server import RotkehlchenServer
    try:
        rotkehlchen_server = RotkehlchenServer()
    except:  # noqa
        tb = traceback.format_exc()
        logging.critical(tb)
        print("Failed to start rotkehlchen backend:\n{}".format(tb))
        sys.exit(1)

    rotkehlchen_server.main()
Esempio n. 3
0
def rotkehlchen_server(
    cli_args,
    username,
    blockchain,
    accountant,
    start_with_logged_in_user,
    start_with_valid_premium,
    function_scope_messages_aggregator,
    db_password,
    rotkehlchen_api_key,
    rotkehlchen_api_secret,
):
    """A partially mocked rotkehlchen server instance"""
    with patch.object(argparse.ArgumentParser,
                      'parse_args',
                      return_value=cli_args):
        server = RotkehlchenServer()

    initialize_mock_rotkehlchen_instance(
        rotki=server.rotkehlchen,
        start_with_logged_in_user=start_with_logged_in_user,
        start_with_valid_premium=start_with_valid_premium,
        msg_aggregator=function_scope_messages_aggregator,
        username=username,
        accountant=accountant,
        blockchain=blockchain,
        db_password=db_password,
        rotkehlchen_api_key=rotkehlchen_api_key,
        rotkehlchen_api_secret=rotkehlchen_api_secret,
    )
    return server
Esempio n. 4
0
def main():
    import traceback
    import sys
    from rotkehlchen.server import RotkehlchenServer
    try:
        rotkehlchen_server = RotkehlchenServer()
    except SystemExit as e:
        if e.code is None or e.code == 0:
            sys.exit(0)
        else:
            tb = traceback.format_exc()
            logging.critical(tb)
            print("Failed to start rotkehlchen backend:\n{}".format(tb))
            sys.exit(1)
    except: # noqa
        tb = traceback.format_exc()
        logging.critical(tb)
        print("Failed to start rotkehlchen backend:\n{}".format(tb))
        sys.exit(1)

    rotkehlchen_server.main()
Esempio n. 5
0
def main() -> None:
    try:
        rotkehlchen_server = RotkehlchenServer()
    except SystemPermissionError as e:
        print(f'ERROR at initialization: {str(e)}')
        sys.exit(1)
    except SystemExit as e:
        if e.code is None or e.code == 0 or e.code == 2:
            # exit_code 2 is for invalid arguments
            exit_code = 0 if e.code is None else e.code
            sys.exit(exit_code)
        else:
            tb = traceback.format_exc()
            logging.critical(tb)
            print("Failed to start rotkehlchen backend:\n{}".format(tb))
            sys.exit(1)
    except:  # noqa  # pylint: disable=bare-except
        tb = traceback.format_exc()
        logging.critical(tb)
        print("Failed to start rotkehlchen backend:\n{}".format(tb))
        sys.exit(1)

    rotkehlchen_server.main()
Esempio n. 6
0
def rotkehlchen_server(cli_args, username, blockchain, accountant,
                       start_with_logged_in_user):
    """A partially mocked rotkehlchen server instance"""
    with patch.object(argparse.ArgumentParser,
                      'parse_args',
                      return_value=cli_args):
        server = RotkehlchenServer()

    r = server.rotkehlchen
    if start_with_logged_in_user:
        r.data.unlock(username, '123', create_new=True)
        # Remember accountant fixture has a mocked accounting data dir
        # different to the usual user one
        r.accountant = accountant
        r.blockchain = blockchain
        r.trades_historian = object()
        r.user_is_logged_in = True
    return server