Refs #33355 -- Made trunc functions raise ValueError on invalid lookups on SQLite.
Co-Authored-By: Nick Pope <nick@nickpope.me.uk>
This commit is contained in:
parent
2d991ff661
commit
deec15a9a6
|
@ -135,6 +135,7 @@ def _sqlite_date_trunc(lookup_type, dt, tzname, conn_tzname):
|
||||||
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d}'
|
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d}'
|
||||||
elif lookup_type == 'day':
|
elif lookup_type == 'day':
|
||||||
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d}'
|
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d}'
|
||||||
|
raise ValueError(f'Unsupported lookup type: {lookup_type!r}')
|
||||||
|
|
||||||
|
|
||||||
def _sqlite_time_trunc(lookup_type, dt, tzname, conn_tzname):
|
def _sqlite_time_trunc(lookup_type, dt, tzname, conn_tzname):
|
||||||
|
@ -154,6 +155,7 @@ def _sqlite_time_trunc(lookup_type, dt, tzname, conn_tzname):
|
||||||
return f'{dt.hour:02d}:{dt.minute:02d}:00'
|
return f'{dt.hour:02d}:{dt.minute:02d}:00'
|
||||||
elif lookup_type == 'second':
|
elif lookup_type == 'second':
|
||||||
return f'{dt.hour:02d}:{dt.minute:02d}:{dt.second:02d}'
|
return f'{dt.hour:02d}:{dt.minute:02d}:{dt.second:02d}'
|
||||||
|
raise ValueError(f'Unsupported lookup type: {lookup_type!r}')
|
||||||
|
|
||||||
|
|
||||||
def _sqlite_datetime_cast_date(dt, tzname, conn_tzname):
|
def _sqlite_datetime_cast_date(dt, tzname, conn_tzname):
|
||||||
|
@ -210,6 +212,7 @@ def _sqlite_datetime_trunc(lookup_type, dt, tzname, conn_tzname):
|
||||||
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d} {dt.hour:02d}:{dt.minute:02d}:00'
|
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d} {dt.hour:02d}:{dt.minute:02d}:00'
|
||||||
elif lookup_type == 'second':
|
elif lookup_type == 'second':
|
||||||
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d} {dt.hour:02d}:{dt.minute:02d}:{dt.second:02d}'
|
return f'{dt.year:04d}-{dt.month:02d}-{dt.day:02d} {dt.hour:02d}:{dt.minute:02d}:{dt.second:02d}'
|
||||||
|
raise ValueError(f'Unsupported lookup type: {lookup_type!r}')
|
||||||
|
|
||||||
|
|
||||||
def _sqlite_time_extract(lookup_type, dt):
|
def _sqlite_time_extract(lookup_type, dt):
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
from django.db.backends.sqlite3._functions import (
|
||||||
|
_sqlite_date_trunc, _sqlite_datetime_trunc, _sqlite_time_trunc,
|
||||||
|
)
|
||||||
|
from django.test import SimpleTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class FunctionTests(SimpleTestCase):
|
||||||
|
def test_sqlite_date_trunc(self):
|
||||||
|
msg = "Unsupported lookup type: 'unknown-lookup'"
|
||||||
|
with self.assertRaisesMessage(ValueError, msg):
|
||||||
|
_sqlite_date_trunc('unknown-lookup', '2005-08-11', None, None)
|
||||||
|
|
||||||
|
def test_sqlite_datetime_trunc(self):
|
||||||
|
msg = "Unsupported lookup type: 'unknown-lookup'"
|
||||||
|
with self.assertRaisesMessage(ValueError, msg):
|
||||||
|
_sqlite_datetime_trunc('unknown-lookup', '2005-08-11 1:00:00', None, None)
|
||||||
|
|
||||||
|
def test_sqlite_time_trunc(self):
|
||||||
|
msg = "Unsupported lookup type: 'unknown-lookup'"
|
||||||
|
with self.assertRaisesMessage(ValueError, msg):
|
||||||
|
_sqlite_time_trunc('unknown-lookup', '2005-08-11 1:00:00', None, None)
|
Loading…
Reference in New Issue