mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
100 lines
3.0 KiB
Python
100 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script for the LeaderboardManager
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import json
|
|
import logging
|
|
|
|
# Add the src directory to the path
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src'))
|
|
|
|
from leaderboard_manager import LeaderboardManager
|
|
from display_manager import DisplayManager
|
|
from config_manager import ConfigManager
|
|
|
|
# Configure logging
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(levelname)s - %(message)s'
|
|
)
|
|
|
|
def test_leaderboard_manager():
|
|
"""Test the leaderboard manager functionality."""
|
|
|
|
# Load configuration
|
|
config_manager = ConfigManager()
|
|
config = config_manager.load_config()
|
|
|
|
# Enable leaderboard and some sports for testing
|
|
config['leaderboard'] = {
|
|
'enabled': True,
|
|
'enabled_sports': {
|
|
'nfl': {
|
|
'enabled': True,
|
|
'top_teams': 5
|
|
},
|
|
'nba': {
|
|
'enabled': True,
|
|
'top_teams': 5
|
|
},
|
|
'mlb': {
|
|
'enabled': True,
|
|
'top_teams': 5
|
|
}
|
|
},
|
|
'update_interval': 3600,
|
|
'scroll_speed': 2,
|
|
'scroll_delay': 0.05,
|
|
'display_duration': 60,
|
|
'loop': True,
|
|
'request_timeout': 30,
|
|
'dynamic_duration': True,
|
|
'min_duration': 30,
|
|
'max_duration': 300,
|
|
'duration_buffer': 0.1
|
|
}
|
|
|
|
# Initialize display manager (this will be a mock for testing)
|
|
display_manager = DisplayManager(config)
|
|
|
|
# Initialize leaderboard manager
|
|
leaderboard_manager = LeaderboardManager(config, display_manager)
|
|
|
|
print("Testing LeaderboardManager...")
|
|
print(f"Enabled: {leaderboard_manager.is_enabled}")
|
|
print(f"Enabled sports: {[k for k, v in leaderboard_manager.league_configs.items() if v['enabled']]}")
|
|
|
|
# Test fetching standings
|
|
print("\nFetching standings...")
|
|
leaderboard_manager.update()
|
|
|
|
print(f"Number of leagues with data: {len(leaderboard_manager.leaderboard_data)}")
|
|
|
|
for league_data in leaderboard_manager.leaderboard_data:
|
|
league = league_data['league']
|
|
teams = league_data['teams']
|
|
print(f"\n{league.upper()}:")
|
|
for i, team in enumerate(teams[:5]): # Show top 5
|
|
record = f"{team['wins']}-{team['losses']}"
|
|
if 'ties' in team:
|
|
record += f"-{team['ties']}"
|
|
print(f" {i+1}. {team['abbreviation']} {record}")
|
|
|
|
# Test image creation
|
|
print("\nCreating leaderboard image...")
|
|
if leaderboard_manager.leaderboard_data:
|
|
leaderboard_manager._create_leaderboard_image()
|
|
if leaderboard_manager.leaderboard_image:
|
|
print(f"Image created successfully: {leaderboard_manager.leaderboard_image.size}")
|
|
print(f"Dynamic duration: {leaderboard_manager.dynamic_duration:.1f}s")
|
|
else:
|
|
print("Failed to create image")
|
|
else:
|
|
print("No data available to create image")
|
|
|
|
if __name__ == "__main__":
|
|
test_leaderboard_manager()
|