You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcpcfg/t/test_ngcpcfg_apply.py

103 lines
2.7 KiB

#!/usr/bin/env py.test-3
from pathlib import Path
import pytest
import re
def create_change(path, text="hello"):
if not isinstance(path, Path):
path = Path(path).resolve()
with path.open("a") as file_object:
# Append text at the end of file
file_object.write(text)
@pytest.mark.apply
def test_apply_no_commit_msg(ngcpcfg, ngcpcfgcli):
env, cfg = ngcpcfg(
{
"TEMPLATE_POOL_BASE": "fixtures/apply_templates",
}
)
# create a change in repo
create_change(env["NGCPCTL_MAIN"].joinpath("hello.yml"), "whatever: yes")
out = ngcpcfgcli(
"apply",
env=env,
)
assert re.search(r"Please provide commit message", out.stdout)
assert re.search(r"Error: Uncommitted configuration files found", out.stderr)
assert out.returncode != 0
@pytest.mark.apply
def test_apply_no_commit_msg_options(ngcpcfg, ngcpcfgcli):
env, cfg = ngcpcfg(
{
"TEMPLATE_POOL_BASE": "fixtures/apply_templates",
}
)
# create a change in repo
create_change(env["NGCPCTL_MAIN"].joinpath("hello.yml"), "whatever: yes")
out = ngcpcfgcli(
"apply",
"--dry-run",
env=env,
)
assert re.search(r"Please provide commit message", out.stdout)
assert re.search(r"apply --dry-run", out.stderr)
assert out.returncode != 0
@pytest.mark.apply
def test_apply_with_commit_msg(ngcpcfg, ngcpcfgcli):
commit_msg = "whatever commit message"
env, cfg = ngcpcfg(
{
"TEMPLATE_POOL_BASE": "fixtures/apply_templates",
}
)
# create a change in repo
create_change(env["NGCPCTL_MAIN"].joinpath("hello.yml"), "whatever: yes")
out = ngcpcfgcli(
"apply",
commit_msg,
env=env,
)
assert out.returncode == 0
assert re.search(r"Generating .+/etc/fake.txt: OK", out.stdout)
assert re.search(r"DEBUG: msg:\"{}\"".format(commit_msg), out.stderr)
@pytest.mark.apply
def test_apply_with_commit_msg_options(ngcpcfg, ngcpcfgcli):
commit_msg = "whatever commit message"
env, cfg = ngcpcfg(
{
"TEMPLATE_POOL_BASE": "fixtures/apply_templates",
}
)
# create a change in repo
create_change(env["NGCPCTL_MAIN"].joinpath("hello.yml"), "whatever: yes")
out = ngcpcfgcli(
"apply",
"--ignore-branch-check",
"--dry-run",
commit_msg,
env=env,
)
assert out.returncode == 0
assert re.search(r"Generating .+/etc/fake.txt: OK", out.stdout)
assert re.search(r"DEBUG: msg:\"{}\"".format(commit_msg), out.stderr)
assert re.search(r"DEBUG: DRYRUN = true", out.stderr)
assert re.search(
r"--ignore-branch-check is enabled, not checking for branch 'master'",
out.stdout,
)