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.