"""Tests for sql2sf_feed module.""" from datetime import datetime from unittest.mock import patch import pytest from feed_status.models.sql2sf_feed import _parse_ts from feed_status.models.sql2sf_feed import get_table_statuses @patch('feed_status.models.sql2sf_feed.sql2sf_status') def test_get_table_statuses(status_mock): """Test that get_table_statuses returns only specified tables.""" expected = [ { 'schema_name': 'schema1', 'tables': [ { 'table_name': 'table1', }, { 'table_name': 'table2', } ] } ] status_mock.get_all_statuses.return_value = [ { 'schema_name': 'schema1', 'table_name': 'table1', }, { 'schema_name': 'schema1', 'table_name': 'table2', }, { 'schema_name': 'schema1', 'table_name': 'table3', } ] result = get_table_statuses([('schema1', 'table1'), ('schema1', 'table2')]) assert result == expected @pytest.mark.parametrize('test_input,expected', [ ('2017-10-06T00:01:02', datetime(2017, 10, 6, 0, 1, 2)), ('2010-12-07T10:10:10', datetime(2010, 12, 7, 10, 10, 10)), ('2010-12-07T00:00:00', datetime(2010, 12, 7, 0, 0, 0)), ('2017-10-06', datetime(2017, 10, 6, 0, 0, 0)), ('incorrect_string', datetime.min), ('', datetime.min), (None, datetime.min), ]) def test_parse_ts(test_input, expected): """Test _parse_ts function.""" result = _parse_ts(test_input) assert result == expected