29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
import os
|
|
from pathlib import Path
|
|
from datetime import date
|
|
from openvpncertupdate import build_ovpn
|
|
|
|
def setup_pki(tmp_path, cn, inline_content="<ca>X</ca>"):
|
|
pki = tmp_path / "pki"
|
|
private_dir = pki / "inline" / "private"
|
|
private_dir.mkdir(parents=True)
|
|
(private_dir / f"{cn}.inline").write_text(inline_content)
|
|
return str(pki)
|
|
|
|
def test_creates_file_with_combined_content(tmp_path):
|
|
pki = setup_pki(tmp_path, "alice", "<ca>CERT</ca>")
|
|
tmpl = tmp_path / "t.ovpn"
|
|
tmpl.write_text("client\ndev tun\n")
|
|
result = build_ovpn("alice", pki, str(tmpl), str(tmp_path / "out"), "vpn.ovpn")
|
|
content = Path(result).read_text()
|
|
assert "client" in content
|
|
assert "CERT" in content
|
|
|
|
def test_output_path_has_cn_and_date(tmp_path):
|
|
pki = setup_pki(tmp_path, "bob")
|
|
tmpl = tmp_path / "t.ovpn"; tmpl.write_text("")
|
|
today = date.today().strftime("%Y-%m-%d")
|
|
result = build_ovpn("bob", pki, str(tmpl), str(tmp_path / "out"), "vpn.ovpn")
|
|
assert f"bob_{today}" in result
|
|
assert result.endswith("vpn.ovpn")
|