"""Tests for conflict_status model.""" from conflict_manager.models import conflict_status from conflict_manager.utils import model_utils def test_get_ids_to_update(mocker, mock_snowflake_config): """Test get_ids_to_update.""" run_query_mock = mocker.patch.object(model_utils, 'run_query') ids = ['1|2018-12-12|Test|assert', '2|2018-12-22|Test|assert'] expected_sql = """ SELECT grouped_conflict_id from {conflict_status_table} WHERE grouped_conflict_id in (:ids); """ expected_params = {'ids': ids} conflict_status.get_ids_to_update(ids) _, kwargs = run_query_mock.call_args assert kwargs['params'] == expected_params assert kwargs['sql'] == expected_sql def test_create(mocker, mock_snowflake_config): """Test create.""" run_query_mock = mocker.patch.object(model_utils, 'run_query') statuses = [ { 'grouped_conflict_id': '1|2018-12-14|test|assert', 'tuid': 1, 'conflict_date': '2018-12-13', 'conflicting_owner': 'test', 'action': 'assert', 'status': 'ORCHARD_RELEASED', 'update_date': '2018-12-14', 'user_id': 123, 'note': 'Lorem Ipsums', 'account_type': None, 'account_id': None, } ] expected_sql = """ INSERT INTO {conflict_status_table}( grouped_conflict_id, tuid, conflict_date, conflicting_owner, action, status, update_date, user_id, note, account_type, account_id) VALUES( :grouped_conflict_id, :tuid, :conflict_date, :conflicting_owner, :action, :status, :update_date, :user_id, :note, :account_type, :account_id); """ conflict_status.create(statuses) _, kwargs = run_query_mock.call_args assert kwargs['params'] == statuses assert kwargs['sql'] == expected_sql def test_update(mocker, mock_snowflake_config): """Test update.""" run_query_mock = mocker.patch.object(model_utils, 'run_query') ids = ['1|2018-12-12|Test|assert', '2|2018-12-22|Test|assert'] status = 'ORCHARD_RELEASED' update_date = '2018-01-30' note = 'Lorem Ipsum' expected_sql = """ UPDATE {conflict_status_table} SET update_date = :date, status = :status, note = :note WHERE grouped_conflict_id in (:ids); """ expected_params = { 'ids': ids, 'status': status, 'date': update_date, 'note': note } conflict_status.update(ids, status, update_date, note) _, kwargs = run_query_mock.call_args assert kwargs['params'] == expected_params assert kwargs['sql'] == expected_sql