Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[soc2010/test-refactor] Converted custom_columns doctest to unittest.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/test-refactor@13346 bcc190cf-cafb-0310-a4f2-bffc1f526a37
- Loading branch information
1 parent
75302ff
commit 101796c
Showing
3 changed files
with
82 additions
and
66 deletions.
There are no files selected for viewing
29 changes: 29 additions & 0 deletions
29
tests/modeltests/custom_columns/fixtures/custom_columns_testdata.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
[ | ||
{ | ||
"pk": 2, | ||
"model": "custom_columns.author", | ||
"fields": { | ||
"first_name": "Peter", | ||
"last_name": "Jones" | ||
} | ||
}, | ||
{ | ||
"pk": 1, | ||
"model": "custom_columns.author", | ||
"fields": { | ||
"first_name": "John", | ||
"last_name": "Smith" | ||
} | ||
}, | ||
{ | ||
"pk": 1, | ||
"model": "custom_columns.article", | ||
"fields": { | ||
"headline": "Django lets you build web apps easily", | ||
"authors": [ | ||
2, | ||
1 | ||
] | ||
} | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
from django.test import TestCase | ||
|
||
from django.core.exceptions import FieldError | ||
|
||
from models import Author, Article | ||
|
||
class CustomColumnsTestCase(TestCase): | ||
fixtures = ['custom_columns_testdata.json'] | ||
|
||
def test_column_interface(self): | ||
# Although the table and column names on Author have been set to | ||
# custom values, nothing about using the Author model has | ||
# changed... | ||
self.assertEqual(Author.objects.get(first_name='John').id, | ||
1) | ||
|
||
# Query the available authors | ||
self.assertQuerysetEqual(Author.objects.all(), | ||
['<Author: Peter Jones>', '<Author: John Smith>']) | ||
self.assertQuerysetEqual(Author.objects.filter(first_name__exact='John'), | ||
['<Author: John Smith>']) | ||
self.assertEqual(repr(Author.objects.get(first_name__exact='John')), | ||
'<Author: John Smith>') | ||
self.assertRaises(FieldError, | ||
Author.objects.filter, | ||
firstname__exact='John') | ||
|
||
js = Author.objects.get(last_name__exact='Smith') | ||
|
||
self.assertEqual(js.first_name, | ||
u'John') | ||
self.assertEqual(js.last_name, | ||
u'Smith') | ||
self.assertRaises(AttributeError, | ||
getattr, | ||
js, 'firstname') | ||
self.assertRaises(AttributeError, | ||
getattr, | ||
js, 'last') | ||
|
||
# Although the Article table uses a custom m2m table, | ||
# nothing about using the m2m relationship has changed... | ||
|
||
# Get all the authors for an article | ||
art = Article.objects.get(headline='Django lets you build web apps easily') | ||
self.assertQuerysetEqual(art.authors.all(), | ||
['<Author: Peter Jones>', '<Author: John Smith>']) | ||
# Get the articles for an author | ||
self.assertQuerysetEqual(js.article_set.all(), | ||
['<Article: Django lets you build web apps easily>']) | ||
# Query the authors across the m2m relation | ||
self.assertQuerysetEqual(art.authors.filter(last_name='Jones'), | ||
['<Author: Peter Jones>']) |