Commit 92c49d6f authored by Tim Graham's avatar Tim Graham
Browse files

Revert "Fixed #20462 - Fixed sqlite regex lookups for null values and non-string fields."

This reverts commit 64041f0e.

lookup.tests.LookupTests.test_regex_non_string fails under Postgres.
We should also try to rewrite the test using an existing model.
parent 78974ed5
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -270,7 +270,6 @@ answer newbie questions, and generally made Django that much better:
    Brian Harring <ferringb@gmail.com>
    Brant Harris
    Ronny Haryanto <http://ronny.haryan.to/>
    Axel Haustant <noirbizarre@gmail.com>
    Hawkeye
    Kent Hauser <kent@khauser.net>
    Joe Heck <http://www.rhonabwy.com/wp/>
+1 −1
Original line number Diff line number Diff line
@@ -519,4 +519,4 @@ def _sqlite_format_dtdelta(dt, conn, days, secs, usecs):
    return str(dt)

def _sqlite_regexp(re_pattern, re_string):
    return bool(re.search(re_pattern, str(re_string))) if re_string is not None else False
    return bool(re.search(re_pattern, re_string))
+0 −9
Original line number Diff line number Diff line
@@ -57,12 +57,3 @@ class Player(models.Model):

    def __str__(self):
        return self.name


@python_2_unicode_compatible
class RegexTestModel(models.Model):
    name = models.CharField(max_length=100, null=True)
    integer = models.IntegerField(null=True)

    def __str__(self):
        return self.name
+1 −16
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ from operator import attrgetter
from django.core.exceptions import FieldError
from django.test import TestCase, skipUnlessDBFeature

from .models import Author, Article, Tag, Game, Season, Player, RegexTestModel
from .models import Author, Article, Tag, Game, Season, Player


class LookupTests(TestCase):
@@ -610,21 +610,6 @@ class LookupTests(TestCase):
        self.assertQuerysetEqual(Article.objects.filter(headline__regex=r'b(.).*b\1'),
            ['<Article: barfoobaz>', '<Article: bazbaRFOO>', '<Article: foobarbaz>'])

    def test_regex_null(self):
        """
        Ensure that a regex lookup does not fail on null/None values
        """
        RegexTestModel.objects.create(name=None)
        self.assertQuerysetEqual(RegexTestModel.objects.filter(name__regex=r'^$'), [])

    def test_regex_non_string(self):
        """
        Ensure that a regex lookup does not fail on non-string fields
        """
        RegexTestModel.objects.create(name='test', integer=5)
        self.assertQuerysetEqual(RegexTestModel.objects.filter(integer__regex=r'^5$'),
            ['<RegexTestModel: test>'])

    def test_nonfield_lookups(self):
        """
        Ensure that a lookup query containing non-fields raises the proper