@@ -167,8 +167,7 @@ async def test_filter_not_with_or(self):
167167
168168 @test .requireCapability (dialect__in = ["postgres" , "mysql" ])
169169 async def test_filter_exact (self ):
170- is_mysql = test ._TORTOISE_TEST_DB .startswith ("mysql" )
171- await DatetimeFields .create (
170+ obj = await DatetimeFields .create (
172171 datetime = datetime .datetime (
173172 year = 2020 , month = 5 , day = 20 , hour = 0 , minute = 0 , second = 0 , microsecond = 0
174173 )
@@ -177,11 +176,15 @@ async def test_filter_exact(self):
177176 self .assertEqual (await DatetimeFields .filter (datetime__quarter = 2 ).count (), 1 )
178177 self .assertEqual (await DatetimeFields .filter (datetime__month = 5 ).count (), 1 )
179178 self .assertEqual (await DatetimeFields .filter (datetime__day = 20 ).count (), 1 )
180- if is_mysql :
179+ if test . _TORTOISE_TEST_DB . startswith ( "mysql" ) :
181180 self .assertEqual (await DatetimeFields .filter (datetime__week = 20 ).count (), 1 )
182181 self .assertEqual (await DatetimeFields .filter (datetime__hour = 0 ).count (), 1 )
183182 else :
184- self .assertEqual (await DatetimeFields .filter (datetime__week = 21 ).count (), 1 )
183+ # PostgreSQL enables tzinfo by default
184+ dt = obj .datetime .astimezone ()
185+ week = dt .isocalendar ()[1 ]
186+ self .assertEqual (await DatetimeFields .filter (datetime__week = week ).count (), 1 )
187+ self .assertEqual (await DatetimeFields .filter (datetime__hour = dt .hour ).count (), 1 )
185188 self .assertEqual (await DatetimeFields .filter (datetime__minute = 0 ).count (), 1 )
186189 self .assertEqual (await DatetimeFields .filter (datetime__second = 0 ).count (), 1 )
187190 self .assertEqual (await DatetimeFields .filter (datetime__microsecond = 0 ).count (), 1 )
@@ -193,9 +196,8 @@ async def test_filter_exact(self):
193196 self .assertEqual (await DateFields .filter (date__day = 21 ).count (), 1 )
194197 self .assertEqual (await DateFields .filter (date__year = "2021" ).count (), 1 )
195198 self .assertEqual (await DateFields .filter (date__year = 2021.0 ).count (), 1 )
196- if is_mysql :
197- self .assertEqual (await DateFields .filter (date = "2021-6-21" ).count (), 1 )
198199 self .assertEqual (await DateFields .filter (date = "20210621" ).count (), 1 )
200+ self .assertEqual (await DateFields .filter (date = "2021-06-21" ).count (), 1 )
199201 self .assertEqual (
200202 await DateFields .filter (date = datetime .date (year = 2021 , month = 6 , day = 21 )).count (), 1
201203 )
0 commit comments