Skip to content
Permalink
Browse files

Migrated string_lookup doctests. Thanks to Stephan Jaekel.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13895 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
freakboy3742 committed Sep 27, 2010
1 parent 1bcde8d commit 6b5a240d50e83a0aef8c74d7423cc4e5178d357f
Showing with 78 additions and 64 deletions.
  1. +0 −64 tests/regressiontests/string_lookup/models.py
  2. +78 −0 tests/regressiontests/string_lookup/tests.py
@@ -43,67 +43,3 @@ class Article(models.Model):

def __str__(self):
return "Article %s" % self.name

__test__ = {'API_TESTS': ur"""
# Regression test for #1661 and #1662: Check that string form referencing of
# models works, both as pre and post reference, on all RelatedField types.
>>> f1 = Foo(name="Foo1")
>>> f1.save()
>>> f2 = Foo(name="Foo2")
>>> f2.save()
>>> w1 = Whiz(name="Whiz1")
>>> w1.save()
>>> b1 = Bar(name="Bar1", normal=f1, fwd=w1, back=f2)
>>> b1.save()
>>> b1.normal
<Foo: Foo Foo1>
>>> b1.fwd
<Whiz: Whiz Whiz1>
>>> b1.back
<Foo: Foo Foo2>
>>> base1 = Base(name="Base1")
>>> base1.save()
>>> child1 = Child(name="Child1", parent=base1)
>>> child1.save()
>>> child1.parent
<Base: Base Base1>
# Regression tests for #3937: make sure we can use unicode characters in
# queries.
# BUG: These tests fail on MySQL, but it's a problem with the test setup. A
# properly configured UTF-8 database can handle this.
>>> fx = Foo(name='Bjorn', friend=u'François')
>>> fx.save()
>>> Foo.objects.get(friend__contains=u'\xe7')
<Foo: Foo Bjorn>
# We can also do the above query using UTF-8 strings.
>>> Foo.objects.get(friend__contains='\xc3\xa7')
<Foo: Foo Bjorn>
# Regression tests for #5087: make sure we can perform queries on TextFields.
>>> a = Article(name='Test', text='The quick brown fox jumps over the lazy dog.')
>>> a.save()
>>> Article.objects.get(text__exact='The quick brown fox jumps over the lazy dog.')
<Article: Article Test>
>>> Article.objects.get(text__contains='quick brown fox')
<Article: Article Test>
# Regression test for #708: "like" queries on IP address fields require casting
# to text (on PostgreSQL).
>>> Article(name='IP test', text='The body', submitted_from='192.0.2.100').save()
>>> Article.objects.filter(submitted_from__contains='192.0.2')
[<Article: Article IP test>]
"""}
@@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
from django.test import TestCase
from regressiontests.string_lookup.models import Foo, Whiz, Bar, Article, Base, Child

class StringLookupTests(TestCase):

def test_string_form_referencing(self):
"""
Regression test for #1661 and #1662
Check that string form referencing of
models works, both as pre and post reference, on all RelatedField types.
"""

f1 = Foo(name="Foo1")
f1.save()
f2 = Foo(name="Foo2")
f2.save()

w1 = Whiz(name="Whiz1")
w1.save()

b1 = Bar(name="Bar1", normal=f1, fwd=w1, back=f2)
b1.save()

self.assertEquals(b1.normal, f1)

self.assertEquals(b1.fwd, w1)

self.assertEquals(b1.back, f2)

base1 = Base(name="Base1")
base1.save()

child1 = Child(name="Child1", parent=base1)
child1.save()

self.assertEquals(child1.parent, base1)

def test_unicode_chars_in_queries(self):
"""
Regression tests for #3937
make sure we can use unicode characters in queries.
If these tests fail on MySQL, it's a problem with the test setup.
A properly configured UTF-8 database can handle this.
"""

fx = Foo(name='Bjorn', friend=u'François')
fx.save()
self.assertEquals(Foo.objects.get(friend__contains=u'\xe7'), fx)

# We can also do the above query using UTF-8 strings.
self.assertEquals(Foo.objects.get(friend__contains='\xc3\xa7'), fx)

def test_queries_on_textfields(self):
"""
Regression tests for #5087
make sure we can perform queries on TextFields.
"""

a = Article(name='Test', text='The quick brown fox jumps over the lazy dog.')
a.save()
self.assertEquals(Article.objects.get(text__exact='The quick brown fox jumps over the lazy dog.'), a)

self.assertEquals(Article.objects.get(text__contains='quick brown fox'), a)

def test_ipaddress_on_postgresql(self):
"""
Regression test for #708
"like" queries on IP address fields require casting to text (on PostgreSQL).
"""
a = Article(name='IP test', text='The body', submitted_from='192.0.2.100')
a.save()
self.assertEquals(repr(Article.objects.filter(submitted_from__contains='192.0.2')),
repr([a]))

0 comments on commit 6b5a240

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.