📚 Re-added wiki as a proper Git submodule
This commit is contained in:
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "video-pipeline.wiki"]
|
||||
path = video-pipeline.wiki
|
||||
url = https://github.com/LCS-Gramps/video-pipeline.wiki.git
|
||||
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
20
tests/conftest.py
Normal file
20
tests/conftest.py
Normal file
@ -0,0 +1,20 @@
|
||||
# tests/conftest.py
|
||||
"""
|
||||
Shared pytest fixtures and constants for testing the LCS video pipeline.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from pathlib import Path
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def test_session_path() -> Path:
|
||||
"""
|
||||
Fixture providing the fixed test session directory.
|
||||
|
||||
NOTE: This directory must exist and be preserved. It contains test clips
|
||||
and notes.json used by multiple tests.
|
||||
|
||||
Returns:
|
||||
Path: Absolute path to test session folder.
|
||||
"""
|
||||
return Path("Z:/LCS/Videos/eklipse/2025.07.25.9")
|
||||
44
tests/sync_wiki.py
Normal file
44
tests/sync_wiki.py
Normal file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
sync_wiki.py
|
||||
|
||||
Synchronizes local markdown files in docs/wiki/ to the GitHub wiki
|
||||
for the Llama Chile Shop video pipeline project.
|
||||
|
||||
Requires the GitHub wiki repo to be cloned into ./video-pipeline.wiki/.
|
||||
|
||||
Author: gramps@llamachile.shop
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
print("🧠 THIS IS THE CORRECT sync_wiki.py")
|
||||
|
||||
# Correct paths for wiki sync
|
||||
LOCAL_WIKI_SOURCE = Path("docs/wiki")
|
||||
LOCAL_WIKI_REPO = Path("video-pipeline.wiki")
|
||||
print("🔍 Executing: sync_wiki.py from", __file__)
|
||||
|
||||
def sync_wiki():
|
||||
if not LOCAL_WIKI_REPO.exists():
|
||||
print("❌ Wiki repo not found. Clone it using:")
|
||||
print(" git clone https://github.com/LCS-Gramps/video-pipeline.wiki.git")
|
||||
return
|
||||
|
||||
# Copy .md files to the local wiki repo
|
||||
for md_file in LOCAL_WIKI_SOURCE.glob("*.md"):
|
||||
target = LOCAL_WIKI_REPO / md_file.name
|
||||
shutil.copy2(md_file, target)
|
||||
print(f"✅ Synced: {md_file.name}")
|
||||
|
||||
# Commit and push changes
|
||||
os.chdir(LOCAL_WIKI_REPO)
|
||||
subprocess.run(["git", "add", "."], check=True)
|
||||
subprocess.run(["git", "commit", "-m", "📚 Sync updated wiki pages from docs/wiki"], check=True)
|
||||
subprocess.run(["git", "push"], check=True)
|
||||
print("🚀 Wiki updated successfully.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
sync_wiki()
|
||||
0
tests/test_full_pipeline.py
Normal file
0
tests/test_full_pipeline.py
Normal file
52
tests/test_metadata_utils.py
Normal file
52
tests/test_metadata_utils.py
Normal file
@ -0,0 +1,52 @@
|
||||
# tests/test_metadata_utils.py
|
||||
"""
|
||||
Unit tests for metadata parsing and archiving functions.
|
||||
"""
|
||||
|
||||
from modules.metadata_utils import derive_session_metadata, save_metadata_record
|
||||
from pathlib import Path
|
||||
import json
|
||||
|
||||
|
||||
def test_derive_session_metadata_structure(test_session_path):
|
||||
"""
|
||||
Validates that metadata is parsed correctly and includes expected keys.
|
||||
"""
|
||||
metadata = derive_session_metadata(test_session_path)
|
||||
|
||||
assert "session_date" in metadata
|
||||
assert "clips" in metadata
|
||||
assert isinstance(metadata["clips"], list)
|
||||
assert len(metadata["clips"]) > 0, "Expected at least one clip in metadata"
|
||||
|
||||
for clip in metadata["clips"]:
|
||||
assert "stem" in clip
|
||||
assert "highlight" in clip or "notes" in clip
|
||||
assert clip["format"] in ("wide", "vertical")
|
||||
|
||||
|
||||
def test_save_metadata_record_creates_file(tmp_path):
|
||||
"""
|
||||
Ensures metadata is saved to a properly named JSON file.
|
||||
"""
|
||||
fake_record = {
|
||||
"session_date": "2025-07-25",
|
||||
"stem": "test-clip",
|
||||
"youtube_urls": ["https://youtu.be/test123"],
|
||||
"peertube_urls": [],
|
||||
}
|
||||
|
||||
# Override history dir to a temp path
|
||||
from modules import metadata_utils
|
||||
metadata_utils.HISTORY_DIR = tmp_path
|
||||
|
||||
save_metadata_record(fake_record)
|
||||
|
||||
expected_dir = tmp_path / "2025.07.25"
|
||||
expected_file = expected_dir / "test-clip.json"
|
||||
|
||||
assert expected_file.exists(), f"Expected {expected_file} to be created"
|
||||
|
||||
with expected_file.open("r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
assert data["youtube_urls"][0] == "https://youtu.be/test123"
|
||||
0
tests/test_title_utils.py
Normal file
0
tests/test_title_utils.py
Normal file
0
tests/test_yt_poster.py
Normal file
0
tests/test_yt_poster.py
Normal file
1
video-pipeline.wiki
Submodule
1
video-pipeline.wiki
Submodule
Submodule video-pipeline.wiki added at 1ec269c8ef
Reference in New Issue
Block a user