feat: init project

This commit is contained in:
Justin Lin
2025-10-09 16:31:57 +11:00
commit ca0a880c80
13 changed files with 1262 additions and 0 deletions

112
test_vlchan.py Normal file
View File

@@ -0,0 +1,112 @@
#!/usr/bin/env python3
"""Test script to verify VLChan installation and basic functionality."""
import sys
import time
from vlchan import VLChanPlayer, SynchanController, SynchanState
def test_imports():
"""Test that all modules can be imported."""
print("Testing imports...")
try:
from vlchan import VLChanPlayer, SynchanController, SynchanState
print("✓ All imports successful")
return True
except ImportError as e:
print(f"✗ Import error: {e}")
return False
def test_vlc_availability():
"""Test that VLC is available."""
print("Testing VLC availability...")
try:
import vlc
instance = vlc.Instance()
print("✓ VLC is available")
instance.release()
return True
except Exception as e:
print(f"✗ VLC error: {e}")
print(" Make sure VLC is installed on your system")
return False
def test_synchan_controller():
"""Test synchan controller creation."""
print("Testing synchan controller...")
try:
controller = SynchanController("http://localhost:3000")
print("✓ Synchan controller created")
return True
except Exception as e:
print(f"✗ Synchan controller error: {e}")
return False
def test_player_creation():
"""Test player creation without video file."""
print("Testing player creation...")
try:
player = VLChanPlayer("http://localhost:3000")
print("✓ Player created successfully")
player.cleanup()
return True
except Exception as e:
print(f"✗ Player creation error: {e}")
return False
def test_synchan_state():
"""Test synchan state dataclass."""
print("Testing synchan state...")
try:
state = SynchanState(
playing=True,
currentTime=10.5,
duration=120.0,
loop=False,
latency=0.05
)
print(f"✓ Synchan state created: {state}")
return True
except Exception as e:
print(f"✗ Synchan state error: {e}")
return False
def main():
"""Run all tests."""
print("VLChan Test Suite")
print("=" * 40)
tests = [
test_imports,
test_vlc_availability,
test_synchan_controller,
test_player_creation,
test_synchan_state,
]
passed = 0
total = len(tests)
for test in tests:
if test():
passed += 1
print()
print("=" * 40)
print(f"Tests passed: {passed}/{total}")
if passed == total:
print("✓ All tests passed! VLChan is ready to use.")
return 0
else:
print("✗ Some tests failed. Please check the errors above.")
return 1
if __name__ == "__main__":
sys.exit(main())