summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/south/hacks
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/south/hacks')
-rw-r--r--lib/python2.7/site-packages/south/hacks/__init__.py10
-rw-r--r--lib/python2.7/site-packages/south/hacks/django_1_0.py110
2 files changed, 0 insertions, 120 deletions
diff --git a/lib/python2.7/site-packages/south/hacks/__init__.py b/lib/python2.7/site-packages/south/hacks/__init__.py
deleted file mode 100644
index 8f28503..0000000
--- a/lib/python2.7/site-packages/south/hacks/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-"""
-The hacks module encapsulates all the horrible things that play with Django
-internals in one, evil place.
-This top file will automagically expose the correct Hacks class.
-"""
-
-# Currently, these work for 1.0 and 1.1.
-from south.hacks.django_1_0 import Hacks
-
-hacks = Hacks() \ No newline at end of file
diff --git a/lib/python2.7/site-packages/south/hacks/django_1_0.py b/lib/python2.7/site-packages/south/hacks/django_1_0.py
deleted file mode 100644
index e4a60c6..0000000
--- a/lib/python2.7/site-packages/south/hacks/django_1_0.py
+++ /dev/null
@@ -1,110 +0,0 @@
-"""
-Hacks for the Django 1.0/1.0.2 releases.
-"""
-
-import django
-from django.conf import settings
-from django.db.backends.creation import BaseDatabaseCreation
-from django.db.models.loading import cache
-from django.core import management
-from django.core.management.commands.flush import Command as FlushCommand
-from django.utils.datastructures import SortedDict
-
-from south.utils.py3 import string_types
-
-class SkipFlushCommand(FlushCommand):
- def handle_noargs(self, **options):
- # no-op to avoid calling flush
- return
-
-class Hacks:
-
- def set_installed_apps(self, apps):
- """
- Sets Django's INSTALLED_APPS setting to be effectively the list passed in.
- """
-
- # Make sure it's a list.
- apps = list(apps)
-
- # Make sure it contains strings
- if apps:
- assert isinstance(apps[0], string_types), "The argument to set_installed_apps must be a list of strings."
-
- # Monkeypatch in!
- settings.INSTALLED_APPS, settings.OLD_INSTALLED_APPS = (
- apps,
- settings.INSTALLED_APPS,
- )
- self._redo_app_cache()
-
-
- def reset_installed_apps(self):
- """
- Undoes the effect of set_installed_apps.
- """
- settings.INSTALLED_APPS = settings.OLD_INSTALLED_APPS
- self._redo_app_cache()
-
-
- def _redo_app_cache(self):
- """
- Used to repopulate AppCache after fiddling with INSTALLED_APPS.
- """
- cache.loaded = False
- cache.handled = set() if django.VERSION >= (1, 6) else {}
- cache.postponed = []
- cache.app_store = SortedDict()
- cache.app_models = SortedDict()
- cache.app_errors = {}
- cache._populate()
-
-
- def clear_app_cache(self):
- """
- Clears the contents of AppCache to a blank state, so new models
- from the ORM can be added.
- """
- self.old_app_models, cache.app_models = cache.app_models, {}
-
-
- def unclear_app_cache(self):
- """
- Reversed the effects of clear_app_cache.
- """
- cache.app_models = self.old_app_models
- cache._get_models_cache = {}
-
-
- def repopulate_app_cache(self):
- """
- Rebuilds AppCache with the real model definitions.
- """
- cache._populate()
-
- def store_app_cache_state(self):
- self.stored_app_cache_state = dict(**cache.__dict__)
-
- def restore_app_cache_state(self):
- cache.__dict__ = self.stored_app_cache_state
-
- def patch_flush_during_test_db_creation(self):
- """
- Patches BaseDatabaseCreation.create_test_db to not flush database
- """
-
- def patch(f):
- def wrapper(*args, **kwargs):
- # hold onto the original and replace flush command with a no-op
- original_flush_command = management._commands['flush']
- try:
- management._commands['flush'] = SkipFlushCommand()
- # run create_test_db
- return f(*args, **kwargs)
- finally:
- # unpatch flush back to the original
- management._commands['flush'] = original_flush_command
- return wrapper
-
- BaseDatabaseCreation.create_test_db = patch(BaseDatabaseCreation.create_test_db)
-