From 3f2ab0777add5ca1d0b45333d569efb43e7ba397 Mon Sep 17 00:00:00 2001 From: Bernardo Heynemann Date: Wed, 14 Sep 2011 14:07:09 -0300 Subject: [PATCH] Fix for django context settings --- .gitignore | 1 + django_pyvows/context.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0fae1a5..0144ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ dist/ .project .pydevproject +build/ diff --git a/django_pyvows/context.py b/django_pyvows/context.py index a97cdd1..3d73a07 100644 --- a/django_pyvows/context.py +++ b/django_pyvows/context.py @@ -10,6 +10,7 @@ import os import re +from threading import local, current_thread from pyvows import Vows from django.http import HttpRequest @@ -31,15 +32,24 @@ class DjangoContext(Vows.Context): os.environ['DJANGO_SETTINGS_MODULE'] = settings_path settings_tracker.install() + def __init__(self, parent): super(DjangoContext, self).__init__(parent) - self.settings = {} self.ignore('get_settings', 'template', 'request', 'model', 'url', 'find_in_parent', 'start_environment', 'port', 'host', 'get_url', 'get', 'post') + + @property + def settings(self): + thread = current_thread() + if not hasattr(thread, "settings"): + thread.settings = local() + return thread.settings + def setup(self): DjangoContext.start_environment(self.get_settings()) + def get_settings(self): if 'DJANGO_SETTINGS_MODULE' in os.environ: return os.environ['DJANGO_SETTINGS_MODULE']