mirror of https://github.com/sipwise/ngcpcfg.git
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.
103 lines
2.7 KiB
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,
|
|
)
|