Feat: e2e test on default planner
This commit is contained in:
parent
1bcbf2a9a6
commit
1fdf223689
@ -68,7 +68,7 @@ def default_tasks_builder(
|
||||
for subject in subjects:
|
||||
source = naming.template2source(template, subject)
|
||||
|
||||
tasks.append(generate(template, subject, source))
|
||||
tasks.append(generate(template, {**subject, **opt}, source))
|
||||
|
||||
if not no_pdf:
|
||||
pdf = naming.source2pdf(source)
|
||||
|
@ -1,4 +1,6 @@
|
||||
import subprocess
|
||||
|
||||
from bopytex.message import Message
|
||||
from ..message import SubprocessMessage
|
||||
|
||||
|
||||
@ -9,5 +11,6 @@ def latexmk(args: dict, deps, output):
|
||||
stderr=subprocess.PIPE,
|
||||
universal_newlines=True
|
||||
)
|
||||
return SubprocessMessage(compile_process)
|
||||
#return SubprocessMessage(compile_process)
|
||||
return Message(compile_process.wait(), list(compile_process.stdout), list(compile_process.stderr))
|
||||
|
||||
|
61
test/test_e2e.py
Normal file
61
test/test_e2e.py
Normal file
@ -0,0 +1,61 @@
|
||||
import os
|
||||
import jinja2
|
||||
from pathlib import Path
|
||||
from bopytex.message import Message
|
||||
from bopytex.planner.default_planner import default_planner
|
||||
from bopytex.service import orcherstrator
|
||||
from bopytex.worker import Dispatcher
|
||||
from bopytex.worker.clean import clean
|
||||
from bopytex.worker.compile import latexmk
|
||||
from bopytex.worker.generate import generate
|
||||
from bopytex.worker.join_pdf import pdfjam
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def template_path(tmp_path):
|
||||
template = tmp_path / "tpl_source.tex"
|
||||
with open(template, "w") as tpl:
|
||||
tpl.write(
|
||||
"""
|
||||
\\documentclass{article}
|
||||
|
||||
\\begin{document}
|
||||
First document.
|
||||
|
||||
Subject {{ subject }}
|
||||
\\end{document}
|
||||
"""
|
||||
)
|
||||
return template
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def jinja2_env(tmp_path):
|
||||
templateEnv = jinja2.Environment(loader=jinja2.FileSystemLoader(tmp_path))
|
||||
return templateEnv
|
||||
|
||||
|
||||
def test_with_default_planner(template_path, jinja2_env, tmp_path):
|
||||
os.chdir(tmp_path)
|
||||
|
||||
options = {
|
||||
"template": str(template_path.name),
|
||||
"quantity_subjects": 3,
|
||||
"corr": False,
|
||||
"no_join": False,
|
||||
"no_pdf": False,
|
||||
"jinja2": {
|
||||
"environment": jinja2_env,
|
||||
},
|
||||
}
|
||||
dispatcher = Dispatcher(
|
||||
{"GENERATE": generate, "COMPILE": latexmk, "JOIN": pdfjam, "CLEAN": clean}
|
||||
)
|
||||
orcherstre = orcherstrator(options, planner=default_planner, dispatcher=dispatcher)
|
||||
|
||||
messages = []
|
||||
for message in orcherstre:
|
||||
assert message.status == 0
|
||||
|
||||
assert Path("joined_source.pdf").exists()
|
@ -14,13 +14,27 @@ def test_tasks_builder_generate():
|
||||
assert tasks == [
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "01"},
|
||||
args={
|
||||
"number": "01",
|
||||
"corr": False,
|
||||
"no_join": False,
|
||||
"no_pdf": True,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="01_source.tex",
|
||||
),
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "02"},
|
||||
args={
|
||||
"number": "02",
|
||||
"corr": False,
|
||||
"no_join": False,
|
||||
"no_pdf": True,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="02_source.tex",
|
||||
),
|
||||
@ -38,7 +52,14 @@ def test_tasks_builder_generate_compile():
|
||||
assert tasks == [
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "01"},
|
||||
args={
|
||||
"number": "01",
|
||||
"corr": False,
|
||||
"no_join": True,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="01_source.tex",
|
||||
),
|
||||
@ -50,7 +71,14 @@ def test_tasks_builder_generate_compile():
|
||||
),
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "02"},
|
||||
args={
|
||||
"number": "02",
|
||||
"corr": False,
|
||||
"no_join": True,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="02_source.tex",
|
||||
),
|
||||
@ -73,7 +101,14 @@ def test_tasks_builder_generate_compile_join():
|
||||
assert tasks == [
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "01"},
|
||||
args={
|
||||
"number": "01",
|
||||
"corr": False,
|
||||
"no_join": False,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="01_source.tex",
|
||||
),
|
||||
@ -85,7 +120,14 @@ def test_tasks_builder_generate_compile_join():
|
||||
),
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "02"},
|
||||
args={
|
||||
"number": "02",
|
||||
"corr": False,
|
||||
"no_join": False,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="02_source.tex",
|
||||
),
|
||||
@ -109,14 +151,21 @@ def test_tasks_builder_generate_compile_corr():
|
||||
options={
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
"corr": 1,
|
||||
"no_join": 1,
|
||||
"corr": True,
|
||||
"no_join": True,
|
||||
}
|
||||
)
|
||||
assert tasks == [
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "01"},
|
||||
args={
|
||||
"number": "01",
|
||||
"corr": True,
|
||||
"no_join": True,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="01_source.tex",
|
||||
),
|
||||
@ -140,7 +189,14 @@ def test_tasks_builder_generate_compile_corr():
|
||||
),
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "02"},
|
||||
args={
|
||||
"number": "02",
|
||||
"corr": True,
|
||||
"no_join": True,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="02_source.tex",
|
||||
),
|
||||
@ -177,7 +233,14 @@ def test_tasks_builder_generate_compile_corr_joined():
|
||||
assert tasks == [
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "01"},
|
||||
args={
|
||||
"number": "01",
|
||||
"corr": True,
|
||||
"no_join": False,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="01_source.tex",
|
||||
),
|
||||
@ -201,7 +264,14 @@ def test_tasks_builder_generate_compile_corr_joined():
|
||||
),
|
||||
Task(
|
||||
action="GENERATE",
|
||||
args={"number": "02"},
|
||||
args={
|
||||
"number": "02",
|
||||
"corr": True,
|
||||
"no_join": False,
|
||||
"no_pdf": False,
|
||||
"template": "tpl_source.tex",
|
||||
"subjects": [{"number": "01"}, {"number": "02"}],
|
||||
},
|
||||
deps=["tpl_source.tex"],
|
||||
output="02_source.tex",
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user