"""Test subaccount id mapping in neo4j.""" from unittest.mock import MagicMock, patch import pytest from src import update_subaccount_mapping_in_neo4j @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.Neo4jSession.__enter__') @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.get_session') @patch('src.update_subaccount_mapping_in_neo4j.update_lp_relationships') @patch('src.update_subaccount_mapping_in_neo4j.update_subaccount_relationship') @patch('src.update_subaccount_mapping_in_neo4j.update_lp_referential_uuids') @patch('src.update_subaccount_mapping_in_neo4j.check_project_sync_up') @patch('src.app.logger') @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.Neo4jSession.__exit__') def test_update_mapping_in_neo4j( neo4j_exit, mock_logger, mock_check_project, mock_update_subaccount_relationship, mock_update_lp_relationships, mock_update_lp_referential_uuids, mock_session, neo4j_enter ): """Test update_mapping_in_neo4j method.""" mock_session.return_value = MagicMock() mock_check_project.return_value = 0 update_subaccount_mapping_in_neo4j.update_mapping_in_neo4j(2, mock_logger) mock_update_subaccount_relationship.assert_called_with(mock_session.return_value, 2) mock_update_lp_relationships.assert_called_with(mock_session.return_value, 2) mock_update_lp_referential_uuids.assert_called_with(mock_session.return_value, 2) @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.Neo4jSession.__enter__') @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.get_session') @patch('src.update_subaccount_mapping_in_neo4j.update_lp_relationships') @patch('src.update_subaccount_mapping_in_neo4j.update_subaccount_relationship') @patch('src.update_subaccount_mapping_in_neo4j.update_lp_referential_uuids') @patch('src.update_subaccount_mapping_in_neo4j.check_project_sync_up') @patch('src.app.logger') @patch('update_subaccount_mapping_in_neo4j.connector_neo4j.Neo4jSession.__exit__') def test_update_mapping_in_neo4j_check_project_failure( neo4j_exit, mock_logger, mock_check_project, mock_update_subaccount_relationship, mock_update_lp_referential_uuids, mock_update_lp_relationships, mock_session, neo4j_enter ): """Test update_mapping_in_neo4j method when check project is incomplete.""" mock_session.return_value = MagicMock() mock_check_project.return_value = 1 update_subaccount_mapping_in_neo4j.update_mapping_in_neo4j(2, mock_logger) mock_update_subaccount_relationship.assert_not_called mock_update_lp_relationships.assert_not_called mock_update_lp_referential_uuids.assert_not_called @patch('update_subaccount_mapping_in_neo4j.connector_neo4j') def test_update_lp_relationships(mock_connection): """Test update_lp_relationships method.""" mock_connection.get_session.return_value = MagicMock(name='mock') update_subaccount_mapping_in_neo4j.update_lp_relationships(mock_connection.get_session, 2) mock_connection.get_session.run.assert_called() @patch('update_subaccount_mapping_in_neo4j.connector_neo4j') def test_update_subaccount_relationship(mock_connection): """Test update_subaccount_relationships method.""" mock_connection.get_session.return_value = MagicMock(name='mock') update_subaccount_mapping_in_neo4j.update_subaccount_relationship(mock_connection.get_session, 2) mock_connection.get_session.run.assert_called() @patch('update_subaccount_mapping_in_neo4j.connector_neo4j') def test_update_lp_referential_uuids(mock_connection): """Test update_lp_referential_uuids method.""" mock_connection.get_session.return_value = MagicMock(name='mock') update_subaccount_mapping_in_neo4j.update_lp_referential_uuids(mock_connection.get_session, 2) mock_connection.get_session.run.assert_called() @patch('update_subaccount_mapping_in_neo4j.connector_neo4j') def test_check_project_sync_up_success(mock_connection): """Test when check project sync up is complete.""" mock_connection.get_session.return_value = MagicMock(name='session_mock') mock_connection.get_session.run.return_value = MagicMock(name='transaction_mock') mock_transaction_run = mock_connection.get_session.run.return_value mock_transaction_run.data.return_value = [{'num': []}] update_subaccount_mapping_in_neo4j.check_project_sync_up(mock_connection.get_session, 2) assert mock_connection.get_session.run.call_count == 1 @patch('update_subaccount_mapping_in_neo4j.connector_neo4j') def test_check_project_sync_up_failure(mock_connection): """Test when check project sync up is incomplete.""" mock_connection.get_session.return_value = MagicMock(name='session_mock') mock_connection.get_session.run.return_value = MagicMock(name='transaction_mock') mock_transaction_run = mock_connection.get_session.run.return_value mock_transaction_run.data.return_value = [{'num': [1, 2]}] with pytest.raises(Exception): update_subaccount_mapping_in_neo4j.check_project_sync_up(mock_connection.get_session, 2) assert mock_connection.get_session.run.call_count == 3