mirror of https://github.com/gmbrax/Pilgrim.git
				
				
				
			
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| from unittest.mock import patch, MagicMock
 | |
| from pilgrim.application import Application
 | |
| 
 | |
| @patch('pilgrim.application.UIApp')
 | |
| @patch('pilgrim.application.ServiceManager')
 | |
| @patch('pilgrim.application.Database')
 | |
| @patch('pilgrim.application.ConfigManager')
 | |
| def test_application_initialization_wires_dependencies(
 | |
|     MockConfigManager, MockDatabase, MockServiceManager, MockUIApp
 | |
| ):
 | |
|     mock_config_instance = MockConfigManager.return_value
 | |
|     mock_db_instance = MockDatabase.return_value
 | |
|     mock_session_instance = mock_db_instance.session.return_value
 | |
|     mock_service_manager_instance = MockServiceManager.return_value
 | |
|     app = Application()
 | |
|     MockConfigManager.assert_called_once()
 | |
|     MockDatabase.assert_called_once_with(mock_config_instance)
 | |
|     MockServiceManager.assert_called_once()
 | |
|     MockUIApp.assert_called_once_with(mock_service_manager_instance, mock_config_instance)
 | |
|     mock_config_instance.read_config.assert_called_once()
 | |
|     mock_db_instance.session.assert_called_once()
 | |
|     mock_service_manager_instance.set_session.assert_called_once_with(mock_session_instance)
 | |
| 
 | |
| @patch('pilgrim.application.UIApp')
 | |
| @patch('pilgrim.application.ServiceManager')
 | |
| @patch('pilgrim.application.Database')
 | |
| @patch('pilgrim.application.ConfigManager')
 | |
| def test_application_run_calls_methods(
 | |
|     MockConfigManager, MockDatabase, MockServiceManager, MockUIApp
 | |
| ):
 | |
|     app = Application()
 | |
|     mock_db_instance = app.database
 | |
|     mock_ui_instance = app.ui
 | |
|     app.run()
 | |
|     mock_db_instance.create.assert_called_once()
 | |
|     mock_ui_instance.run.assert_called_once()
 | |
| 
 | |
| @patch('pilgrim.application.UIApp')
 | |
| @patch('pilgrim.application.ServiceManager')
 | |
| @patch('pilgrim.application.Database')
 | |
| @patch('pilgrim.application.ConfigManager')
 | |
| def test_get_service_manager_creates_and_configures_new_instance(
 | |
|     MockConfigManager, MockDatabase, MockServiceManager, MockUIApp
 | |
| ):
 | |
|     app = Application()
 | |
|     mock_db_instance = app.database
 | |
|     fake_session = MagicMock()
 | |
|     mock_db_instance.session.return_value = fake_session
 | |
|     mock_db_instance.reset_mock()
 | |
|     MockServiceManager.reset_mock()
 | |
|     returned_manager = app.get_service_manager()
 | |
|     mock_db_instance.session.assert_called_once()
 | |
|     MockServiceManager.assert_called_once()
 | |
|     returned_manager.set_session.assert_called_once_with(fake_session)
 | |
| 
 | |
|     assert returned_manager is MockServiceManager.return_value |