Author: Alex
Date: 2010-10-15 02:34:41 -0500 (Fri, 15 Oct 2010)
New Revision: 14228

Modified:
   django/branches/releases/1.2.X/tests/modeltests/model_package/tests.py
Log:
[1.2.X] Fixed #14473 -- converted the model_package tests from doctests to 
unitests.  We have always been at war with doctests.  Thanks to Gabriel Hurley 
for the patch.  Backport of [14227].

Modified: django/branches/releases/1.2.X/tests/modeltests/model_package/tests.py
===================================================================
--- django/branches/releases/1.2.X/tests/modeltests/model_package/tests.py      
2010-10-15 07:34:23 UTC (rev 14227)
+++ django/branches/releases/1.2.X/tests/modeltests/model_package/tests.py      
2010-10-15 07:34:41 UTC (rev 14228)
@@ -1,81 +1,72 @@
+from django.contrib.sites.models import Site
 from django.db import models
+from django.test import TestCase
 
+from models.publication import Publication
+from models.article import Article
+
+
 class Advertisment(models.Model):
     customer = models.CharField(max_length=100)
-    publications = models.ManyToManyField("model_package.Publication", 
null=True, blank=True)
+    publications = models.ManyToManyField(
+        "model_package.Publication", null=True, blank=True
+    )
 
     class Meta:
         app_label = 'model_package'
 
-__test__ = {'API_TESTS': """
->>> from models.publication import Publication
->>> from models.article import Article
 
->>> p = Publication(title="FooBar")
->>> p.save()
->>> p
-<Publication: Publication object>
+class ModelPackageTests(TestCase):
+    def test_model_packages(self):
+        p = Publication.objects.create(title="FooBar")
 
->>> from django.contrib.sites.models import Site
->>> current_site = Site.objects.get_current()
->>> current_site
-<Site: example.com>
+        current_site = Site.objects.get_current()
+        self.assertEqual(current_site.domain, "example.com")
 
-# Regression for #12168: models split into subpackages still get M2M tables
+        # Regression for #12168: models split into subpackages still get M2M
+        # tables
+        a = Article.objects.create(headline="a foo headline")
+        a.publications.add(p)
+        a.sites.add(current_site)
 
->>> a = Article(headline="a foo headline")
->>> a.save()
->>> a.publications.add(p)
->>> a.sites.add(current_site)
+        a = Article.objects.get(id=a.pk)
+        self.assertEqual(a.id, a.pk)
+        self.assertEqual(a.sites.count(), 1)
 
->>> a = Article.objects.get(id=1)
->>> a
-<Article: Article object>
->>> a.id
-1
->>> a.sites.count()
-1
+        # Regression for #12245 - Models can exist in the test package, too
+        ad = Advertisment.objects.create(customer="Lawrence Journal-World")
+        ad.publications.add(p)
 
-# Regression for #12245 - Models can exist in the test package, too
+        ad = Advertisment.objects.get(id=ad.pk)
+        self.assertEqual(ad.publications.count(), 1)
 
->>> ad = Advertisment(customer="Lawrence Journal-World")
->>> ad.save()
->>> ad.publications.add(p)
+        # Regression for #12386 - field names on the autogenerated intermediate
+        # class that are specified as dotted strings don't retain any path
+        # component for the field or column name
+        self.assertEqual(
+            Article.publications.through._meta.fields[1].name, 'article'
+        )
+        self.assertEqual(
+            Article.publications.through._meta.fields[1].get_attname_column(),
+            ('article_id', 'article_id')
+        )
+        self.assertEqual(
+            Article.publications.through._meta.fields[2].name, 'publication'
+        )
+        self.assertEqual(
+            Article.publications.through._meta.fields[2].get_attname_column(),
+            ('publication_id', 'publication_id')
+        )
 
->>> ad = Advertisment.objects.get(id=1)
->>> ad
-<Advertisment: Advertisment object>
+        # The oracle backend truncates the name to 
'model_package_article_publ233f'.
+        self.assertTrue(
+            Article._meta.get_field('publications').m2m_db_table() in 
('model_package_article_publications', 'model_package_article_publ233f')
+        )
 
->>> ad.publications.count()
-1
-
-# Regression for #12386 - field names on the autogenerated intermediate class
-# that are specified as dotted strings don't retain any path component for the
-# field or column name
-
->>> Article.publications.through._meta.fields[1].name
-'article'
-
->>> Article.publications.through._meta.fields[1].get_attname_column()
-('article_id', 'article_id')
-
->>> Article.publications.through._meta.fields[2].name
-'publication'
-
->>> Article.publications.through._meta.fields[2].get_attname_column()
-('publication_id', 'publication_id')
-
-# The oracle backend truncates the name to 'model_package_article_publ233f'.
->>> Article._meta.get_field('publications').m2m_db_table() \\
-... in ('model_package_article_publications', 'model_package_article_publ233f')
-True
-
->>> Article._meta.get_field('publications').m2m_column_name()
-'article_id'
-
->>> Article._meta.get_field('publications').m2m_reverse_name()
-'publication_id'
-
-"""}
-
-
+        self.assertEqual(
+            Article._meta.get_field('publications').m2m_column_name(), 
'article_id'
+        )
+        self.assertEqual(
+            Article._meta.get_field('publications').m2m_reverse_name(),
+            'publication_id'
+        )

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to