"""Unit tests for helper functions.""" from unittest.mock import patch from adjustment import helpers from adjustment.data_class import DataClass @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_adjustments(mock_abacus_db_connection, mock_adjustments_types): """Test get_adjustments helper function.""" mock_adjustments = [{'type_name': adjustment_type} for adjustment_type in mock_adjustments_types] mock_abacus_db_connection.execute_sql_query.return_value = mock_adjustments helpers.get_adjustments() assert DataClass.adjustment_types == mock_adjustments_types @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_valid_account_ids(mock_abacus_db_connection, mock_account_ids): """Test get_and_set_valid_account_ids helper function.""" mock_ids = [{'account_id': '68952'}, {'account_id': '72346'}] mock_abacus_db_connection.execute_sql_query.return_value = mock_ids helpers.get_and_set_valid_account_ids(mock_account_ids) assert DataClass.account_ids == ['68952', '72346'] mock_abacus_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_valid_account_ids_no_ids(mock_abacus_db_connection): """Test get_and_set_valid_account_ids helper function when account_ids is empty list.""" result = helpers.get_and_set_valid_account_ids([]) assert result is False mock_abacus_db_connection.execute_sql_query.assert_not_called() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_valid_contract_ids(mock_abacus_db_connection, mock_contract_ids): """Test get_and_set_valid_contract_ids helper function.""" mock_ids = [{'contract_id': '533565'}, {'contract_id': '535978'}] mock_abacus_db_connection.execute_sql_query.return_value = mock_ids helpers.get_and_set_valid_contract_ids(mock_contract_ids) assert DataClass.contract_ids == ['533565', '535978'] mock_abacus_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_valid_contract_ids_no_ids(mock_abacus_db_connection): """Test get_and_set_valid_contract_ids helper function when contract_ids is empty list.""" result = helpers.get_and_set_valid_contract_ids([]) assert result is False mock_abacus_db_connection.execute_sql_query.assert_not_called() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_statement_periods(mock_abacus_db_connection, mock_statement_periods): """Test get_and_set_statement_periods helper function.""" mock_abacus_db_connection.execute_sql_query.return_value = mock_statement_periods helpers.get_and_set_statement_periods(['2022', '2023']) assert DataClass.statement_periods == mock_statement_periods mock_abacus_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_statement_periods_no_statement_years(mock_abacus_db_connection): """Test get_and_set_statement_periods helper function when statement_years is empty list.""" result = helpers.get_and_set_statement_periods([]) assert result is False mock_abacus_db_connection.execute_sql_query.assert_not_called() @patch('adjustment.helpers.ARMysqlConnection') def test_get_and_set_upcs(mock_ar_db_connection, mock_upcs): """Test get_and_set_upcs helper function.""" mock_ar_db_connection.execute_sql_query.return_value = mock_upcs helpers.get_and_set_upcs(['20000000137657', '20000000137678', '0028948107902']) assert DataClass.upcs == mock_upcs mock_ar_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.ARMysqlConnection') def test_get_and_set_upcs_no_upcs(mock_ar_db_connection, mock_upcs): """Test get_and_set_upcs helper function when upcs is empty list.""" result = helpers.get_and_set_upcs([]) assert result is False mock_ar_db_connection.execute_sql_query.assert_not_called() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_contract_product_terms(mock_abacus_db_connection, mock_contract_product_terms): """Test get_and_set_contract_product_terms helper function.""" mock_contract_ids =[term['contract_id'] for term in mock_contract_product_terms] mock_abacus_db_connection.execute_sql_query.return_value = mock_contract_product_terms helpers.get_and_set_contract_product_terms(mock_contract_ids) assert DataClass.product_terms == mock_contract_product_terms mock_abacus_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_contract_product_terms_no_ids(mock_abacus_db_connection): """Test get_and_set_contract_product_terms helper function when contract_ids is empty list.""" result = helpers.get_and_set_contract_product_terms([]) assert result is False mock_abacus_db_connection.execute_sql_query.assert_not_called() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_contract_label_terms(mock_abacus_db_connection, mock_contract_label_terms): """Test get_and_set_contract_label_terms helper function.""" mock_contract_ids =[term['contract_id'] for term in mock_contract_label_terms] mock_abacus_db_connection.execute_sql_query.return_value = mock_contract_label_terms helpers.get_and_set_contract_label_terms(mock_contract_ids) assert DataClass.label_terms == mock_contract_label_terms mock_abacus_db_connection.execute_sql_query.assert_called_once() @patch('adjustment.helpers.AbacusMysqlConnection') def test_get_and_set_contract_label_terms_no_ids(mock_abacus_db_connection): """Test get_and_set_contract_label_terms helper function when contract_ids is empty list.""" result = helpers.get_and_set_contract_label_terms([]) assert result is False mock_abacus_db_connection.execute_sql_query.assert_not_called()