SmolFactory / test_formatting_fix.py
Tonic's picture
adds formatting fix
ebe598e verified
raw
history blame
4.48 kB
#!/usr/bin/env python3
"""
Test script to verify the string formatting fix
"""
import sys
import os
import logging
# Setup logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def test_logging():
"""Test that logging works without f-string formatting errors"""
try:
# Test various logging scenarios that were causing issues
logger.info("Testing logging with %s", "string formatting")
logger.info("Testing with %d numbers", 42)
logger.info("Testing with %s and %d", "text", 123)
# Test error logging
try:
raise ValueError("Test error")
except Exception as e:
logger.error("Caught error: %s", e)
print("βœ… All logging tests passed!")
return True
except Exception as e:
print("❌ Logging test failed: {}".format(e))
return False
def test_imports():
"""Test that all modules can be imported without formatting errors"""
try:
# Test importing the main modules
from src.monitoring import SmolLM3Monitor
print("βœ… monitoring module imported successfully")
from src.trainer import SmolLM3Trainer
print("βœ… trainer module imported successfully")
from src.model import SmolLM3Model
print("βœ… model module imported successfully")
from src.data import SmolLM3Dataset
print("βœ… data module imported successfully")
return True
except Exception as e:
print("❌ Import test failed: {}".format(e))
return False
def test_config_loading():
"""Test that configuration files can be loaded"""
try:
# Test loading a configuration
config_path = "config/train_smollm3_openhermes_fr_a100_balanced.py"
if os.path.exists(config_path):
import importlib.util
spec = importlib.util.spec_from_file_location("config_module", config_path)
config_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(config_module)
if hasattr(config_module, 'config'):
config = config_module.config
print("βœ… Configuration loaded successfully")
print(" Model: {}".format(config.model_name))
print(" Batch size: {}".format(config.batch_size))
print(" Learning rate: {}".format(config.learning_rate))
return True
else:
print("❌ No config found in {}".format(config_path))
return False
else:
print("❌ Config file not found: {}".format(config_path))
return False
except Exception as e:
print("❌ Config loading test failed: {}".format(e))
return False
def test_monitoring_creation():
"""Test that monitoring can be created without formatting errors"""
try:
from src.monitoring import SmolLM3Monitor
# Test creating a monitor instance
monitor = SmolLM3Monitor(
experiment_name="test_experiment",
enable_tracking=False # Disable tracking for test
)
print("βœ… Monitoring instance created successfully")
return True
except Exception as e:
print("❌ Monitoring creation test failed: {}".format(e))
return False
def main():
"""Run all tests"""
print("πŸ§ͺ Testing String Formatting Fix")
print("=" * 40)
tests = [
("Logging", test_logging),
("Imports", test_imports),
("Config Loading", test_config_loading),
("Monitoring Creation", test_monitoring_creation),
]
passed = 0
total = len(tests)
for test_name, test_func in tests:
print("\nπŸ” Testing: {}".format(test_name))
if test_func():
passed += 1
print("βœ… {} test passed".format(test_name))
else:
print("❌ {} test failed".format(test_name))
print("\n" + "=" * 40)
print("πŸ“Š Test Results: {}/{} tests passed".format(passed, total))
if passed == total:
print("πŸŽ‰ All tests passed! The formatting fix is working correctly.")
return 0
else:
print("⚠️ Some tests failed. Please check the errors above.")
return 1
if __name__ == "__main__":
sys.exit(main())