83 lines
2.0 KiB
Python
83 lines
2.0 KiB
Python
import datetime
|
|
|
|
from django.test import TestCase
|
|
|
|
from .models import Thing
|
|
|
|
|
|
class ReservedNameTests(TestCase):
|
|
def generate(self):
|
|
day1 = datetime.date(2005, 1, 1)
|
|
Thing.objects.create(
|
|
when="a",
|
|
join="b",
|
|
like="c",
|
|
drop="d",
|
|
alter="e",
|
|
having="f",
|
|
where=day1,
|
|
has_hyphen="h",
|
|
)
|
|
day2 = datetime.date(2006, 2, 2)
|
|
Thing.objects.create(
|
|
when="h",
|
|
join="i",
|
|
like="j",
|
|
drop="k",
|
|
alter="l",
|
|
having="m",
|
|
where=day2,
|
|
)
|
|
|
|
def test_simple(self):
|
|
day1 = datetime.date(2005, 1, 1)
|
|
t = Thing.objects.create(
|
|
when="a",
|
|
join="b",
|
|
like="c",
|
|
drop="d",
|
|
alter="e",
|
|
having="f",
|
|
where=day1,
|
|
has_hyphen="h",
|
|
)
|
|
self.assertEqual(t.when, "a")
|
|
|
|
day2 = datetime.date(2006, 2, 2)
|
|
u = Thing.objects.create(
|
|
when="h",
|
|
join="i",
|
|
like="j",
|
|
drop="k",
|
|
alter="l",
|
|
having="m",
|
|
where=day2,
|
|
)
|
|
self.assertEqual(u.when, "h")
|
|
|
|
def test_order_by(self):
|
|
self.generate()
|
|
things = [t.when for t in Thing.objects.order_by("when")]
|
|
self.assertEqual(things, ["a", "h"])
|
|
|
|
def test_fields(self):
|
|
self.generate()
|
|
v = Thing.objects.get(pk="a")
|
|
self.assertEqual(v.join, "b")
|
|
self.assertEqual(v.where, datetime.date(year=2005, month=1, day=1))
|
|
|
|
def test_dates(self):
|
|
self.generate()
|
|
resp = Thing.objects.dates("where", "year")
|
|
self.assertEqual(
|
|
list(resp),
|
|
[
|
|
datetime.date(2005, 1, 1),
|
|
datetime.date(2006, 1, 1),
|
|
],
|
|
)
|
|
|
|
def test_month_filter(self):
|
|
self.generate()
|
|
self.assertEqual(Thing.objects.filter(where__month=1)[0].when, "a")
|