import json
import os.path
from io import BytesIO

from wpd.__main__ import run

version = open(
    os.path.join(os.path.dirname(os.path.dirname(__file__)), "wpd", "VERSION")
).read().strip()


def test_run_1():
    input = BytesIO(b"""{"id": "1", "size": 16}\n<p>paragraph</p>\n""")
    output = BytesIO()

    run(input, output)

    output.seek(0)

    line = output.readline()
    head = json.loads(line.decode("utf-8"))
    assert head == {"wpd": "wpd", "version": version, "protocol": "1"}

    line = output.readline()
    res = json.loads(line.decode("utf-8"))
    print(res)
    assert res.get("error") is None

    assert "size" in res
    if res.get("size") is not None:
        with open("test_run_1.pdf", "wb") as f:
            f.write(output.read(res["size"]))