from __future__ import absolute_import
import datetime
from django.test import TransactionTestCase
from django.utils.unittest import skipUnless
from django.db import connection, DatabaseError, IntegrityError
from django.db.models.fields import IntegerField, TextField, CharField, SlugField
from django.db.models.fields.related import ManyToManyField, ForeignKey
from django.db.models.loading import cache, BaseAppCache
from django.db import models
from .models import TotallyNormal, SoAlternative, new_app_cache


class AppCacheTests(TransactionTestCase):
    """
    Tests the AppCache borg and non-borg versions
    """

    def test_models_py(self):
        """
        Tests that the models in the models.py file were loaded correctly.
        """

        self.assertEqual(cache.get_model("app_cache", "TotallyNormal"), TotallyNormal)
        self.assertEqual(cache.get_model("app_cache", "SoAlternative"), None)

        self.assertEqual(new_app_cache.get_model("app_cache", "TotallyNormal"), None)
        self.assertEqual(new_app_cache.get_model("app_cache", "SoAlternative"), SoAlternative)

    def test_dynamic_load(self):
        """
        Makes a new model at runtime and ensures it goes into the right place.
        """
        old_models = cache.get_models(cache.get_app("app_cache"))
        # Construct a new model in a new app cache
        body = {}
        new_app_cache = BaseAppCache()
        meta_contents = {
            'app_label': "app_cache",
            'app_cache': new_app_cache,
        }
        meta = type("Meta", tuple(), meta_contents)
        body['Meta'] = meta
        body['__module__'] = TotallyNormal.__module__
        temp_model = type("SouthPonies", (models.Model,), body)
        # Make sure it appeared in the right place!
        self.assertEqual(
            old_models,
            cache.get_models(cache.get_app("app_cache")),
        )
        self.assertEqual(new_app_cache.get_model("app_cache", "SouthPonies"), temp_model)

@@ -36,24 +36,8 @@
 ort%0A
-import datetime%0A
 from
@@ -61,289 +61,15 @@
 rt T
-ransactionTestCase%0Afrom django.utils.unittest import skipUnless%0Afrom django.db import connection, DatabaseError, IntegrityError%0Afrom django.db.models.fields import IntegerField, TextField, CharField, SlugField%0Afrom django.db.models.fields.related import ManyToManyField, ForeignKey
+estCase
 %0Afro
@@ -241,19 +241,8 @@
 sts(
-Transaction
 Test
@@ -432,16 +432,16 @@
 rectly.%0A
+
         
@@ -440,25 +440,24 @@
         %22%22%22%0A
-%0A
         self

Make multi-app-cache tests work again