Cleaned up numbering with model unit tests

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3031 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-05-31 19:23:07 +00:00
parent a846155118
commit 02fcfe6216
6 changed files with 33 additions and 30 deletions

View File

@ -1,7 +1,12 @@
""" """
XXX. Callable defaults 31. Callable defaults
??? You can pass callable objects as the ``default`` parameter to a field. When
the object is created without an explicit value passed in, Django will call
the method to determine the default value.
This example uses ``datetime.datetime.now`` as the default for the ``pub_date``
field.
""" """
from django.db import models from django.db import models
@ -9,9 +14,9 @@ from datetime import datetime
class Article(models.Model): class Article(models.Model):
headline = models.CharField(maxlength=100, default='Default headline') headline = models.CharField(maxlength=100, default='Default headline')
pub_date = models.DateTimeField(default = datetime.now) pub_date = models.DateTimeField(default=datetime.now)
def __repr__(self): def __str__(self):
return self.headline return self.headline
API_TESTS = """ API_TESTS = """
@ -43,6 +48,4 @@ API_TESTS = """
>>> d = now - a.pub_date >>> d = now - a.pub_date
>>> d.seconds < 5 >>> d.seconds < 5
True True
""" """

View File

@ -1,8 +1,7 @@
""" """
27. Many-to-many and many-to-one relationships to the same table 28. Many-to-many and many-to-one relationships to the same table
This is a response to bug #1535
Make sure to set ``related_name`` if you use relationships to the same table.
""" """
from django.db import models from django.db import models
@ -14,8 +13,9 @@ class Issue(models.Model):
num = models.IntegerField() num = models.IntegerField()
cc = models.ManyToManyField(User, blank=True, related_name='test_issue_cc') cc = models.ManyToManyField(User, blank=True, related_name='test_issue_cc')
client = models.ForeignKey(User, related_name='test_issue_client') client = models.ForeignKey(User, related_name='test_issue_client')
def __repr__(self):
return "<Issue %d>" % (self.num,) def __str__(self):
return str(self.num)
class Meta: class Meta:
ordering = ('num',) ordering = ('num',)

View File

@ -1,15 +1,15 @@
""" """
26. Many-to-many relationships between the same two tables 27. Many-to-many relationships between the same two tables
In this example, A Person can have many friends, who are also people. Friendship is a In this example, A Person can have many friends, who are also people. Friendship is a
symmetrical relationshiup - if I am your friend, you are my friend. symmetrical relationshiup - if I am your friend, you are my friend.
A person can also have many idols - but while I may idolize you, you may not think A person can also have many idols - but while I may idolize you, you may not think
the same of me. 'Idols' is an example of a non-symmetrical m2m field. Only recursive the same of me. 'Idols' is an example of a non-symmetrical m2m field. Only recursive
m2m fields may be non-symmetrical, and they are symmetrical by default. m2m fields may be non-symmetrical, and they are symmetrical by default.
This test validates that the m2m table will create a mangled name for the m2m table if This test validates that the m2m table will create a mangled name for the m2m table if
there will be a clash, and tests that symmetry is preserved where appropriate. there will be a clash, and tests that symmetry is preserved where appropriate.
""" """
from django.db import models from django.db import models
@ -40,7 +40,7 @@ API_TESTS = """
>>> d.friends.add(a,c) >>> d.friends.add(a,c)
# Who is friends with Anne? # Who is friends with Anne?
>>> a.friends.all() >>> a.friends.all()
[Bill, Chuck, David] [Bill, Chuck, David]
# Who is friends with Bill? # Who is friends with Bill?
@ -52,14 +52,14 @@ API_TESTS = """
[Anne, David] [Anne, David]
# Who is friends with David? # Who is friends with David?
>>> d.friends.all() >>> d.friends.all()
[Anne, Chuck] [Anne, Chuck]
# Bill is already friends with Anne - add Anne again, but in the reverse direction # Bill is already friends with Anne - add Anne again, but in the reverse direction
>>> b.friends.add(a) >>> b.friends.add(a)
# Who is friends with Anne? # Who is friends with Anne?
>>> a.friends.all() >>> a.friends.all()
[Bill, Chuck, David] [Bill, Chuck, David]
# Who is friends with Bill? # Who is friends with Bill?
@ -70,7 +70,7 @@ API_TESTS = """
>>> b.friends.remove(a) >>> b.friends.remove(a)
# Who is friends with Anne? # Who is friends with Anne?
>>> a.friends.all() >>> a.friends.all()
[Chuck, David] [Chuck, David]
# Who is friends with Bill? # Who is friends with Bill?
@ -81,7 +81,7 @@ API_TESTS = """
>>> a.friends.clear() >>> a.friends.clear()
# Who is friends with Anne? # Who is friends with Anne?
>>> a.friends.all() >>> a.friends.all()
[] []
# Reverse relationships should also be gone # Reverse relationships should also be gone
@ -90,7 +90,7 @@ API_TESTS = """
[David] [David]
# Who is friends with David? # Who is friends with David?
>>> d.friends.all() >>> d.friends.all()
[Chuck] [Chuck]
@ -105,7 +105,7 @@ API_TESTS = """
>>> d.stalkers.add(a,c) >>> d.stalkers.add(a,c)
# Who are Anne's idols? # Who are Anne's idols?
>>> a.idols.all() >>> a.idols.all()
[Bill, Chuck, David] [Bill, Chuck, David]
# Who is stalking Anne? # Who is stalking Anne?
@ -140,7 +140,7 @@ API_TESTS = """
>>> b.stalkers.add(a) >>> b.stalkers.add(a)
# Who are Anne's idols? # Who are Anne's idols?
>>> a.idols.all() >>> a.idols.all()
[Bill, Chuck, David] [Bill, Chuck, David]
# Who is stalking Anne? # Who is stalking Anne?
@ -158,7 +158,7 @@ API_TESTS = """
>>> b.stalkers.remove(a) >>> b.stalkers.remove(a)
# Who are Anne's idols? # Who are Anne's idols?
>>> a.idols.all() >>> a.idols.all()
[Chuck, David] [Chuck, David]
# Who is stalking Anne? # Who is stalking Anne?
@ -177,7 +177,7 @@ API_TESTS = """
>>> a.idols.clear() >>> a.idols.clear()
# Who are Anne's idols # Who are Anne's idols
>>> a.idols.all() >>> a.idols.all()
[] []
# Reverse relationships should also be gone # Reverse relationships should also be gone
@ -186,7 +186,7 @@ API_TESTS = """
[] []
# Who is friends with David? # Who is friends with David?
>>> d.stalkers.all() >>> d.stalkers.all()
[Chuck] [Chuck]
""" """

View File

@ -1,5 +1,5 @@
""" """
25. Default manipulators 26. Default manipulators
Each model gets an AddManipulator and ChangeManipulator by default. Each model gets an AddManipulator and ChangeManipulator by default.
""" """

View File

@ -1,5 +1,5 @@
""" """
28. Object pagination 29. Object pagination
Django provides a framework for paginating a list of objects in a few lines Django provides a framework for paginating a list of objects in a few lines
of code. This is often useful for dividing search results or long lists of of code. This is often useful for dividing search results or long lists of

View File

@ -1,5 +1,5 @@
""" """
29. Validation 30. Validation
This is an experimental feature! This is an experimental feature!