Skip to content
Snippets Groups Projects
test_build.py 923 B
Newer Older
Simon Rose's avatar
Simon Rose committed
from re import sub
Simon Rose's avatar
Simon Rose committed
import pytest
Simon Rose's avatar
Simon Rose committed
import subprocess
Simon Rose's avatar
Simon Rose committed
from distutils import dir_util
Simon Rose's avatar
Simon Rose committed
from git import Repo
from pathlib import Path
Simon Rose's avatar
Simon Rose committed
from .utils import *
Simon Rose's avatar
Simon Rose committed


TEST_DATA = Path(__file__).absolute().parent / "data"


Simon Rose's avatar
Simon Rose committed
@pytest.mark.parametrize(
    "wrapper",
    [{"templates": "database.db", "sources": "", "dbds": "", "headers": ""}],
    indirect=True,
)
def test_patch(wrapper):
    wrapper_dir = wrapper
Simon Rose's avatar
Simon Rose committed
    rc, outs, _ = run_make(
        wrapper_dir,
        "init",
        __DEBUG_VERSION="0.0.0",
Simon Rose's avatar
Simon Rose committed
    )
Simon Rose's avatar
Simon Rose committed
    assert rc == 0
Simon Rose's avatar
Simon Rose committed
    assert "You are in the local source mode" in outs.decode("utf-8")

Simon Rose's avatar
Simon Rose committed
    rc, _, _ = run_make(wrapper_dir, "patch")
    assert rc == 0
Simon Rose's avatar
Simon Rose committed
    with open(wrapper_dir / "build" / "database.db", "r") as f:
        db_contents = f.read()
    assert 'field(DESC, "OK")' in db_contents
    assert not "Bad" in db_contents

    run_make(wrapper_dir, "build")
    assert any((wrapper_dir / "build").glob("O.*"))