fix(release): package runtime SQL migrations
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import shutil
|
||||
import subprocess
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
REPO = Path(__file__).resolve().parents[2]
|
||||
MIGRATION_PACKAGE_PREFIX = "trex_core/adapters/persistence/sql/"
|
||||
|
||||
|
||||
def test_built_wheel_contains_exact_canonical_migration_inventory(tmp_path: Path):
|
||||
source = tmp_path / "source"
|
||||
source.mkdir()
|
||||
shutil.copy2(REPO / "pyproject.toml", source / "pyproject.toml")
|
||||
shutil.copytree(REPO / "trex_core", source / "trex_core")
|
||||
output = tmp_path / "dist"
|
||||
|
||||
subprocess.run(
|
||||
[
|
||||
"uv",
|
||||
"build",
|
||||
"--wheel",
|
||||
"--no-build-logs",
|
||||
"--no-create-gitignore",
|
||||
"--out-dir",
|
||||
str(output),
|
||||
str(source),
|
||||
],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
|
||||
wheels = list(output.glob("*.whl"))
|
||||
assert len(wheels) == 1
|
||||
expected = sorted(
|
||||
path.relative_to(REPO).as_posix()
|
||||
for path in (REPO / MIGRATION_PACKAGE_PREFIX).glob("*.sql")
|
||||
)
|
||||
assert expected
|
||||
with zipfile.ZipFile(wheels[0]) as wheel:
|
||||
actual = sorted(
|
||||
name
|
||||
for name in wheel.namelist()
|
||||
if name.startswith(MIGRATION_PACKAGE_PREFIX) and name.endswith(".sql")
|
||||
)
|
||||
assert actual == expected
|
||||
Reference in New Issue
Block a user