Skip to content

Commit 3aa239c

Browse files
committed
add tests for Value
1 parent a40e0ae commit 3aa239c

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

tests/expressions_/__init__.py

Whitespace-only changes.

tests/expressions_/test_value.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import datetime
2+
import uuid
3+
from decimal import Decimal
4+
5+
from bson import Decimal128
6+
from django.db.models import Value
7+
from django.test import SimpleTestCase
8+
9+
10+
class ValueTests(SimpleTestCase):
11+
def test_date(self):
12+
self.assertEqual(
13+
Value(datetime.date(2025, 1, 1)).as_mql(None, None),
14+
{"$literal": datetime.datetime(2025, 1, 1)},
15+
)
16+
17+
def test_datetime(self):
18+
self.assertEqual(
19+
Value(datetime.datetime(2025, 1, 1, 9, 8, 7)).as_mql(None, None),
20+
{"$literal": datetime.datetime(2025, 1, 1)},
21+
)
22+
23+
def test_decimal(self):
24+
self.assertEqual(Value(Decimal("1.0")).as_mql(None, None), {"$literal": Decimal128("1.0")})
25+
26+
def test_time(self):
27+
self.assertEqual(
28+
Value(datetime.time(9, 8, 7)).as_mql(None, None),
29+
{"$literal": datetime.datetime(1, 1, 1, 9, 8, 7)},
30+
)
31+
32+
def test_timedelta(self):
33+
self.assertEqual(
34+
Value(datetime.timedelta(3600)).as_mql(None, None), {"$literal": 311040000000.0}
35+
)
36+
37+
def test_int(self):
38+
self.assertEqual(Value(1).as_mql(None, None), {"$literal": 1})
39+
40+
def test_str(self):
41+
self.assertEqual(Value("foo").as_mql(None, None), {"$literal": "foo"})
42+
43+
def test_uuid(self):
44+
value = uuid.UUID(int=1)
45+
self.assertEqual(
46+
Value(value).as_mql(None, None), {"$literal": "00000000000000000000000000000001"}
47+
)

0 commit comments

Comments
 (0)