Commit 7c0f6d51 authored by Paul Brown's avatar Paul Brown

add basic tests for modelview localization, fix issue #692

parent b59dcbdf
......@@ -594,7 +594,7 @@ class BaseModelView(BaseView, ActionsMixin):
self._filter_groups[flt.name].append({
'index': i,
'arg': self.get_filter_arg(i, flt),
'operation': flt.operation(),
'operation': unicode(flt.operation()),
'options': flt.get_options(self) or None,
'type': flt.data_type
})
......@@ -809,7 +809,7 @@ class BaseModelView(BaseView, ActionsMixin):
Filter instance
"""
if self.named_filter_urls:
name = ('%s %s' % (flt.name, flt.operation())).lower()
name = ('%s %s' % (flt.name, unicode(flt.operation()))).lower()
name = filter_char_re.sub('', name)
name = filter_compact_re.sub('_', name)
return name
......
......@@ -6,6 +6,7 @@ from flask.ext.admin import form
from flask.ext.admin._compat import as_unicode
from flask.ext.admin._compat import iteritems
from flask.ext.admin.contrib.sqla import ModelView
from flask.ext.babelex import Babel
from . import setup
......@@ -823,8 +824,34 @@ def test_extra_field_order():
pos2 = data.find('Test1')
ok_(pos2 > pos1)
# TODO: Babel tests
def test_modelview_localization():
def test_locale(locale):
app, db, admin = setup()
app.config['BABEL_DEFAULT_LOCALE'] = locale
babel = Babel(app)
Model1, _ = create_models(db)
view = CustomModelView(
Model1, db.session,
column_filters=['test1', 'bool_field', 'date_field', 'datetime_field', 'time_field']
)
admin.add_view(view)
client = app.test_client()
rv = client.get('/admin/model1/')
eq_(rv.status_code, 200)
rv = client.get('/admin/model1/new/')
eq_(rv.status_code, 200)
locales = ['en', 'cs', 'de', 'es', 'fa', 'fr', 'pt', 'ru', 'zh_CN', 'zh_TW']
for locale in locales:
test_locale(locale)
def test_custom_form_base():
app, db, admin = setup()
......
......@@ -55,7 +55,8 @@ setup(
'wtf-peewee',
'sqlalchemy',
'flask-mongoengine',
'flask-sqlalchemy'
'flask-sqlalchemy',
'flask-babelex'
],
classifiers=[
'Development Status :: 4 - Beta',
......
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