Loading tests/model_package/tests.py +21 −11 Original line number Diff line number Diff line from __future__ import unicode_literals from django.contrib.sites.models import Site from django.db import models from django.db import models, connection from django.db.backends.utils import truncate_name from django.test import TestCase from .models.publication import Publication Loading @@ -14,14 +15,16 @@ class Advertisement(models.Model): class ModelPackageTests(TestCase): def test_model_packages(self): def test_m2m_tables_in_subpackage_models(self): """ Regression for #12168: models split into subpackages still get M2M tables. """ p = Publication.objects.create(title="FooBar") current_site = Site.objects.get_current() self.assertEqual(current_site.domain, "example.com") # 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) Loading @@ -30,16 +33,23 @@ class ModelPackageTests(TestCase): self.assertEqual(a.id, a.pk) self.assertEqual(a.sites.count(), 1) # Regression for #12245 - Models can exist in the test package, too def test_models_in_the_test_package(self): """ Regression for #12245 - Models can exist in the test package, too. """ p = Publication.objects.create(title="FooBar") ad = Advertisement.objects.create(customer="Lawrence Journal-World") ad.publications.add(p) ad = Advertisement.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 def test_automatic_m2m_column_names(self): """ 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' ) Loading @@ -55,9 +65,9 @@ class ModelPackageTests(TestCase): ('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_db_table(), truncate_name('model_package_article_publications', connection.ops.max_name_length()), ) self.assertEqual( Loading Loading
tests/model_package/tests.py +21 −11 Original line number Diff line number Diff line from __future__ import unicode_literals from django.contrib.sites.models import Site from django.db import models from django.db import models, connection from django.db.backends.utils import truncate_name from django.test import TestCase from .models.publication import Publication Loading @@ -14,14 +15,16 @@ class Advertisement(models.Model): class ModelPackageTests(TestCase): def test_model_packages(self): def test_m2m_tables_in_subpackage_models(self): """ Regression for #12168: models split into subpackages still get M2M tables. """ p = Publication.objects.create(title="FooBar") current_site = Site.objects.get_current() self.assertEqual(current_site.domain, "example.com") # 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) Loading @@ -30,16 +33,23 @@ class ModelPackageTests(TestCase): self.assertEqual(a.id, a.pk) self.assertEqual(a.sites.count(), 1) # Regression for #12245 - Models can exist in the test package, too def test_models_in_the_test_package(self): """ Regression for #12245 - Models can exist in the test package, too. """ p = Publication.objects.create(title="FooBar") ad = Advertisement.objects.create(customer="Lawrence Journal-World") ad.publications.add(p) ad = Advertisement.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 def test_automatic_m2m_column_names(self): """ 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' ) Loading @@ -55,9 +65,9 @@ class ModelPackageTests(TestCase): ('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_db_table(), truncate_name('model_package_article_publications', connection.ops.max_name_length()), ) self.assertEqual( Loading