mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
update UTC timezone logic to check config settings for all managers
This commit is contained in:
99
test/test_leaderboard.py
Normal file
99
test/test_leaderboard.py
Normal file
@@ -0,0 +1,99 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user