diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2010-10-15 07:34:23 +0000 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2010-10-15 07:34:23 +0000 |
| commit | c20f2f2ac90b23b8b072a589c229fbbc50f0da77 (patch) | |
| tree | 1e127081b7647a222ee2c9eff8233c13f70d1680 | |
| parent | 056659c1cf77d7760db955057c9bf1d9a7e7b20d (diff) | |
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
| -rw-r--r-- | tests/modeltests/model_package/tests.py | 119 |
1 files 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 -<Publication: Publication object> - ->>> from django.contrib.sites.models import Site ->>> current_site = Site.objects.get_current() ->>> current_site -<Site: example.com> - -# Regression for #12168: models split into subpackages still get M2M tables - ->>> a = Article(headline="a foo headline") ->>> a.save() ->>> a.publications.add(p) ->>> a.sites.add(current_site) - ->>> 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(customer="Lawrence Journal-World") ->>> ad.save() ->>> ad.publications.add(p) - ->>> ad = Advertisment.objects.get(id=1) ->>> ad -<Advertisment: Advertisment object> - ->>> 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') +class ModelPackageTests(TestCase): + def test_model_packages(self): + p = Publication.objects.create(title="FooBar") ->>> Article.publications.through._meta.fields[2].name -'publication' + current_site = Site.objects.get_current() + self.assertEqual(current_site.domain, "example.com") ->>> Article.publications.through._meta.fields[2].get_attname_column() -('publication_id', 'publication_id') + # 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) -# 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 + a = Article.objects.get(id=a.pk) + self.assertEqual(a.id, a.pk) + self.assertEqual(a.sites.count(), 1) ->>> Article._meta.get_field('publications').m2m_column_name() -'article_id' + # Regression for #12245 - Models can exist in the test package, too + ad = Advertisment.objects.create(customer="Lawrence Journal-World") + ad.publications.add(p) ->>> Article._meta.get_field('publications').m2m_reverse_name() -'publication_id' + ad = Advertisment.objects.get(id=ad.pk) + self.assertEqual(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 + 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' + ) |
