mirror of https://github.com/django/django.git
Reorganized datetime db function tests.
This commit is contained in:
parent
5c3db0ef6a
commit
b523d42561
|
@ -17,7 +17,7 @@ from django.test import (
|
||||||
)
|
)
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from .models import Author, DTModel, Fan
|
from ..models import Author, DTModel, Fan
|
||||||
|
|
||||||
|
|
||||||
def truncate_to(value, kind, tzinfo=None):
|
def truncate_to(value, kind, tzinfo=None):
|
|
@ -0,0 +1,46 @@
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
from django.db.models.functions import Now
|
||||||
|
from django.test import TestCase
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from ..models import Article
|
||||||
|
|
||||||
|
lorem_ipsum = """
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||||
|
tempor incididunt ut labore et dolore magna aliqua."""
|
||||||
|
|
||||||
|
|
||||||
|
class NowTests(TestCase):
|
||||||
|
|
||||||
|
def test_basic(self):
|
||||||
|
a1 = Article.objects.create(
|
||||||
|
title='How to Django',
|
||||||
|
text=lorem_ipsum,
|
||||||
|
written=timezone.now(),
|
||||||
|
)
|
||||||
|
a2 = Article.objects.create(
|
||||||
|
title='How to Time Travel',
|
||||||
|
text=lorem_ipsum,
|
||||||
|
written=timezone.now(),
|
||||||
|
)
|
||||||
|
num_updated = Article.objects.filter(id=a1.id, published=None).update(published=Now())
|
||||||
|
self.assertEqual(num_updated, 1)
|
||||||
|
num_updated = Article.objects.filter(id=a1.id, published=None).update(published=Now())
|
||||||
|
self.assertEqual(num_updated, 0)
|
||||||
|
a1.refresh_from_db()
|
||||||
|
self.assertIsInstance(a1.published, datetime)
|
||||||
|
a2.published = Now() + timedelta(days=2)
|
||||||
|
a2.save()
|
||||||
|
a2.refresh_from_db()
|
||||||
|
self.assertIsInstance(a2.published, datetime)
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Article.objects.filter(published__lte=Now()),
|
||||||
|
['How to Django'],
|
||||||
|
lambda a: a.title
|
||||||
|
)
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
Article.objects.filter(published__gt=Now()),
|
||||||
|
['How to Time Travel'],
|
||||||
|
lambda a: a.title
|
||||||
|
)
|
|
@ -1,15 +1,8 @@
|
||||||
from datetime import datetime, timedelta
|
|
||||||
|
|
||||||
from django.db.models import CharField, Value as V
|
from django.db.models import CharField, Value as V
|
||||||
from django.db.models.functions import Coalesce, Length, Now, Upper
|
from django.db.models.functions import Coalesce, Length, Upper
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils import timezone
|
|
||||||
|
|
||||||
from .models import Article, Author
|
from .models import Author
|
||||||
|
|
||||||
lorem_ipsum = """
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
|
||||||
tempor incididunt ut labore et dolore magna aliqua."""
|
|
||||||
|
|
||||||
|
|
||||||
class FunctionTests(TestCase):
|
class FunctionTests(TestCase):
|
||||||
|
@ -36,43 +29,6 @@ class FunctionTests(TestCase):
|
||||||
lambda a: a.name
|
lambda a: a.name
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_now(self):
|
|
||||||
ar1 = Article.objects.create(
|
|
||||||
title='How to Django',
|
|
||||||
text=lorem_ipsum,
|
|
||||||
written=timezone.now(),
|
|
||||||
)
|
|
||||||
ar2 = Article.objects.create(
|
|
||||||
title='How to Time Travel',
|
|
||||||
text=lorem_ipsum,
|
|
||||||
written=timezone.now(),
|
|
||||||
)
|
|
||||||
|
|
||||||
num_updated = Article.objects.filter(id=ar1.id, published=None).update(published=Now())
|
|
||||||
self.assertEqual(num_updated, 1)
|
|
||||||
|
|
||||||
num_updated = Article.objects.filter(id=ar1.id, published=None).update(published=Now())
|
|
||||||
self.assertEqual(num_updated, 0)
|
|
||||||
|
|
||||||
ar1.refresh_from_db()
|
|
||||||
self.assertIsInstance(ar1.published, datetime)
|
|
||||||
|
|
||||||
ar2.published = Now() + timedelta(days=2)
|
|
||||||
ar2.save()
|
|
||||||
ar2.refresh_from_db()
|
|
||||||
self.assertIsInstance(ar2.published, datetime)
|
|
||||||
|
|
||||||
self.assertQuerysetEqual(
|
|
||||||
Article.objects.filter(published__lte=Now()),
|
|
||||||
['How to Django'],
|
|
||||||
lambda a: a.title
|
|
||||||
)
|
|
||||||
self.assertQuerysetEqual(
|
|
||||||
Article.objects.filter(published__gt=Now()),
|
|
||||||
['How to Time Travel'],
|
|
||||||
lambda a: a.title
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_func_transform_bilateral(self):
|
def test_func_transform_bilateral(self):
|
||||||
class UpperBilateral(Upper):
|
class UpperBilateral(Upper):
|
||||||
bilateral = True
|
bilateral = True
|
||||||
|
|
Loading…
Reference in New Issue