mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Migrated m2m_intermediary doctests. Thanks to Alex Gaynor.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13787 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -8,21 +8,21 @@ class RelatedObjectTests(TestCase): | ||||
|     def test_m2m_and_m2o(self): | ||||
|         r = User.objects.create(username="russell") | ||||
|         g = User.objects.create(username="gustav") | ||||
|          | ||||
|  | ||||
|         i1 = Issue(num=1) | ||||
|         i1.client = r | ||||
|         i1.save() | ||||
|          | ||||
|  | ||||
|         i2 = Issue(num=2) | ||||
|         i2.client = r | ||||
|         i2.save() | ||||
|         i2.cc.add(r) | ||||
|          | ||||
|  | ||||
|         i3 = Issue(num=3) | ||||
|         i3.client = g | ||||
|         i3.save() | ||||
|         i3.cc.add(r) | ||||
|          | ||||
|  | ||||
|         self.assertQuerysetEqual( | ||||
|             Issue.objects.filter(client=r.id), [ | ||||
|                 1, | ||||
| @@ -46,7 +46,7 @@ class RelatedObjectTests(TestCase): | ||||
|             ], | ||||
|             lambda i: i.num | ||||
|         ) | ||||
|          | ||||
|  | ||||
|         # These queries combine results from the m2m and the m2o relationships. | ||||
|         # They're three ways of saying the same thing. | ||||
|         self.assertQuerysetEqual( | ||||
|   | ||||
| @@ -34,35 +34,3 @@ class Writer(models.Model): | ||||
|     def __unicode__(self): | ||||
|         return u'%s (%s)' % (self.reporter, self.position) | ||||
|  | ||||
| __test__ = {'API_TESTS':""" | ||||
| # Create a few Reporters. | ||||
| >>> r1 = Reporter(first_name='John', last_name='Smith') | ||||
| >>> r1.save() | ||||
| >>> r2 = Reporter(first_name='Jane', last_name='Doe') | ||||
| >>> r2.save() | ||||
|  | ||||
| # Create an Article. | ||||
| >>> from datetime import datetime | ||||
| >>> a = Article(headline='This is a test', pub_date=datetime(2005, 7, 27)) | ||||
| >>> a.save() | ||||
|  | ||||
| # Create a few Writers. | ||||
| >>> w1 = Writer(reporter=r1, article=a, position='Main writer') | ||||
| >>> w1.save() | ||||
| >>> w2 = Writer(reporter=r2, article=a, position='Contributor') | ||||
| >>> w2.save() | ||||
|  | ||||
| # Play around with the API. | ||||
| >>> a.writer_set.select_related().order_by('-position') | ||||
| [<Writer: John Smith (Main writer)>, <Writer: Jane Doe (Contributor)>] | ||||
| >>> w1.reporter | ||||
| <Reporter: John Smith> | ||||
| >>> w2.reporter | ||||
| <Reporter: Jane Doe> | ||||
| >>> w1.article | ||||
| <Article: This is a test> | ||||
| >>> w2.article | ||||
| <Article: This is a test> | ||||
| >>> r1.writer_set.all() | ||||
| [<Writer: John Smith (Main writer)>] | ||||
| """} | ||||
|   | ||||
							
								
								
									
										38
									
								
								tests/modeltests/m2m_intermediary/tests.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								tests/modeltests/m2m_intermediary/tests.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| from datetime import datetime | ||||
|  | ||||
| from django.test import TestCase | ||||
|  | ||||
| from models import Reporter, Article, Writer | ||||
|  | ||||
|  | ||||
| class M2MIntermediaryTests(TestCase): | ||||
|     def test_intermeiary(self): | ||||
|         r1 = Reporter.objects.create(first_name="John", last_name="Smith") | ||||
|         r2 = Reporter.objects.create(first_name="Jane", last_name="Doe") | ||||
|  | ||||
|         a = Article.objects.create( | ||||
|             headline="This is a test", pub_date=datetime(2005, 7, 27) | ||||
|         ) | ||||
|  | ||||
|         w1 = Writer.objects.create(reporter=r1, article=a, position="Main writer") | ||||
|         w2 = Writer.objects.create(reporter=r2, article=a, position="Contributor") | ||||
|  | ||||
|         self.assertQuerysetEqual( | ||||
|             a.writer_set.select_related().order_by("-position"), [ | ||||
|                 ("John Smith", "Main writer"), | ||||
|                 ("Jane Doe", "Contributor"), | ||||
|             ], | ||||
|             lambda w: (unicode(w.reporter), w.position) | ||||
|         ) | ||||
|         self.assertEqual(w1.reporter, r1) | ||||
|         self.assertEqual(w2.reporter, r2) | ||||
|  | ||||
|         self.assertEqual(w1.article, a) | ||||
|         self.assertEqual(w2.article, a) | ||||
|  | ||||
|         self.assertQuerysetEqual( | ||||
|             r1.writer_set.all(), [ | ||||
|                 ("John Smith", "Main writer") | ||||
|             ], | ||||
|             lambda w: (unicode(w.reporter), w.position) | ||||
|         ) | ||||
		Reference in New Issue
	
	Block a user