Compare commits

...
2 Commits
5 changed files with 11 additions and 12 deletions

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@ voxvera = ["templates/**", "src/**", "resources/**", "locales/**", "resources/bi
[project]
name = "voxvera"
version = "0.2.8"
version = "0.2.10"
description = "VoxVera CLI utilities"
readme = "README.md"
authors = [{name = "VoxVera"}]
+5 -5
View File
@@ -134,7 +134,7 @@ class TestFullWorkflow:
"binary_message": "0101010",
}
config_path = tmp_path / "src" / "config.json"
config_path = tmp_path / "config.json"
with open(config_path, "w") as f:
json.dump(config, f)
@@ -233,7 +233,7 @@ class TestFullWorkflow:
"binary_message": "101010",
}
config_path = tmp_path / "src" / "config.json"
config_path = tmp_path / "config.json"
with open(config_path, "w") as f:
json.dump(config, f)
@@ -368,7 +368,7 @@ class TestSiteFiles:
"binary_message": "",
}
config_path = tmp_path / "src" / "config.json"
config_path = tmp_path / "config.json"
with open(config_path, "w") as f:
json.dump(config, f)
@@ -398,8 +398,8 @@ class TestErrorHandling:
monkeypatch.setattr(cli, "ROOT", tmp_path)
# Try to serve without building first
config_path = tmp_path / "src" / "config.json"
config_path.parent.mkdir(parents=True)
config_path = tmp_path / "config.json"
config_path.parent.mkdir(parents=True, exist_ok=True)
config_path.write_text(
json.dumps(
{
+1
View File
@@ -51,6 +51,7 @@ def test_export_import_roundtrip(tmp_path, monkeypatch):
shutil.copytree(REPO_ROOT / "voxvera" / "src", tmp_path / "src")
shutil.copytree(REPO_ROOT / "voxvera" / "locales", tmp_path / "locales")
monkeypatch.setattr(cli, "ROOT", tmp_path)
monkeypatch.setattr(cli, "DATA_DIR", tmp_path)
monkeypatch.setattr(cli, "_src_res", lambda *p: tmp_path / "src" / Path(*p))
monkeypatch.setattr(cli, "_locale_res", lambda *p: tmp_path / "locales" / Path(*p))
+1 -1
View File
@@ -1,7 +1,7 @@
import sys
from pathlib import Path
__version__ = "0.2.8"
__version__ = "0.2.10"
# Add the vendor directory to sys.path. We prepend it to ensure our bundled
# dependencies take priority over potentially incompatible system packages
+3 -5
View File
@@ -560,7 +560,6 @@ def build_assets(
# 1. Refresh QR codes directly in destination
# generate_qr only creates them if URLs are present in config
from voxvera.build import generate_qr
# We generate to a temp dir first to ensure we ONLY get what's in current config
import tempfile
@@ -682,7 +681,6 @@ def _internal_onionshare():
sys.exit(1)
def serve(config_path: str) -> str | None:
socks, ctl = get_tor_ports()
@@ -805,9 +803,9 @@ def get_export_dir() -> Path:
def export_site(folder_name: str, output_path: str = None):
"""Export a site folder and its keys into a zip archive."""
source_dir = ROOT / "host" / folder_name
source_dir = DATA_DIR / "host" / folder_name
if not source_dir.exists():
print(f"Error: Site folder '{folder_name}' not found in {ROOT / 'host'}")
print(f"Error: Site folder '{folder_name}' not found in {DATA_DIR / 'host'}")
return
if not output_path:
@@ -863,7 +861,7 @@ def import_site(zip_path: str):
print("Error: Invalid config.json. Missing 'folder_name'.")
return
dest_dir = ROOT / "host" / folder_name
dest_dir = DATA_DIR / "host" / folder_name
if dest_dir.exists():
confirm = inquirer.confirm(message=f"Site '{folder_name}' already exists. Overwrite?").execute()
if not confirm: