Newer
Older
TEST_DATA = Path(__file__).absolute().parent / "data"
MODULE_VERSION = "0.0.0+0"
DB_FILE = """record(ai, "TEST") {
}
"""
PATCH_FILE = """
diff --git database.db database.db
index 1806ff6..8701832 100644
--- database.db
+++ database.db
@@ -1,3 +1,3 @@
record(ai, "TEST") {{
-
+ field(DESC, "{desc}")
}}
"""
@pytest.mark.parametrize(
"wrapper",
[{"templates": "database.db", "sources": "", "dbds": "", "headers": ""}],
indirect=True,
)
def test_patch(wrapper):
db_path = wrapper / TEST_MODULE_NAME / "database.db"
with open(db_path, "w") as f:
f.write(DB_FILE)
patch_path = wrapper / "patch" / "Site" / MODULE_VERSION / "apply.p0.patch"
patch_path.parent.mkdir(parents=True)
with open(patch_path, "w") as f:
f.write(PATCH_FILE.format(desc="OK"))
assert "You are in the local source mode" in outs.decode("utf-8")
rc, _, _ = run_make(wrapper, "patch", __DEBUG_VERSION=MODULE_VERSION)
db_contents = f.read()
assert 'field(DESC, "OK")' in db_contents
assert not "Bad" in db_contents
run_make(wrapper, "build", __DEBUG_VERSION=MODULE_VERSION)
assert any((wrapper / TEST_MODULE_NAME).glob("O.*"))