Kaydet (Commit) b523d425 authored tarafından Nick Pope's avatar Nick Pope Kaydeden (comit) Tim Graham

Reorganized datetime db function tests.

üst 5c3db0ef
...@@ -17,7 +17,7 @@ from django.test import ( ...@@ -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):
......
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
)
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
lorem_ipsum = """ from .models import Author
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): ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment