Files
karung-masuk_frigate-counter/test_json_storage.py
2026-02-17 09:35:36 +07:00

82 lines
2.8 KiB
Python

#!/usr/bin/env python3
"""
Test script for JSON storage functionality in Frigate MQTT Counter Service
"""
import os
import sys
import tempfile
import json
from datetime import datetime
import threading
# Add the current directory to Python path to import our module
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
def test_json_storage():
"""Test that JSON storage works correctly"""
print("Testing JSON storage functionality...")
# Create a temporary directory to test
with tempfile.TemporaryDirectory() as temp_dir:
# Change to temp directory to avoid conflicts
original_dir = os.getcwd()
os.chdir(temp_dir)
try:
from frigate_counter import FrigateCounter
# Create a counter instance
counter = FrigateCounter()
# Test JSON storage initialization
if os.path.exists(counter.json_storage_path):
print("✓ JSON storage file created successfully")
# Test writing to JSON storage
counter.counter = 5
counter.save_to_json('test_camera')
# Test reading from JSON storage
loaded_counter = counter.load_from_json('test_camera')
if loaded_counter == 5:
print("✓ JSON storage read/write works correctly")
else:
print(f"✗ JSON storage read failed: expected 5, got {loaded_counter}")
# Test multiple cameras
counter.counter = 10
counter.save_to_json('camera_1')
counter.counter = 15
counter.save_to_json('camera_2')
loaded_1 = counter.load_from_json('camera_1')
loaded_2 = counter.load_from_json('camera_2')
if loaded_1 == 10 and loaded_2 == 15:
print("✓ Multiple camera JSON storage works correctly")
else:
print(f"✗ Multiple camera JSON storage failed: {loaded_1}, {loaded_2}")
# Test reading non-existent camera
non_existent = counter.load_from_json('non_existent_camera')
if non_existent == 0:
print("✓ Reading non-existent camera returns 0 correctly")
else:
print(f"✗ Reading non-existent camera failed: {non_existent}")
else:
print("✗ JSON storage file was not created")
except Exception as e:
print(f"✗ Error in JSON storage test: {e}")
import traceback
traceback.print_exc()
finally:
os.chdir(original_dir)
if __name__ == "__main__":
print("Running JSON Storage Tests\n")
test_json_storage()
print("\nTest completed.")