From 483e1b807e7a3c9e49fe5fcbf9b1300ef98a381c Mon Sep 17 00:00:00 2001 From: konarkmodi Date: Tue, 19 Mar 2013 03:39:26 +0530 Subject: [PATCH] Refs #18586 -- Split out long custom_columns lookup test into multiple tests. --- tests/custom_columns/tests.py | 49 +++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/tests/custom_columns/tests.py b/tests/custom_columns/tests.py index a2e5323a75..51028b0c46 100644 --- a/tests/custom_columns/tests.py +++ b/tests/custom_columns/tests.py @@ -8,66 +8,71 @@ from .models import Author, Article class CustomColumnsTests(TestCase): - def test_db_column(self): + def setUp(self): a1 = Author.objects.create(first_name="John", last_name="Smith") a2 = Author.objects.create(first_name="Peter", last_name="Jones") art = Article.objects.create(headline="Django lets you build Web apps easily") art.authors = [a1, a2] - # Although the table and column names on Author have been set to custom - # values, nothing about using the Author model has changed... + self.a1 = a1 + self.art = art - # Query the available authors + def test_query_all_available_authors(self): self.assertQuerysetEqual( Author.objects.all(), [ "Peter Jones", "John Smith", ], six.text_type ) + + def test_get_first_name(self): + self.assertEqual( + Author.objects.get(first_name__exact="John"), + self.a1, + ) + + def test_filter_first_name(self): self.assertQuerysetEqual( Author.objects.filter(first_name__exact="John"), [ "John Smith", ], six.text_type - ) - self.assertEqual( - Author.objects.get(first_name__exact="John"), - a1, + ) + def test_field_error(self): self.assertRaises(FieldError, lambda: Author.objects.filter(firstname__exact="John") ) - a = Author.objects.get(last_name__exact="Smith") - a.first_name = "John" - a.last_name = "Smith" + def test_attribute_error(self): + with self.assertRaises(AttributeError): + self.a1.firstname - self.assertRaises(AttributeError, lambda: a.firstname) - self.assertRaises(AttributeError, lambda: a.last) + with self.assertRaises(AttributeError): + self.a1.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 + def test_get_all_authors_for_an_article(self): self.assertQuerysetEqual( - art.authors.all(), [ + self.art.authors.all(), [ "Peter Jones", "John Smith", ], six.text_type ) - # Get the articles for an author + + def test_get_all_articles_for_an_author(self): self.assertQuerysetEqual( - a.article_set.all(), [ + self.a1.article_set.all(), [ "Django lets you build Web apps easily", ], lambda a: a.headline ) - # Query the authors across the m2m relation + + def test_get_author_m2m_relation(self): self.assertQuerysetEqual( - art.authors.filter(last_name='Jones'), [ + self.art.authors.filter(last_name='Jones'), [ "Peter Jones" ], six.text_type