diff options
author | Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) <srinivasreddy@users.noreply.github.com> | 2018-08-21 21:47:46 +0530 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-08-21 12:17:46 -0400 |
commit | 233c70f0479beb3bff9027e6cff680882978fd4d (patch) | |
tree | 3b557b0703a23b7f96d4a4ce77832b6cbccefd15 /tests/custom_lookups | |
parent | 201017df308266c7d5ed20181e6d0ffa5832e3e9 (diff) | |
download | django-233c70f0479beb3bff9027e6cff680882978fd4d.tar.gz |
Fixed #29658 -- Registered model lookups in tests with a context manager.
Diffstat (limited to 'tests/custom_lookups')
-rw-r--r-- | tests/custom_lookups/tests.py | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/tests/custom_lookups/tests.py b/tests/custom_lookups/tests.py index 418525c3ed..4bf85339ed 100644 --- a/tests/custom_lookups/tests.py +++ b/tests/custom_lookups/tests.py @@ -1,4 +1,3 @@ -import contextlib import time import unittest from datetime import date, datetime @@ -6,22 +5,12 @@ from datetime import date, datetime from django.core.exceptions import FieldError from django.db import connection, models from django.test import TestCase, override_settings +from django.test.utils import register_lookup from django.utils import timezone from .models import Article, Author, MySQLUnixTimestamp -@contextlib.contextmanager -def register_lookup(field, *lookups): - try: - for lookup in lookups: - field.register_lookup(lookup) - yield - finally: - for lookup in lookups: - field._unregister_lookup(lookup) - - class Div3Lookup(models.Lookup): lookup_name = 'div3' @@ -231,22 +220,14 @@ class LookupTests(TestCase): def test_custom_name_lookup(self): a1 = Author.objects.create(name='a1', birthdate=date(1981, 2, 16)) Author.objects.create(name='a2', birthdate=date(2012, 2, 29)) - custom_lookup_name = 'isactually' - custom_transform_name = 'justtheyear' - try: - models.DateField.register_lookup(YearTransform) - models.DateField.register_lookup(YearTransform, custom_transform_name) - YearTransform.register_lookup(Exactly) - YearTransform.register_lookup(Exactly, custom_lookup_name) + with register_lookup(models.DateField, YearTransform), \ + register_lookup(models.DateField, YearTransform, lookup_name='justtheyear'), \ + register_lookup(YearTransform, Exactly), \ + register_lookup(YearTransform, Exactly, lookup_name='isactually'): qs1 = Author.objects.filter(birthdate__testyear__exactly=1981) qs2 = Author.objects.filter(birthdate__justtheyear__isactually=1981) self.assertSequenceEqual(qs1, [a1]) self.assertSequenceEqual(qs2, [a1]) - finally: - YearTransform._unregister_lookup(Exactly) - YearTransform._unregister_lookup(Exactly, custom_lookup_name) - models.DateField._unregister_lookup(YearTransform) - models.DateField._unregister_lookup(YearTransform, custom_transform_name) def test_custom_exact_lookup_none_rhs(self): """ |