diff options
| author | Jason Pellerin <jpellerin@gmail.com> | 2006-09-04 02:20:26 +0000 |
|---|---|---|
| committer | Jason Pellerin <jpellerin@gmail.com> | 2006-09-04 02:20:26 +0000 |
| commit | b17f250907351923f39f8a50b87a35b26d2ca307 (patch) | |
| tree | bd0202dea501c6678a0b56b8e108194aab78468d /tests/othertests/request_isolation.py | |
| parent | 5a58772a1ee470e2890d3c716ce4918555100a55 (diff) | |
[multi-db] Merge trunk to [3661]
git-svn-id: http://code.djangoproject.com/svn/django/branches/multiple-db-support@3712 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/othertests/request_isolation.py')
| -rw-r--r-- | tests/othertests/request_isolation.py | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/tests/othertests/request_isolation.py b/tests/othertests/request_isolation.py deleted file mode 100644 index 6c29306c4e..0000000000 --- a/tests/othertests/request_isolation.py +++ /dev/null @@ -1,140 +0,0 @@ -# tests that db settings can change between requests -import copy -import os -from django.conf import settings, UserSettingsHolder -from django.core.handlers.wsgi import WSGIHandler -from django.db import models, model_connection_name, _default, connection -from django.http import HttpResponse - -# state holder -S = {} - -# models -class MX(models.Model): - val = models.CharField(maxlength=10) - class Meta: - app_label = 'ri' - - -class MY(models.Model): - val = models.CharField(maxlength=10) - class Meta: - app_label = 'ri' - - -# tests -def test_one(path, request): - """Start out with settings as originally configured""" - assert model_connection_name(MX) == 'django_test_db_a' - assert MX._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.OTHER_DATABASES['django_test_db_a']['DATABASE_NAME'] - assert model_connection_name(MY) == 'django_test_db_b' - assert MY._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.OTHER_DATABASES['django_test_db_b']['DATABASE_NAME'], \ - "%s != %s" % \ - (MY._default_manager.db.connection.settings.DATABASE_NAME, - settings.OTHER_DATABASES['django_test_db_b']['DATABASE_NAME']) - - -def test_two(path, request): - """Between the first and second requests, settings change to assign - model MY to a different connection - """ - assert model_connection_name(MX) == 'django_test_db_a' - assert MX._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.OTHER_DATABASES['django_test_db_a']['DATABASE_NAME'] - assert model_connection_name(MY) == _default - assert MY._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.DATABASE_NAME, "%s != %s" % \ - (MY._default_manager.db.connection.settings.DATABASE_NAME, - settings.DATABASE_NAME) - - -def test_three(path, request): - """Between the 2nd and 3rd requests, the settings at the names in - OTHER_DATABASES have changed. - """ - assert model_connection_name(MX) == 'django_test_db_b' - assert MX._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.OTHER_DATABASES['django_test_db_b']['DATABASE_NAME'] - assert model_connection_name(MY) == 'django_test_db_a' - assert MY._default_manager.db.connection.settings.DATABASE_NAME == \ - settings.OTHER_DATABASES['django_test_db_a']['DATABASE_NAME'], \ - "%s != %s" % \ - (MY._default_manager.db.connection.settings.DATABASE_NAME, - settings.OTHER_DATABASES['django_test_db_a']['DATABASE_NAME']) - - -# helpers -class MockHandler(WSGIHandler): - - def __init__(self, test): - self.test = test - super(MockHandler, self).__init__() - - def get_response(self, path, request): - # debug("mock handler answering %s, %s", path, request) - return HttpResponse(self.test(path, request)) - - -def pr(*arg): - if S['verbosity'] >= 1: - msg, arg = arg[0], arg[1:] - print msg % arg - - -def debug(*arg): - if S['verbosity'] >= 2: - msg, arg = arg[0], arg[1:] - print msg % arg - - -def setup(): - debug("setup") - S['settings'] = settings._target - settings._target = UserSettingsHolder(copy.deepcopy(settings._target)) - settings.OTHER_DATABASES['django_test_db_a']['MODELS'] = ['ri.MX'] - settings.OTHER_DATABASES['django_test_db_b']['MODELS'] = ['ri.MY'] - - -def teardown(): - debug("teardown") - settings._target = S['settings'] - - -def start_response(code, headers): - debug("start response: %s %s", code, headers) - pass - - -def main(): - debug("running tests") - - env = os.environ.copy() - env['PATH_INFO'] = '/' - env['REQUEST_METHOD'] = 'GET' - - MockHandler(test_one)(env, start_response) - - settings.OTHER_DATABASES['django_test_db_b']['MODELS'] = [] - MockHandler(test_two)(env, start_response) - - settings.OTHER_DATABASES['django_test_db_b']['MODELS'] = ['ri.MY'] - settings.OTHER_DATABASES['django_test_db_b'], \ - settings.OTHER_DATABASES['django_test_db_a'] = \ - settings.OTHER_DATABASES['django_test_db_a'], \ - settings.OTHER_DATABASES['django_test_db_b'] - MockHandler(test_three)(env, start_response) - - -def run_tests(verbosity=0): - S['verbosity'] = verbosity - setup() - try: - main() - finally: - teardown() - - -if __name__ == '__main__': - run_tests(2) |
