Beispiel #1
0
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")))
Beispiel #2
0
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")))
Beispiel #3
0
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))
Beispiel #4
0
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}
Beispiel #5
0
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))
Beispiel #6
0
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))
Beispiel #7
0
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}
Beispiel #8
0
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}
Beispiel #9
0
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))
Beispiel #10
0
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
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
def format_source(request_data) -> str:
    """Format beancount file."""
    return align(
        request_data["source"], g.ledger.fava_options["currency-column"]
    )
Beispiel #14
0
def format_source(request_data):
    """Format beancount file."""
    return align(request_data["source"], g.ledger.fava_options)
Beispiel #15
0
def format_source(request_data):
    """Format beancount file."""
    aligned = align(request_data['source'], g.ledger.fava_options)
    return {'payload': aligned}
Beispiel #16
0
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')))
Beispiel #17
0
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')))
Beispiel #18
0
def format_source(request_data):
    """Format beancount file."""
    aligned = align(request_data['source'], g.ledger.fava_options)
    return {'payload': aligned}
Beispiel #19
0
def put_format_source(source: str) -> str:
    """Format beancount file."""
    return align(source, g.ledger.fava_options.currency_column)