| from __future__ import with_statement, absolute_import |
| |
| from django.conf import settings |
| from django.core.exceptions import ImproperlyConfigured |
| from django.db.models.loading import get_app |
| from django.test import TestCase |
| from django.test.utils import override_settings |
| |
| from .models import Empty |
| |
| |
| class EmptyModelTests(TestCase): |
| def test_empty(self): |
| m = Empty() |
| self.assertEqual(m.id, None) |
| m.save() |
| m2 = Empty.objects.create() |
| self.assertEqual(len(Empty.objects.all()), 2) |
| self.assertTrue(m.id is not None) |
| existing = Empty(m.id) |
| existing.save() |
| |
| class NoModelTests(TestCase): |
| """ |
| Test for #7198 to ensure that the proper error message is raised |
| when attempting to load an app with no models.py file. |
| |
| Because the test runner won't currently load a test module with no |
| models.py file, this TestCase instead lives in this module. |
| |
| It seemed like an appropriate home for it. |
| """ |
| @override_settings(INSTALLED_APPS=("modeltests.empty.no_models",)) |
| def test_no_models(self): |
| with self.assertRaisesRegexp(ImproperlyConfigured, |
| 'App with label no_models is missing a models.py module.'): |
| get_app('no_models') |