def _format_entry(entry: Directive, currency_column: int) -> str: """Wrapper that strips unnecessary whitespace from format_entry.""" meta = { key: entry.meta[key] for key in entry.meta if not key.startswith("_") } entry = entry._replace(meta=meta) string = align(format_entry(entry), currency_column) string = string.replace("<class 'beancount.core.number.MISSING'>", "") return "\n".join((line.rstrip() for line in string.split("\n")))
def _format_entry(entry, fava_options): """Wrapper that strips unnecessary whitespace from format_entry.""" meta = { key: entry.meta[key] for key in entry.meta if not key.startswith("_") } entry = entry._replace(meta=meta) string = align(format_entry(entry), fava_options) return "\n".join((line.rstrip() for line in string.split("\n")))
def test_api_format_source(test_client: FlaskClient, example_ledger: FavaLedger) -> None: path = Path(example_ledger.beancount_file_path) url = "/long-example/api/format_source" payload = path.read_text("utf-8") response = test_client.put(url, json={"source": payload}) assert_api_success(response, align(payload, 61))
def test_api_format_source(app, test_client): with app.test_request_context(): app.preprocess_request() url = flask.url_for('json_api.format_source') path = app.config['BEANCOUNT_FILES'][0] payload = open(path).read() result = test_client.post(url, data=flask.json.dumps({'source': payload}), content_type='application/json') data = flask.json.loads(result.get_data(True)) assert data == {'payload': align(payload, {}), 'success': True}
def test_api_format_source_options(app: Flask, test_client: FlaskClient, monkeypatch: MonkeyPatch) -> None: with app.test_request_context("/long-example/"): app.preprocess_request() path = Path(g.ledger.beancount_file_path) payload = path.read_text("utf-8") url = url_for("json_api.put_format_source") monkeypatch.setattr(g.ledger.fava_options, "currency_column", 90) response = test_client.put(url, json={"source": payload}) assert_api_success(response, align(payload, 90))
def test_api_format_source(app, test_client) -> None: with app.test_request_context("/long-example/"): app.preprocess_request() url = flask.url_for("json_api.format_source") path = flask.g.ledger.beancount_file_path payload = open(path, encoding="utf-8").read() response = test_client.put( url, data=dumps({"source": payload}), content_type="application/json", ) assert_api_success(response, align(payload, 61))
def test_api_format_source(app, test_client): with app.test_request_context(): app.preprocess_request() url = flask.url_for("json_api.format_source") path = app.config["BEANCOUNT_FILES"][0] payload = open(path, encoding="utf-8").read() result = test_client.put( url, data=flask.json.dumps({"source": payload}), content_type="application/json", ) data = flask.json.loads(result.get_data(True)) assert data == {"data": align(payload, {}), "success": True}
def test_api_format_source(app, test_client): with app.test_request_context(): app.preprocess_request() url = flask.url_for('json_api.format_source') path = app.config['BEANCOUNT_FILES'][0] payload = open(path).read() result = test_client.post( url, data=flask.json.dumps({ 'source': payload }), content_type='application/json') data = flask.json.loads(result.get_data(True)) assert data == {'payload': align(payload, {}), 'success': True}
def test_api_format_source_options(app, test_client, monkeypatch) -> None: with app.test_request_context("/long-example/"): app.preprocess_request() path = g.ledger.beancount_file_path payload = open(path, encoding="utf-8").read() url = url_for("json_api.format_source") monkeypatch.setitem(g.ledger.fava_options, "currency-column", 90) response = test_client.put( url, data=dumps({"source": payload}), content_type="application/json", ) assert_api_success(response, align(payload, 90))
def test_api_format_source_options(app, test_client): # pylint: disable=too-many-function-args path = app.config['BEANCOUNT_FILES'][0] payload = open(path).read() with app.test_request_context(): app.preprocess_request() url = flask.url_for('json_api.format_source') old_currency_column = flask.g.ledger.fava_options['currency-column'] flask.g.ledger.fava_options['currency-column'] = 90 result = test_client.post(url, data=flask.json.dumps({'source': payload}), content_type='application/json') data = flask.json.loads(result.get_data(True)) assert data == { 'payload': align(payload, {'currency-column': 90}), 'success': True } flask.g.ledger.fava_options['currency-column'] = old_currency_column
def test_api_format_source_options(app, test_client): # pylint: disable=too-many-function-args path = app.config["BEANCOUNT_FILES"][0] payload = open(path, encoding="utf-8").read() with app.test_request_context(): app.preprocess_request() url = flask.url_for("json_api.format_source") old_currency_column = flask.g.ledger.fava_options["currency-column"] flask.g.ledger.fava_options["currency-column"] = 90 result = test_client.put( url, data=flask.json.dumps({"source": payload}), content_type="application/json", ) data = flask.json.loads(result.get_data(True)) assert data == { "data": align(payload, {"currency-column": 90}), "success": True, } flask.g.ledger.fava_options["currency-column"] = old_currency_column
def test_api_format_source_options(app, test_client): # pylint: disable=too-many-function-args path = app.config['BEANCOUNT_FILES'][0] payload = open(path).read() with app.test_request_context(): app.preprocess_request() url = flask.url_for('json_api.format_source') old_currency_column = flask.g.ledger.fava_options['currency-column'] flask.g.ledger.fava_options['currency-column'] = 90 result = test_client.post( url, data=flask.json.dumps({ 'source': payload }), content_type='application/json') data = flask.json.loads(result.get_data(True)) assert data == { 'payload': align(payload, {'currency-column': 90}), 'success': True } flask.g.ledger.fava_options['currency-column'] = old_currency_column
def format_source(request_data) -> str: """Format beancount file.""" return align( request_data["source"], g.ledger.fava_options["currency-column"] )
def format_source(request_data): """Format beancount file.""" return align(request_data["source"], g.ledger.fava_options)
def format_source(request_data): """Format beancount file.""" aligned = align(request_data['source'], g.ledger.fava_options) return {'payload': aligned}
def _format_entry(entry, fava_options): """Wrapper that strips unnecessary whitespace from format_entry.""" string = align(format_entry(entry), fava_options) return '\n'.join((line.rstrip() for line in string.split('\n')))
def put_format_source(source: str) -> str: """Format beancount file.""" return align(source, g.ledger.fava_options.currency_column)