Commit 86fe0282 by Gabriel Falcao

settings.LETTUCE_SERVE_ADMIN_MEDIA forces lettuce built-in server to deliver…

settings.LETTUCE_SERVE_ADMIN_MEDIA forces lettuce built-in server to deliver admin static files. closes #158
parent e305e514
...@@ -134,6 +134,13 @@ class ThreadedServer(multiprocessing.Process): ...@@ -134,6 +134,13 @@ class ThreadedServer(multiprocessing.Process):
] ]
return all(conditions) return all(conditions)
def should_serve_admin_media(self):
conditions = [
'django.contrib.admin' in settings.INSTALLED_APPS,
getattr(settings, 'LETTUCE_SERVE_ADMIN_MEDIA', False),
]
return any(conditions)
def run(self): def run(self):
self.lock.acquire() self.lock.acquire()
pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid') pidfile = os.path.join(tempfile.gettempdir(), 'lettuce-django.pid')
...@@ -178,7 +185,7 @@ class ThreadedServer(multiprocessing.Process): ...@@ -178,7 +185,7 @@ class ThreadedServer(multiprocessing.Process):
) )
handler = WSGIHandler() handler = WSGIHandler()
if 'django.contrib.admin' in settings.INSTALLED_APPS: if self.should_serve_admin_media():
admin_media_path = '' admin_media_path = ''
handler = AdminMediaHandler(handler, admin_media_path) handler = AdminMediaHandler(handler, admin_media_path)
......
from settings import *
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'lettuce.django',
)
LETTUCE_SERVE_ADMIN_MEDIA = True
...@@ -86,3 +86,34 @@ def test_django_admin_media_serving_on_django_125(): ...@@ -86,3 +86,34 @@ def test_django_admin_media_serving_on_django_125():
assert u'Fetching static files ... OK' in lines, failure assert u'Fetching static files ... OK' in lines, failure
assert u'Fetching CSS files: ... OK' in lines, failure assert u'Fetching CSS files: ... OK' in lines, failure
assert u'Fetching javascript files: ... OK' in lines, failure assert u'Fetching javascript files: ... OK' in lines, failure
def test_django_admin_media_serving_forced_by_setting():
'settings.LETTUCE_SERVE_ADMIN_MEDIA forces lettuce to serve admin assets'
os.environ['PYTHONPATH'] = "%s:%s" % (
FileSystem.join(lib_directory, 'Django-1.3'),
OLD_PYTHONPATH,
)
FileSystem.pushd(current_directory, "django", "grocery")
extra_args = " --scenarios=1,3,4,5 --settings=settings_without_admin"
status, out = commands.getstatusoutput(
"python manage.py harvest --verbosity=2 ./features/ %s" % extra_args)
assert_equals(status, 0, out)
FileSystem.popd()
lines = out.splitlines()
assert u"Preparing to serve django's admin site static files..." in lines
assert u'Running on port 7000 ... OK' in lines
assert u'Fetching static files ... OK' in lines
assert u'Fetching CSS files: ... OK' in lines
assert u'Fetching javascript files: ... OK' in lines
assert u"Django's builtin server is running at 0.0.0.0:7000" in lines
# the scenario 2 is not suppose to run
assert u'Fetching admin media ... OK' not in lines
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment