- Achieved 85% overall test coverage with detailed results for individual components. - Added unit tests for DragInterceptor and MainWindow components. - Refactored imports and removed unused code in multiple files. - Updated test configurations and ensured compliance with coverage standards.
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
"""WebDrop Bridge - Application entry point."""
|
|
|
|
import sys
|
|
|
|
from PySide6.QtWidgets import QApplication
|
|
|
|
from webdrop_bridge.config import Config, ConfigurationError
|
|
from webdrop_bridge.ui.main_window import MainWindow
|
|
from webdrop_bridge.utils.logging import get_logger, setup_logging
|
|
|
|
|
|
def main() -> int:
|
|
"""Main application entry point.
|
|
|
|
Initializes configuration, logging, and creates the main window.
|
|
Returns appropriate exit code.
|
|
|
|
Returns:
|
|
int: Exit code (0 for success, non-zero for error)
|
|
"""
|
|
try:
|
|
# Load configuration from environment
|
|
config = Config.from_env()
|
|
|
|
# Set up logging
|
|
log_file = None
|
|
if config.log_file:
|
|
log_file = config.log_file
|
|
|
|
setup_logging(
|
|
name="webdrop_bridge",
|
|
level=config.log_level,
|
|
log_file=log_file,
|
|
)
|
|
|
|
logger = get_logger(__name__)
|
|
logger.info(f"Starting {config.app_name} v{config.app_version}")
|
|
logger.debug(f"Configuration: {config}")
|
|
|
|
except ConfigurationError as e:
|
|
print(f"Configuration error: {e}", file=sys.stderr)
|
|
return 1
|
|
except Exception as e:
|
|
print(f"Failed to initialize logging: {e}", file=sys.stderr)
|
|
return 1
|
|
|
|
try:
|
|
# Create Qt application
|
|
app = QApplication(sys.argv)
|
|
|
|
# Create and show main window
|
|
window = MainWindow(config)
|
|
window.show()
|
|
|
|
logger.info("Main window opened successfully")
|
|
|
|
# Run event loop
|
|
return app.exec()
|
|
|
|
except Exception as e:
|
|
logger.exception(f"Unhandled exception: {e}")
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|