@@ -76,6 +76,57 @@ def test_format_output():
7676 assert list (results ) == expected
7777
7878
79+ def test_column_date_formats ():
80+ settings = OutputSettings (
81+ table_format = "psql" ,
82+ column_date_formats = {
83+ "date_col" : "%Y-%m-%d" ,
84+ "datetime_col" : "%I:%M:%S %m/%d/%y" ,
85+ },
86+ )
87+ data = [
88+ ("name1" , "2024-12-13T18:32:22" , "2024-12-13T19:32:22" , "2024-12-13T20:32:22" ),
89+ ("name2" , "2025-02-13T02:32:22" , "2025-02-13T02:32:22" , "2025-02-13T02:32:22" ),
90+ ]
91+ headers = ["name" , "date_col" , "datetime_col" , "unchanged_col" ]
92+
93+ results = format_output ("Title" , data , headers , "test status" , settings )
94+ expected = [
95+ "Title" ,
96+ "+-------+------------+-------------------+---------------------+" ,
97+ "| name | date_col | datetime_col | unchanged_col |" ,
98+ "|-------+------------+-------------------+---------------------|" ,
99+ "| name1 | 2024-12-13 | 07:32:22 12/13/24 | 2024-12-13T20:32:22 |" ,
100+ "| name2 | 2025-02-13 | 02:32:22 02/13/25 | 2025-02-13T02:32:22 |" ,
101+ "+-------+------------+-------------------+---------------------+" ,
102+ "test status" ,
103+ ]
104+ assert list (results ) == expected
105+
106+
107+ def test_no_column_date_formats ():
108+ """Test that not setting any column date formats returns unaltered datetime columns"""
109+ settings = OutputSettings (table_format = "psql" )
110+ data = [
111+ ("name1" , "2024-12-13T18:32:22" , "2024-12-13T19:32:22" , "2024-12-13T20:32:22" ),
112+ ("name2" , "2025-02-13T02:32:22" , "2025-02-13T02:32:22" , "2025-02-13T02:32:22" ),
113+ ]
114+ headers = ["name" , "date_col" , "datetime_col" , "unchanged_col" ]
115+
116+ results = format_output ("Title" , data , headers , "test status" , settings )
117+ expected = [
118+ "Title" ,
119+ "+-------+---------------------+---------------------+---------------------+" ,
120+ "| name | date_col | datetime_col | unchanged_col |" ,
121+ "|-------+---------------------+---------------------+---------------------|" ,
122+ "| name1 | 2024-12-13T18:32:22 | 2024-12-13T19:32:22 | 2024-12-13T20:32:22 |" ,
123+ "| name2 | 2025-02-13T02:32:22 | 2025-02-13T02:32:22 | 2025-02-13T02:32:22 |" ,
124+ "+-------+---------------------+---------------------+---------------------+" ,
125+ "test status" ,
126+ ]
127+ assert list (results ) == expected
128+
129+
79130def test_format_output_truncate_on ():
80131 settings = OutputSettings (
81132 table_format = "psql" , dcmlfmt = "d" , floatfmt = "g" , max_field_width = 10
0 commit comments