From c20f2f2ac90b23b8b072a589c229fbbc50f0da77 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Fri, 15 Oct 2010 07:34:23 +0000 Subject: [PATCH] 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. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14227 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/modeltests/model_package/tests.py | 119 +++++++++++------------- 1 file changed, 55 insertions(+), 64 deletions(-) diff --git a/tests/modeltests/model_package/tests.py b/tests/modeltests/model_package/tests.py index 99970faba1..e63e2e63ea 100644 --- a/tests/modeltests/model_package/tests.py +++ b/tests/modeltests/model_package/tests.py @@ -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 - +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 - + 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 - ->>> 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) - ->>> ad = Advertisment.objects.get(id=1) ->>> ad - - ->>> 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' - -"""} + # 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') + ) + # 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') + ) + self.assertEqual( + Article._meta.get_field('publications').m2m_column_name(), 'article_id' + ) + self.assertEqual( + Article._meta.get_field('publications').m2m_reverse_name(), + 'publication_id' + )