Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
50a0251b
Commit
50a0251b
authored
Mar 12, 2015
by
Alex Kerney
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated naming for tests and a few files that I missed on the first pass.
parent
222261a9
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
262 additions
and
262 deletions
+262
-262
tips.rst
doc/tips.rst
+1
-1
app.py
examples/sqla-custom-filter/app.py
+1
-1
fileadmin.py
flask_admin/contrib/fileadmin.py
+5
-5
view.py
flask_admin/contrib/peewee/view.py
+1
-1
__init__.py
flask_admin/contrib/peeweemodel/__init__.py
+1
-1
__init__.py
flask_admin/contrib/sqlamodel/__init__.py
+1
-1
rules.py
flask_admin/form/rules.py
+2
-2
__init__.py
flask_admin/tests/fileadmin/__init__.py
+1
-1
test_fileadmin.py
flask_admin/tests/fileadmin/test_fileadmin.py
+1
-1
__init__.py
flask_admin/tests/geoa/__init__.py
+2
-2
test_basic.py
flask_admin/tests/geoa/test_basic.py
+2
-2
__init__.py
flask_admin/tests/mongoengine/__init__.py
+2
-2
test_basic.py
flask_admin/tests/mongoengine/test_basic.py
+59
-59
__init__.py
flask_admin/tests/peeweemodel/__init__.py
+1
-1
test_basic.py
flask_admin/tests/peeweemodel/test_basic.py
+71
-71
__init__.py
flask_admin/tests/pymongo/__init__.py
+1
-1
test_basic.py
flask_admin/tests/pymongo/test_basic.py
+1
-1
__init__.py
flask_admin/tests/sqla/__init__.py
+2
-2
test_basic.py
flask_admin/tests/sqla/test_basic.py
+91
-91
test_form_rules.py
flask_admin/tests/sqla/test_form_rules.py
+1
-1
test_inlineform.py
flask_admin/tests/sqla/test_inlineform.py
+3
-3
test_multi_pk.py
flask_admin/tests/sqla/test_multi_pk.py
+1
-1
test_base.py
flask_admin/tests/test_base.py
+4
-4
test_form_upload.py
flask_admin/tests/test_form_upload.py
+1
-1
test_model.py
flask_admin/tests/test_model.py
+5
-5
test_tools.py
flask_admin/tests/test_tools.py
+1
-1
No files found.
doc/tips.rst
View file @
50a0251b
...
@@ -51,4 +51,4 @@ MongoEngine
...
@@ -51,4 +51,4 @@ MongoEngine
-----------
-----------
1. Flask-Admin supports GridFS-backed image- and file uploads, done through WTForms fields. Documentation can be found
1. Flask-Admin supports GridFS-backed image- and file uploads, done through WTForms fields. Documentation can be found
at :mod:`flask
.ext.
admin.contrib.mongoengine.fields`.
at :mod:`flask
_
admin.contrib.mongoengine.fields`.
examples/sqla-custom-filter/app.py
View file @
50a0251b
...
@@ -5,7 +5,7 @@ from flask_admin.contrib import sqla
...
@@ -5,7 +5,7 @@ from flask_admin.contrib import sqla
from
flask_admin
import
expose
,
Admin
from
flask_admin
import
expose
,
Admin
# required for creating custom filters
# required for creating custom filters
from
flask
.ext.
admin.contrib.sqla.filters
import
BaseSQLAFilter
,
FilterEqual
from
flask
_
admin.contrib.sqla.filters
import
BaseSQLAFilter
,
FilterEqual
# Create application
# Create application
app
=
Flask
(
__name__
)
app
=
Flask
(
__name__
)
...
...
flask_admin/contrib/fileadmin.py
View file @
50a0251b
...
@@ -12,11 +12,11 @@ from flask import flash, redirect, abort, request, send_file
...
@@ -12,11 +12,11 @@ from flask import flash, redirect, abort, request, send_file
from
wtforms
import
fields
,
validators
from
wtforms
import
fields
,
validators
from
flask
.ext.
admin
import
form
,
helpers
from
flask
_
admin
import
form
,
helpers
from
flask
.ext.
admin._compat
import
urljoin
,
as_unicode
from
flask
_
admin._compat
import
urljoin
,
as_unicode
from
flask
.ext.
admin.base
import
BaseView
,
expose
from
flask
_
admin.base
import
BaseView
,
expose
from
flask
.ext.
admin.actions
import
action
,
ActionsMixin
from
flask
_
admin.actions
import
action
,
ActionsMixin
from
flask
.ext.
admin.babel
import
gettext
,
lazy_gettext
from
flask
_
admin.babel
import
gettext
,
lazy_gettext
class
FileAdmin
(
BaseView
,
ActionsMixin
):
class
FileAdmin
(
BaseView
,
ActionsMixin
):
...
...
flask_admin/contrib/peewee/view.py
View file @
50a0251b
...
@@ -27,7 +27,7 @@ class ModelView(BaseModelView):
...
@@ -27,7 +27,7 @@ class ModelView(BaseModelView):
Collection of the column filters.
Collection of the column filters.
Can contain either field names or instances of
Can contain either field names or instances of
:class:`flask
.ext.
admin.contrib.peewee.filters.BaseFilter` classes.
:class:`flask
_
admin.contrib.peewee.filters.BaseFilter` classes.
For example::
For example::
...
...
flask_admin/contrib/peeweemodel/__init__.py
View file @
50a0251b
def
setup
():
def
setup
():
import
warnings
import
warnings
warnings
.
warn
(
'Flask-Admin peewee integration module was renamed as flask
.ext.
admin.contrib.peewee, please use it instead.'
)
warnings
.
warn
(
'Flask-Admin peewee integration module was renamed as flask
_
admin.contrib.peewee, please use it instead.'
)
from
flask_admin._backwards
import
import_redirect
from
flask_admin._backwards
import
import_redirect
import_redirect
(
__name__
,
'flask_admin.contrib.peewee'
)
import_redirect
(
__name__
,
'flask_admin.contrib.peewee'
)
...
...
flask_admin/contrib/sqlamodel/__init__.py
View file @
50a0251b
...
@@ -2,7 +2,7 @@ def setup():
...
@@ -2,7 +2,7 @@ def setup():
import
warnings
import
warnings
warnings
.
warn
(
'Flask-Admin sqlalchemy integration module was renamed as flask_admin.contrib.sqla, please use it instead.'
)
warnings
.
warn
(
'Flask-Admin sqlalchemy integration module was renamed as flask_admin.contrib.sqla, please use it instead.'
)
from
flask
.ext.
admin._backwards
import
import_redirect
from
flask
_
admin._backwards
import
import_redirect
import_redirect
(
__name__
,
'flask_admin.contrib.sqla'
)
import_redirect
(
__name__
,
'flask_admin.contrib.sqla'
)
setup
()
setup
()
...
...
flask_admin/form/rules.py
View file @
50a0251b
from
jinja2
import
Markup
from
jinja2
import
Markup
from
flask
.ext.
admin._compat
import
string_types
from
flask
_
admin._compat
import
string_types
from
flask
.ext.
admin
import
helpers
from
flask
_
admin
import
helpers
class
BaseRule
(
object
):
class
BaseRule
(
object
):
...
...
flask_admin/tests/fileadmin/__init__.py
View file @
50a0251b
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
def
setup
():
def
setup
():
...
...
flask_admin/tests/fileadmin/test_fileadmin.py
View file @
50a0251b
...
@@ -2,7 +2,7 @@ import os.path as op
...
@@ -2,7 +2,7 @@ import os.path as op
from
nose.tools
import
eq_
,
ok_
from
nose.tools
import
eq_
,
ok_
from
flask
.ext.
admin.contrib
import
fileadmin
from
flask
_
admin.contrib
import
fileadmin
from
.
import
setup
from
.
import
setup
...
...
flask_admin/tests/geoa/__init__.py
View file @
50a0251b
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
from
flask
.ext.
sqlalchemy
import
SQLAlchemy
from
flask
_
sqlalchemy
import
SQLAlchemy
def
setup
():
def
setup
():
...
...
flask_admin/tests/geoa/test_basic.py
View file @
50a0251b
from
__future__
import
unicode_literals
from
__future__
import
unicode_literals
from
nose.tools
import
eq_
,
ok_
from
nose.tools
import
eq_
,
ok_
from
flask
.ext.
admin.contrib.geoa
import
ModelView
from
flask
_
admin.contrib.geoa
import
ModelView
from
geoalchemy2
import
Geometry
from
geoalchemy2
import
Geometry
from
geoalchemy2.shape
import
to_shape
from
geoalchemy2.shape
import
to_shape
from
flask
.ext.
admin.contrib.geoa.fields
import
GeoJSONField
from
flask
_
admin.contrib.geoa.fields
import
GeoJSONField
from
.
import
setup
from
.
import
setup
...
...
flask_admin/tests/mongoengine/__init__.py
View file @
50a0251b
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
from
flask
.ext.
mongoengine
import
MongoEngine
from
flask
_
mongoengine
import
MongoEngine
def
setup
():
def
setup
():
...
...
flask_admin/tests/mongoengine/test_basic.py
View file @
50a0251b
...
@@ -2,14 +2,14 @@ from nose.tools import eq_, ok_
...
@@ -2,14 +2,14 @@ from nose.tools import eq_, ok_
from
nose.plugins.skip
import
SkipTest
from
nose.plugins.skip
import
SkipTest
# Skip test on PY3
# Skip test on PY3
from
flask
.ext.
admin._compat
import
PY2
,
as_unicode
from
flask
_
admin._compat
import
PY2
,
as_unicode
if
not
PY2
:
if
not
PY2
:
raise
SkipTest
(
'MongoEngine is not Python 3 compatible'
)
raise
SkipTest
(
'MongoEngine is not Python 3 compatible'
)
from
wtforms
import
fields
from
wtforms
import
fields
from
flask
.ext.
admin
import
form
from
flask
_
admin
import
form
from
flask
.ext.
admin.contrib.mongoengine
import
ModelView
from
flask
_
admin.contrib.mongoengine
import
ModelView
from
.
import
setup
from
.
import
setup
...
@@ -37,13 +37,13 @@ def create_models(db):
...
@@ -37,13 +37,13 @@ def create_models(db):
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
test1
return
self
.
test1
class
Model2
(
db
.
Document
):
class
Model2
(
db
.
Document
):
string_field
=
db
.
StringField
()
string_field
=
db
.
StringField
()
int_field
=
db
.
IntField
()
int_field
=
db
.
IntField
()
float_field
=
db
.
FloatField
()
float_field
=
db
.
FloatField
()
bool_field
=
db
.
BooleanField
()
bool_field
=
db
.
BooleanField
()
model1
=
db
.
ReferenceField
(
Model1
)
model1
=
db
.
ReferenceField
(
Model1
)
Model1
.
objects
.
delete
()
Model1
.
objects
.
delete
()
...
@@ -179,27 +179,27 @@ def test_column_editable_list():
...
@@ -179,27 +179,27 @@ def test_column_editable_list():
'datetime_field-'
+
str
(
obj2
.
id
):
'problematic-input'
,
'datetime_field-'
+
str
(
obj2
.
id
):
'problematic-input'
,
})
})
eq_
(
rv
.
status_code
,
500
)
eq_
(
rv
.
status_code
,
500
)
# Test invalid primary key
# Test invalid primary key
rv
=
client
.
post
(
'/admin/model1/ajax/update/'
,
data
=
{
rv
=
client
.
post
(
'/admin/model1/ajax/update/'
,
data
=
{
'test1-1000'
:
'problematic-input'
,
'test1-1000'
:
'problematic-input'
,
})
})
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
eq_
(
rv
.
status_code
,
500
)
eq_
(
rv
.
status_code
,
500
)
# Test editing column not in column_editable_list
# Test editing column not in column_editable_list
rv
=
client
.
post
(
'/admin/model1/ajax/update/'
,
data
=
{
rv
=
client
.
post
(
'/admin/model1/ajax/update/'
,
data
=
{
'test2-1'
:
'problematic-input'
,
'test2-1'
:
'problematic-input'
,
})
})
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
eq_
(
rv
.
status_code
,
500
)
eq_
(
rv
.
status_code
,
500
)
# Test in-line editing for relations
# Test in-line editing for relations
view
=
CustomModelView
(
Model2
,
view
=
CustomModelView
(
Model2
,
column_editable_list
=
[
column_editable_list
=
[
'model1'
])
'model1'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
obj3
=
Model2
.
objects
.
get
(
string_field
=
'string_field_val_1'
)
obj3
=
Model2
.
objects
.
get
(
string_field
=
'string_field_val_1'
)
rv
=
client
.
post
(
'/admin/model2/ajax/update/'
,
data
=
{
rv
=
client
.
post
(
'/admin/model2/ajax/update/'
,
data
=
{
'model1-'
+
str
(
obj3
.
id
):
str
(
obj1
.
id
),
'model1-'
+
str
(
obj3
.
id
):
str
(
obj1
.
id
),
...
@@ -215,16 +215,16 @@ def test_column_editable_list():
...
@@ -215,16 +215,16 @@ def test_column_editable_list():
def
test_column_filters
():
def
test_column_filters
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
Model1
,
Model2
=
create_models
(
db
)
Model1
,
Model2
=
create_models
(
db
)
# fill DB with values
# fill DB with values
fill_db
(
Model1
,
Model2
)
fill_db
(
Model1
,
Model2
)
# Test string filter
# Test string filter
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'test1'
])
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'test1'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
(
len
(
view
.
_filters
),
7
)
eq_
(
len
(
view
.
_filters
),
7
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Test1'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Test1'
]],
...
@@ -237,38 +237,38 @@ def test_column_filters():
...
@@ -237,38 +237,38 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# Make some test clients
# Make some test clients
client
=
app
.
test_client
()
client
=
app
.
test_client
()
# string - equals
# string - equals
rv
=
client
.
get
(
'/admin/model1/?flt0_0=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_0=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not equal
# string - not equal
rv
=
client
.
get
(
'/admin/model1/?flt0_1=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_1=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - contains
# string - contains
rv
=
client
.
get
(
'/admin/model1/?flt0_2=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_2=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not contains
# string - not contains
rv
=
client
.
get
(
'/admin/model1/?flt0_3=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_3=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - empty
# string - empty
rv
=
client
.
get
(
'/admin/model1/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -276,7 +276,7 @@ def test_column_filters():
...
@@ -276,7 +276,7 @@ def test_column_filters():
ok_
(
'empty_obj'
in
data
)
ok_
(
'empty_obj'
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not empty
# string - not empty
rv
=
client
.
get
(
'/admin/model1/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -284,7 +284,7 @@ def test_column_filters():
...
@@ -284,7 +284,7 @@ def test_column_filters():
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - in list
# string - in list
rv
=
client
.
get
(
'/admin/model1/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -293,7 +293,7 @@ def test_column_filters():
...
@@ -293,7 +293,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
# string - not in list
# string - not in list
rv
=
client
.
get
(
'/admin/model1/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -302,11 +302,11 @@ def test_column_filters():
...
@@ -302,11 +302,11 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_4'
in
data
)
ok_
(
'test1_val_4'
in
data
)
# Test numeric filter
# Test numeric filter
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'int_field'
])
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'int_field'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -317,41 +317,41 @@ def test_column_filters():
...
@@ -317,41 +317,41 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# integer - equals
# integer - equals
rv
=
client
.
get
(
'/admin/model2/?flt0_0=5000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_0=5000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# integer - equals - test validation
# integer - equals - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not equal
# integer - not equal
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# integer - greater
# integer - greater
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# integer - smaller
# integer - smaller
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# integer - empty
# integer - empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -360,7 +360,7 @@ def test_column_filters():
...
@@ -360,7 +360,7 @@ def test_column_filters():
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# integer - not empty
# integer - not empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -369,7 +369,7 @@ def test_column_filters():
...
@@ -369,7 +369,7 @@ def test_column_filters():
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# integer - in list
# integer - in list
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -378,13 +378,13 @@ def test_column_filters():
...
@@ -378,13 +378,13 @@ def test_column_filters():
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# integer - in list - test validation
# integer - in list - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not in list
# integer - not in list
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -393,12 +393,12 @@ def test_column_filters():
...
@@ -393,12 +393,12 @@ def test_column_filters():
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# Test float filter
# Test float filter
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'float_field'
],
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'float_field'
],
endpoint
=
"_float"
)
endpoint
=
"_float"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -409,41 +409,41 @@ def test_column_filters():
...
@@ -409,41 +409,41 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# float - equals
# float - equals
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# float - equals - test validation
# float - equals - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not equal
# float - not equal
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# float - greater
# float - greater
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# float - smaller
# float - smaller
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# float - empty
# float - empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -452,7 +452,7 @@ def test_column_filters():
...
@@ -452,7 +452,7 @@ def test_column_filters():
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# float - not empty
# float - not empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -461,7 +461,7 @@ def test_column_filters():
...
@@ -461,7 +461,7 @@ def test_column_filters():
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# float - in list
# float - in list
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -470,13 +470,13 @@ def test_column_filters():
...
@@ -470,13 +470,13 @@ def test_column_filters():
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_2'
not
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_3'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
ok_
(
'string_field_val_4'
in
data
)
# float - in list - test validation
# float - in list - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not in list
# float - not in list
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -485,13 +485,13 @@ def test_column_filters():
...
@@ -485,13 +485,13 @@ def test_column_filters():
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_2'
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_3'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
ok_
(
'string_field_val_4'
not
in
data
)
# Test datetime filter
# Test datetime filter
view
=
CustomModelView
(
Model1
,
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'datetime_field'
],
column_filters
=
[
'datetime_field'
],
endpoint
=
"_datetime"
)
endpoint
=
"_datetime"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -502,49 +502,49 @@ def test_column_filters():
...
@@ -502,49 +502,49 @@ def test_column_filters():
(
5
,
'not between'
),
(
5
,
'not between'
),
(
6
,
'empty'
),
(
6
,
'empty'
),
])
])
# datetime - equals
# datetime - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not equal
# datetime - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - greater
# datetime - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - smaller
# datetime - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - between
# datetime - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not between
# datetime - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - empty
# datetime - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=1'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -552,7 +552,7 @@ def test_column_filters():
...
@@ -552,7 +552,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not empty
# datetime - not empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -560,7 +560,7 @@ def test_column_filters():
...
@@ -560,7 +560,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
def
test_default_sort
():
def
test_default_sort
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
M1
,
_
=
create_models
(
db
)
M1
,
_
=
create_models
(
db
)
...
@@ -698,7 +698,7 @@ def test_subdocument_config():
...
@@ -698,7 +698,7 @@ def test_subdocument_config():
def
test_subdocument_class_config
():
def
test_subdocument_class_config
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
from
flask
.ext.
admin.contrib.mongoengine
import
EmbeddedForm
from
flask
_
admin.contrib.mongoengine
import
EmbeddedForm
class
Comment
(
db
.
EmbeddedDocument
):
class
Comment
(
db
.
EmbeddedDocument
):
name
=
db
.
StringField
(
max_length
=
20
,
required
=
True
)
name
=
db
.
StringField
(
max_length
=
20
,
required
=
True
)
...
...
flask_admin/tests/peeweemodel/__init__.py
View file @
50a0251b
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
import
peewee
import
peewee
...
...
flask_admin/tests/peeweemodel/test_basic.py
View file @
50a0251b
...
@@ -2,7 +2,7 @@ from nose.tools import eq_, ok_
...
@@ -2,7 +2,7 @@ from nose.tools import eq_, ok_
from
nose.plugins.skip
import
SkipTest
from
nose.plugins.skip
import
SkipTest
# Skip test on PY3
# Skip test on PY3
from
flask
.ext.
admin._compat
import
PY2
,
as_unicode
from
flask
_
admin._compat
import
PY2
,
as_unicode
if
not
PY2
:
if
not
PY2
:
raise
SkipTest
(
'Peewee is not Python 3 compatible'
)
raise
SkipTest
(
'Peewee is not Python 3 compatible'
)
...
@@ -10,9 +10,9 @@ import peewee
...
@@ -10,9 +10,9 @@ import peewee
from
wtforms
import
fields
from
wtforms
import
fields
from
flask
.ext.
admin
import
form
from
flask
_
admin
import
form
from
flask
.ext.
admin._compat
import
iteritems
from
flask
_
admin._compat
import
iteritems
from
flask
.ext.
admin.contrib.peewee
import
ModelView
from
flask
_
admin.contrib.peewee
import
ModelView
from
.
import
setup
from
.
import
setup
...
@@ -38,7 +38,7 @@ def create_models(db):
...
@@ -38,7 +38,7 @@ def create_models(db):
class
Model1
(
BaseModel
):
class
Model1
(
BaseModel
):
def
__init__
(
self
,
test1
=
None
,
test2
=
None
,
test3
=
None
,
test4
=
None
,
def
__init__
(
self
,
test1
=
None
,
test2
=
None
,
test3
=
None
,
test4
=
None
,
date_field
=
None
,
timeonly_field
=
None
,
date_field
=
None
,
timeonly_field
=
None
,
datetime_field
=
None
):
datetime_field
=
None
):
super
(
Model1
,
self
)
.
__init__
()
super
(
Model1
,
self
)
.
__init__
()
...
@@ -250,15 +250,15 @@ def test_column_editable_list():
...
@@ -250,15 +250,15 @@ def test_column_editable_list():
def
test_column_filters
():
def
test_column_filters
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
Model1
,
Model2
=
create_models
(
db
)
Model1
,
Model2
=
create_models
(
db
)
fill_db
(
Model1
,
Model2
)
fill_db
(
Model1
,
Model2
)
# Test string filter
# Test string filter
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'test1'
])
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'test1'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
(
len
(
view
.
_filters
),
7
)
eq_
(
len
(
view
.
_filters
),
7
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Test1'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Test1'
]],
...
@@ -271,38 +271,38 @@ def test_column_filters():
...
@@ -271,38 +271,38 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# Make some test clients
# Make some test clients
client
=
app
.
test_client
()
client
=
app
.
test_client
()
# string - equals
# string - equals
rv
=
client
.
get
(
'/admin/model1/?flt0_0=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_0=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not equal
# string - not equal
rv
=
client
.
get
(
'/admin/model1/?flt0_1=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_1=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - contains
# string - contains
rv
=
client
.
get
(
'/admin/model1/?flt0_2=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_2=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not contains
# string - not contains
rv
=
client
.
get
(
'/admin/model1/?flt0_3=test1_val_1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_3=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - empty
# string - empty
rv
=
client
.
get
(
'/admin/model1/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -310,7 +310,7 @@ def test_column_filters():
...
@@ -310,7 +310,7 @@ def test_column_filters():
ok_
(
'empty_obj'
in
data
)
ok_
(
'empty_obj'
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not empty
# string - not empty
rv
=
client
.
get
(
'/admin/model1/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -318,7 +318,7 @@ def test_column_filters():
...
@@ -318,7 +318,7 @@ def test_column_filters():
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - in list
# string - in list
rv
=
client
.
get
(
'/admin/model1/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -327,7 +327,7 @@ def test_column_filters():
...
@@ -327,7 +327,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
# string - not in list
# string - not in list
rv
=
client
.
get
(
'/admin/model1/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/model1/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -336,11 +336,11 @@ def test_column_filters():
...
@@ -336,11 +336,11 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_4'
in
data
)
ok_
(
'test1_val_4'
in
data
)
# Test int filter
# Test int filter
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'int_field'
])
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'int_field'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -351,41 +351,41 @@ def test_column_filters():
...
@@ -351,41 +351,41 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# integer - equals
# integer - equals
rv
=
client
.
get
(
'/admin/model2/?flt0_0=5000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_0=5000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# integer - equals - test validation
# integer - equals - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not equal
# integer - not equal
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# integer - greater
# integer - greater
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# integer - smaller
# integer - smaller
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# integer - empty
# integer - empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -394,7 +394,7 @@ def test_column_filters():
...
@@ -394,7 +394,7 @@ def test_column_filters():
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# integer - not empty
# integer - not empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -403,7 +403,7 @@ def test_column_filters():
...
@@ -403,7 +403,7 @@ def test_column_filters():
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# integer - in list
# integer - in list
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -412,13 +412,13 @@ def test_column_filters():
...
@@ -412,13 +412,13 @@ def test_column_filters():
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# integer - in list - test validation
# integer - in list - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not in list
# integer - not in list
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -427,12 +427,12 @@ def test_column_filters():
...
@@ -427,12 +427,12 @@ def test_column_filters():
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# Test float filter
# Test float filter
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'float_field'
],
view
=
CustomModelView
(
Model2
,
column_filters
=
[
'float_field'
],
endpoint
=
"_float"
)
endpoint
=
"_float"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -443,41 +443,41 @@ def test_column_filters():
...
@@ -443,41 +443,41 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# float - equals
# float - equals
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# float - equals - test validation
# float - equals - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not equal
# float - not equal
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# float - greater
# float - greater
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# float - smaller
# float - smaller
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# float - empty
# float - empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -486,7 +486,7 @@ def test_column_filters():
...
@@ -486,7 +486,7 @@ def test_column_filters():
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# float - not empty
# float - not empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -495,7 +495,7 @@ def test_column_filters():
...
@@ -495,7 +495,7 @@ def test_column_filters():
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# float - in list
# float - in list
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -504,13 +504,13 @@ def test_column_filters():
...
@@ -504,13 +504,13 @@ def test_column_filters():
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_2'
not
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_3'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
ok_
(
'char_field_val_4'
in
data
)
# float - in list - test validation
# float - in list - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not in list
# float - not in list
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -519,10 +519,10 @@ def test_column_filters():
...
@@ -519,10 +519,10 @@ def test_column_filters():
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_2'
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_3'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
ok_
(
'char_field_val_4'
not
in
data
)
# Test date, time, and datetime filters
# Test date, time, and datetime filters
view
=
CustomModelView
(
Model1
,
view
=
CustomModelView
(
Model1
,
column_filters
=
[
'date_field'
,
'datetime_field'
,
'timeonly_field'
],
column_filters
=
[
'date_field'
,
'datetime_field'
,
'timeonly_field'
],
endpoint
=
"_datetime"
)
endpoint
=
"_datetime"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
...
@@ -536,7 +536,7 @@ def test_column_filters():
...
@@ -536,7 +536,7 @@ def test_column_filters():
(
5
,
'not between'
),
(
5
,
'not between'
),
(
6
,
'empty'
),
(
6
,
'empty'
),
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
[
[
(
7
,
'equals'
),
(
7
,
'equals'
),
...
@@ -547,7 +547,7 @@ def test_column_filters():
...
@@ -547,7 +547,7 @@ def test_column_filters():
(
12
,
'not between'
),
(
12
,
'not between'
),
(
13
,
'empty'
),
(
13
,
'empty'
),
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Timeonly Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Timeonly Field'
]],
[
[
(
14
,
'equals'
),
(
14
,
'equals'
),
...
@@ -558,42 +558,42 @@ def test_column_filters():
...
@@ -558,42 +558,42 @@ def test_column_filters():
(
19
,
'not between'
),
(
19
,
'not between'
),
(
20
,
'empty'
),
(
20
,
'empty'
),
])
])
# date - equals
# date - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-11-17'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-11-17'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - not equal
# date - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-11-17'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-11-17'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# date - greater
# date - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-11-16'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-11-16'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - smaller
# date - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-11-16'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-11-16'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# date - between
# date - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-11-13+to+2014-11-20'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-11-13+to+2014-11-20'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - not between
# date - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-11-13+to+2014-11-20'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-11-13+to+2014-11-20'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -608,7 +608,7 @@ def test_column_filters():
...
@@ -608,7 +608,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - empty
# date - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -616,49 +616,49 @@ def test_column_filters():
...
@@ -616,49 +616,49 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# datetime - equals
# datetime - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_7=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_7=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not equal
# datetime - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_8=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_8=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - greater
# datetime - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_9=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_9=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - smaller
# datetime - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_10=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_10=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - between
# datetime - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_11=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_11=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not between
# datetime - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_12=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_12=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - empty
# datetime - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=1'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -666,7 +666,7 @@ def test_column_filters():
...
@@ -666,7 +666,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not empty
# datetime - not empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -674,49 +674,49 @@ def test_column_filters():
...
@@ -674,49 +674,49 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# time - equals
# time - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_14=11
%3
A10
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_14=11
%3
A10
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not equal
# time - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_15=11
%3
A10
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_15=11
%3
A10
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - greater
# time - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_16=11
%3
A09
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_16=11
%3
A09
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - smaller
# time - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_17=11
%3
A09
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_17=11
%3
A09
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - between
# time - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_18=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_18=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not between
# time - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_19=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_19=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - empty
# time - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=1'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -724,7 +724,7 @@ def test_column_filters():
...
@@ -724,7 +724,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not empty
# time - not empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -732,7 +732,7 @@ def test_column_filters():
...
@@ -732,7 +732,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
def
test_default_sort
():
def
test_default_sort
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
M1
,
_
=
create_models
(
db
)
M1
,
_
=
create_models
(
db
)
...
@@ -875,4 +875,4 @@ def test_ajax_fk():
...
@@ -875,4 +875,4 @@ def test_ajax_fk():
ok_
(
mdl
is
not
None
)
ok_
(
mdl
is
not
None
)
ok_
(
mdl
.
model1
is
not
None
)
ok_
(
mdl
.
model1
is
not
None
)
eq_
(
mdl
.
model1
.
id
,
model
.
id
)
eq_
(
mdl
.
model1
.
id
,
model
.
id
)
eq_
(
mdl
.
model1
.
test1
,
u'first'
)
eq_
(
mdl
.
model1
.
test1
,
u'first'
)
\ No newline at end of file
flask_admin/tests/pymongo/__init__.py
View file @
50a0251b
import
pymongo
import
pymongo
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
def
setup
():
def
setup
():
...
...
flask_admin/tests/pymongo/test_basic.py
View file @
50a0251b
...
@@ -2,7 +2,7 @@ from nose.tools import eq_, ok_
...
@@ -2,7 +2,7 @@ from nose.tools import eq_, ok_
from
wtforms
import
form
,
fields
from
wtforms
import
form
,
fields
from
flask
.ext.
admin.contrib.pymongo
import
ModelView
from
flask
_
admin.contrib.pymongo
import
ModelView
from
.
import
setup
from
.
import
setup
...
...
flask_admin/tests/sqla/__init__.py
View file @
50a0251b
from
flask
import
Flask
from
flask
import
Flask
from
flask
.ext.
admin
import
Admin
from
flask
_
admin
import
Admin
from
flask
.ext.
sqlalchemy
import
SQLAlchemy
from
flask
_
sqlalchemy
import
SQLAlchemy
def
setup
():
def
setup
():
...
...
flask_admin/tests/sqla/test_basic.py
View file @
50a0251b
...
@@ -2,11 +2,11 @@ from nose.tools import eq_, ok_, raises
...
@@ -2,11 +2,11 @@ from nose.tools import eq_, ok_, raises
from
wtforms
import
fields
from
wtforms
import
fields
from
flask
.ext.
admin
import
form
from
flask
_
admin
import
form
from
flask
.ext.
admin._compat
import
as_unicode
from
flask
_
admin._compat
import
as_unicode
from
flask
.ext.
admin._compat
import
iteritems
from
flask
_
admin._compat
import
iteritems
from
flask
.ext.
admin.contrib.sqla
import
ModelView
,
filters
from
flask
_
admin.contrib.sqla
import
ModelView
,
filters
from
flask
.ext.babelex
import
Babel
from
flask
_babel
import
Babel
from
.
import
setup
from
.
import
setup
...
@@ -25,7 +25,7 @@ class CustomModelView(ModelView):
...
@@ -25,7 +25,7 @@ class CustomModelView(ModelView):
def
create_models
(
db
):
def
create_models
(
db
):
class
Model1
(
db
.
Model
):
class
Model1
(
db
.
Model
):
def
__init__
(
self
,
test1
=
None
,
test2
=
None
,
test3
=
None
,
test4
=
None
,
def
__init__
(
self
,
test1
=
None
,
test2
=
None
,
test3
=
None
,
test4
=
None
,
bool_field
=
False
,
date_field
=
None
,
time_field
=
None
,
bool_field
=
False
,
date_field
=
None
,
time_field
=
None
,
datetime_field
=
None
,
enum_field
=
None
):
datetime_field
=
None
,
enum_field
=
None
):
self
.
test1
=
test1
self
.
test1
=
test1
...
@@ -45,11 +45,11 @@ def create_models(db):
...
@@ -45,11 +45,11 @@ def create_models(db):
test4
=
db
.
Column
(
db
.
UnicodeText
)
test4
=
db
.
Column
(
db
.
UnicodeText
)
bool_field
=
db
.
Column
(
db
.
Boolean
)
bool_field
=
db
.
Column
(
db
.
Boolean
)
enum_field
=
db
.
Column
(
db
.
Enum
(
'model1_v1'
,
'model1_v2'
),
nullable
=
True
)
enum_field
=
db
.
Column
(
db
.
Enum
(
'model1_v1'
,
'model1_v2'
),
nullable
=
True
)
date_field
=
db
.
Column
(
db
.
Date
)
date_field
=
db
.
Column
(
db
.
Date
)
time_field
=
db
.
Column
(
db
.
Time
)
time_field
=
db
.
Column
(
db
.
Time
)
datetime_field
=
db
.
Column
(
db
.
DateTime
)
datetime_field
=
db
.
Column
(
db
.
DateTime
)
def
__unicode__
(
self
):
def
__unicode__
(
self
):
return
self
.
test1
return
self
.
test1
...
@@ -172,7 +172,7 @@ def test_model():
...
@@ -172,7 +172,7 @@ def test_model():
url
=
'/admin/model1/edit/?id=
%
s'
%
model
.
id
url
=
'/admin/model1/edit/?id=
%
s'
%
model
.
id
rv
=
client
.
get
(
url
)
rv
=
client
.
get
(
url
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
# verify that midnight does not show as blank
# verify that midnight does not show as blank
ok_
(
u'00:00:00'
in
rv
.
data
.
decode
(
'utf-8'
))
ok_
(
u'00:00:00'
in
rv
.
data
.
decode
(
'utf-8'
))
...
@@ -274,7 +274,7 @@ def test_column_searchable_list():
...
@@ -274,7 +274,7 @@ def test_column_searchable_list():
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'model1-test'
in
data
)
ok_
(
'model1-test'
in
data
)
ok_
(
'model2-test'
not
in
data
)
ok_
(
'model2-test'
not
in
data
)
rv
=
client
.
get
(
'/admin/model2/?search=9000'
)
rv
=
client
.
get
(
'/admin/model2/?search=9000'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'model1-test'
not
in
data
)
ok_
(
'model1-test'
not
in
data
)
...
@@ -502,7 +502,7 @@ def test_column_filters():
...
@@ -502,7 +502,7 @@ def test_column_filters():
(
0
,
'equals'
),
(
0
,
'equals'
),
(
1
,
'not equal'
),
(
1
,
'not equal'
),
])
])
# Test column_labels on filters
# Test column_labels on filters
view
=
CustomModelView
(
Model2
,
db
.
session
,
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'model1.bool_field'
,
'string_field'
],
column_filters
=
[
'model1.bool_field'
,
'string_field'
],
...
@@ -510,9 +510,9 @@ def test_column_filters():
...
@@ -510,9 +510,9 @@ def test_column_filters():
'model1.bool_field'
:
'Test Filter #1'
,
'model1.bool_field'
:
'Test Filter #1'
,
'string_field'
:
'Test Filter #2'
,
'string_field'
:
'Test Filter #2'
,
})
})
eq_
(
list
(
view
.
_filter_groups
.
keys
()),
[
u'Test Filter #1'
,
u'Test Filter #2'
])
eq_
(
list
(
view
.
_filter_groups
.
keys
()),
[
u'Test Filter #1'
,
u'Test Filter #2'
])
fill_db
(
db
,
Model1
,
Model2
)
fill_db
(
db
,
Model1
,
Model2
)
client
=
app
.
test_client
()
client
=
app
.
test_client
()
...
@@ -553,28 +553,28 @@ def test_column_filters():
...
@@ -553,28 +553,28 @@ def test_column_filters():
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not equal
# string - not equal
rv
=
client
.
get
(
'/admin/_strings/?flt0_1=test1_val_1'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_1=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - contains
# string - contains
rv
=
client
.
get
(
'/admin/_strings/?flt0_2=test1_val_1'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_2=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not contains
# string - not contains
rv
=
client
.
get
(
'/admin/_strings/?flt0_3=test1_val_1'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_3=test1_val_1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test2_val_1'
not
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - empty
# string - empty
rv
=
client
.
get
(
'/admin/_strings/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -582,7 +582,7 @@ def test_column_filters():
...
@@ -582,7 +582,7 @@ def test_column_filters():
ok_
(
'empty_obj'
in
data
)
ok_
(
'empty_obj'
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# string - not empty
# string - not empty
rv
=
client
.
get
(
'/admin/_strings/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -590,7 +590,7 @@ def test_column_filters():
...
@@ -590,7 +590,7 @@ def test_column_filters():
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'empty_obj'
not
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_2'
in
data
)
ok_
(
'test1_val_2'
in
data
)
# string - in list
# string - in list
rv
=
client
.
get
(
'/admin/_strings/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_5=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -599,7 +599,7 @@ def test_column_filters():
...
@@ -599,7 +599,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_3'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
ok_
(
'test1_val_4'
not
in
data
)
# string - not in list
# string - not in list
rv
=
client
.
get
(
'/admin/_strings/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
rv
=
client
.
get
(
'/admin/_strings/?flt0_6=test1_val_1
%2
Ctest1_val_2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -608,12 +608,12 @@ def test_column_filters():
...
@@ -608,12 +608,12 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_3'
in
data
)
ok_
(
'test1_val_4'
in
data
)
ok_
(
'test1_val_4'
in
data
)
# Test integer filter
# Test integer filter
view
=
CustomModelView
(
Model2
,
db
.
session
,
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'int_field'
])
column_filters
=
[
'int_field'
])
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Int Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -631,34 +631,34 @@ def test_column_filters():
...
@@ -631,34 +631,34 @@ def test_column_filters():
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# integer - equals - test validation
# integer - equals - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not equal
# integer - not equal
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_1=5000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# integer - greater
# integer - greater
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_2=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# integer - smaller
# integer - smaller
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_3=6000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# integer - empty
# integer - empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -667,7 +667,7 @@ def test_column_filters():
...
@@ -667,7 +667,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# integer - not empty
# integer - not empty
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -676,7 +676,7 @@ def test_column_filters():
...
@@ -676,7 +676,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# integer - in list
# integer - in list
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -685,13 +685,13 @@ def test_column_filters():
...
@@ -685,13 +685,13 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# integer - in list - test validation
# integer - in list - test validation
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_5=5000
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# integer - not in list
# integer - not in list
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
rv
=
client
.
get
(
'/admin/model2/?flt0_6=5000
%2
C9000'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -699,13 +699,13 @@ def test_column_filters():
...
@@ -699,13 +699,13 @@ def test_column_filters():
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_1'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# Test float filter
# Test float filter
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'float_field'
],
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
'float_field'
],
endpoint
=
"_float"
)
endpoint
=
"_float"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Float Field'
]],
[
[
(
0
,
'equals'
),
(
0
,
'equals'
),
...
@@ -716,41 +716,41 @@ def test_column_filters():
...
@@ -716,41 +716,41 @@ def test_column_filters():
(
5
,
'in list'
),
(
5
,
'in list'
),
(
6
,
'not in list'
),
(
6
,
'not in list'
),
])
])
# float - equals
# float - equals
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# float - equals - test validation
# float - equals - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_0=badval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not equal
# float - not equal
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_1=25.9'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# float - greater
# float - greater
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_2=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# float - smaller
# float - smaller
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_3=60.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# float - empty
# float - empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -759,7 +759,7 @@ def test_column_filters():
...
@@ -759,7 +759,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# float - not empty
# float - not empty
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_4=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -768,7 +768,7 @@ def test_column_filters():
...
@@ -768,7 +768,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# float - in list
# float - in list
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -777,13 +777,13 @@ def test_column_filters():
...
@@ -777,13 +777,13 @@ def test_column_filters():
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_2'
not
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_3'
in
data
)
ok_
(
'test2_val_4'
in
data
)
ok_
(
'test2_val_4'
in
data
)
# float - in list - test validation
# float - in list - test validation
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_5=25.9
%2
Cbadval'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'Invalid Filter Value'
in
data
)
ok_
(
'Invalid Filter Value'
in
data
)
# float - not in list
# float - not in list
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
rv
=
client
.
get
(
'/admin/_float/?flt0_6=25.9
%2
C75.5'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -792,7 +792,7 @@ def test_column_filters():
...
@@ -792,7 +792,7 @@ def test_column_filters():
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_2'
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_3'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
ok_
(
'test2_val_4'
not
in
data
)
# Test filters to joined table field
# Test filters to joined table field
view
=
CustomModelView
(
view
=
CustomModelView
(
Model2
,
db
.
session
,
Model2
,
db
.
session
,
...
@@ -828,10 +828,10 @@ def test_column_filters():
...
@@ -828,10 +828,10 @@ def test_column_filters():
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
ok_
(
'test1_val_2'
not
in
data
)
# Test date, time, and datetime filters
# Test date, time, and datetime filters
view
=
CustomModelView
(
Model1
,
db
.
session
,
view
=
CustomModelView
(
Model1
,
db
.
session
,
column_filters
=
[
'date_field'
,
'datetime_field'
,
'time_field'
],
column_filters
=
[
'date_field'
,
'datetime_field'
,
'time_field'
],
endpoint
=
"_datetime"
)
endpoint
=
"_datetime"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
...
@@ -845,7 +845,7 @@ def test_column_filters():
...
@@ -845,7 +845,7 @@ def test_column_filters():
(
5
,
'not between'
),
(
5
,
'not between'
),
(
6
,
'empty'
),
(
6
,
'empty'
),
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Datetime Field'
]],
[
[
(
7
,
'equals'
),
(
7
,
'equals'
),
...
@@ -856,7 +856,7 @@ def test_column_filters():
...
@@ -856,7 +856,7 @@ def test_column_filters():
(
12
,
'not between'
),
(
12
,
'not between'
),
(
13
,
'empty'
),
(
13
,
'empty'
),
])
])
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Time Field'
]],
eq_
([(
f
[
'index'
],
f
[
'operation'
])
for
f
in
view
.
_filter_groups
[
u'Time Field'
]],
[
[
(
14
,
'equals'
),
(
14
,
'equals'
),
...
@@ -867,42 +867,42 @@ def test_column_filters():
...
@@ -867,42 +867,42 @@ def test_column_filters():
(
19
,
'not between'
),
(
19
,
'not between'
),
(
20
,
'empty'
),
(
20
,
'empty'
),
])
])
# date - equals
# date - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-11-17'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_0=2014-11-17'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - not equal
# date - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-11-17'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_1=2014-11-17'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# date - greater
# date - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-11-16'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_2=2014-11-16'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - smaller
# date - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-11-16'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_3=2014-11-16'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# date - between
# date - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-11-13+to+2014-11-20'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_4=2014-11-13+to+2014-11-20'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - not between
# date - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-11-13+to+2014-11-20'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_5=2014-11-13+to+2014-11-20'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -917,7 +917,7 @@ def test_column_filters():
...
@@ -917,7 +917,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj1'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
ok_
(
'date_obj2'
not
in
data
)
# date - empty
# date - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_6=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -925,49 +925,49 @@ def test_column_filters():
...
@@ -925,49 +925,49 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj1'
in
data
)
ok_
(
'date_obj2'
in
data
)
ok_
(
'date_obj2'
in
data
)
# datetime - equals
# datetime - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_7=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_7=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not equal
# datetime - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_8=2014-04-03+01
%3
A09
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_8=2014-04-03+01
%3
A09
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - greater
# datetime - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_9=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_9=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - smaller
# datetime - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_10=2014-04-03+01
%3
A08
%3
A00'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_10=2014-04-03+01
%3
A08
%3
A00'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - between
# datetime - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_11=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_11=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not between
# datetime - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_12=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_12=2014-04-02+00
%3
A00
%3
A00+to+2014-11-20+23
%3
A59
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# datetime - empty
# datetime - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=1'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -975,7 +975,7 @@ def test_column_filters():
...
@@ -975,7 +975,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj1'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
ok_
(
'datetime_obj2'
not
in
data
)
# datetime - not empty
# datetime - not empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_13=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -983,49 +983,49 @@ def test_column_filters():
...
@@ -983,49 +983,49 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj1'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
ok_
(
'datetime_obj2'
in
data
)
# time - equals
# time - equals
rv
=
client
.
get
(
'/admin/_datetime/?flt0_14=11
%3
A10
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_14=11
%3
A10
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not equal
# time - not equal
rv
=
client
.
get
(
'/admin/_datetime/?flt0_15=11
%3
A10
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_15=11
%3
A10
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - greater
# time - greater
rv
=
client
.
get
(
'/admin/_datetime/?flt0_16=11
%3
A09
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_16=11
%3
A09
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - smaller
# time - smaller
rv
=
client
.
get
(
'/admin/_datetime/?flt0_17=11
%3
A09
%3
A09'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_17=11
%3
A09
%3
A09'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - between
# time - between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_18=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_18=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not between
# time - not between
rv
=
client
.
get
(
'/admin/_datetime/?flt0_19=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_19=10
%3
A40
%3
A00+to+11
%3
A50
%3
A59'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# time - empty
# time - empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=1'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1033,7 +1033,7 @@ def test_column_filters():
...
@@ -1033,7 +1033,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj1'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
ok_
(
'timeonly_obj2'
not
in
data
)
# time - not empty
# time - not empty
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=0'
)
rv
=
client
.
get
(
'/admin/_datetime/?flt0_20=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1041,27 +1041,27 @@ def test_column_filters():
...
@@ -1041,27 +1041,27 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj1'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
ok_
(
'timeonly_obj2'
in
data
)
# Test enum filter
# Test enum filter
view
=
CustomModelView
(
Model1
,
db
.
session
,
view
=
CustomModelView
(
Model1
,
db
.
session
,
column_filters
=
[
'enum_field'
],
column_filters
=
[
'enum_field'
],
endpoint
=
"_enumfield"
)
endpoint
=
"_enumfield"
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
# enum - equals
# enum - equals
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_0=model1_v1'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_0=model1_v1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
# enum - not equal
# enum - not equal
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_1=model1_v1'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_1=model1_v1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj2'
in
data
)
ok_
(
'enum_obj2'
in
data
)
# enum - empty
# enum - empty
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_2=1'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_2=1'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1069,7 +1069,7 @@ def test_column_filters():
...
@@ -1069,7 +1069,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
# enum - not empty
# enum - not empty
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_2=0'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_2=0'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1077,7 +1077,7 @@ def test_column_filters():
...
@@ -1077,7 +1077,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj2'
in
data
)
ok_
(
'enum_obj2'
in
data
)
# enum - in list
# enum - in list
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_3=model1_v1
%2
Cmodel1_v2'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_3=model1_v1
%2
Cmodel1_v2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1085,7 +1085,7 @@ def test_column_filters():
...
@@ -1085,7 +1085,7 @@ def test_column_filters():
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'test1_val_1'
not
in
data
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj1'
in
data
)
ok_
(
'enum_obj2'
in
data
)
ok_
(
'enum_obj2'
in
data
)
# enum - not in list
# enum - not in list
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_4=model1_v1
%2
Cmodel1_v2'
)
rv
=
client
.
get
(
'/admin/_enumfield/?flt0_4=model1_v1
%2
Cmodel1_v2'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -1093,14 +1093,14 @@ def test_column_filters():
...
@@ -1093,14 +1093,14 @@ def test_column_filters():
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj1'
not
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
ok_
(
'enum_obj2'
not
in
data
)
# Test single custom filter on relation
# Test single custom filter on relation
view
=
CustomModelView
(
Model2
,
db
.
session
,
view
=
CustomModelView
(
Model2
,
db
.
session
,
column_filters
=
[
column_filters
=
[
filters
.
FilterEqual
(
Model1
.
test1
,
"Test1"
)
filters
.
FilterEqual
(
Model1
.
test1
,
"Test1"
)
],
endpoint
=
'_relation_test'
)
],
endpoint
=
'_relation_test'
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
rv
=
client
.
get
(
'/admin/_relation_test/?flt1_0=test1_val_1'
)
rv
=
client
.
get
(
'/admin/_relation_test/?flt1_0=test1_val_1'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
data
=
rv
.
data
.
decode
(
'utf-8'
)
ok_
(
'test1_val_1'
in
data
)
ok_
(
'test1_val_1'
in
data
)
...
@@ -1479,34 +1479,34 @@ def test_modelview_localization():
...
@@ -1479,34 +1479,34 @@ def test_modelview_localization():
def
test_locale
(
locale
):
def
test_locale
(
locale
):
try
:
try
:
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
app
.
config
[
'BABEL_DEFAULT_LOCALE'
]
=
locale
app
.
config
[
'BABEL_DEFAULT_LOCALE'
]
=
locale
babel
=
Babel
(
app
)
babel
=
Babel
(
app
)
Model1
,
_
=
create_models
(
db
)
Model1
,
_
=
create_models
(
db
)
view
=
CustomModelView
(
view
=
CustomModelView
(
Model1
,
db
.
session
,
Model1
,
db
.
session
,
column_filters
=
[
'test1'
,
'bool_field'
,
'date_field'
,
'datetime_field'
,
'time_field'
]
column_filters
=
[
'test1'
,
'bool_field'
,
'date_field'
,
'datetime_field'
,
'time_field'
]
)
)
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
client
=
app
.
test_client
()
client
=
app
.
test_client
()
rv
=
client
.
get
(
'/admin/model1/'
)
rv
=
client
.
get
(
'/admin/model1/'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
rv
=
client
.
get
(
'/admin/model1/new/'
)
rv
=
client
.
get
(
'/admin/model1/new/'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
except
:
except
:
print
(
"Error on the following locale:"
,
locale
)
print
(
"Error on the following locale:"
,
locale
)
raise
raise
locales
=
[
'en'
,
'cs'
,
'de'
,
'es'
,
'fa'
,
'fr'
,
'pt'
,
'ru'
,
'zh_CN'
,
'zh_TW'
]
locales
=
[
'en'
,
'cs'
,
'de'
,
'es'
,
'fa'
,
'fr'
,
'pt'
,
'ru'
,
'zh_CN'
,
'zh_TW'
]
for
locale
in
locales
:
for
locale
in
locales
:
test_locale
(
locale
)
test_locale
(
locale
)
def
test_custom_form_base
():
def
test_custom_form_base
():
app
,
db
,
admin
=
setup
()
app
,
db
,
admin
=
setup
()
...
...
flask_admin/tests/sqla/test_form_rules.py
View file @
50a0251b
...
@@ -3,7 +3,7 @@ from nose.tools import eq_, ok_, raises
...
@@ -3,7 +3,7 @@ from nose.tools import eq_, ok_, raises
from
.
import
setup
from
.
import
setup
from
.test_basic
import
CustomModelView
,
create_models
from
.test_basic
import
CustomModelView
,
create_models
from
flask
.ext.
admin.form
import
rules
from
flask
_
admin.form
import
rules
def
test_form_rules
():
def
test_form_rules
():
...
...
flask_admin/tests/sqla/test_inlineform.py
View file @
50a0251b
...
@@ -3,9 +3,9 @@ from nose.tools import eq_, ok_, raises
...
@@ -3,9 +3,9 @@ from nose.tools import eq_, ok_, raises
from
wtforms
import
fields
from
wtforms
import
fields
from
flask
.ext.
admin.contrib.sqla
import
ModelView
from
flask
_
admin.contrib.sqla
import
ModelView
from
flask
.ext.
admin.contrib.sqla.fields
import
InlineModelFormList
from
flask
_
admin.contrib.sqla.fields
import
InlineModelFormList
from
flask
.ext.
admin.contrib.sqla.validators
import
ItemsRequired
from
flask
_
admin.contrib.sqla.validators
import
ItemsRequired
from
.
import
setup
from
.
import
setup
...
...
flask_admin/tests/sqla/test_multi_pk.py
View file @
50a0251b
...
@@ -3,7 +3,7 @@ from nose.tools import eq_, ok_
...
@@ -3,7 +3,7 @@ from nose.tools import eq_, ok_
from
.
import
setup
from
.
import
setup
from
.test_basic
import
CustomModelView
from
.test_basic
import
CustomModelView
from
flask
.ext.
sqlalchemy
import
Model
from
flask
_
sqlalchemy
import
Model
from
sqlalchemy.ext.declarative
import
declarative_base
from
sqlalchemy.ext.declarative
import
declarative_base
...
...
flask_admin/tests/test_base.py
View file @
50a0251b
...
@@ -2,7 +2,7 @@ from nose.tools import ok_, eq_, raises
...
@@ -2,7 +2,7 @@ from nose.tools import ok_, eq_, raises
from
flask
import
Flask
,
request
,
abort
,
url_for
from
flask
import
Flask
,
request
,
abort
,
url_for
from
flask.views
import
MethodView
from
flask.views
import
MethodView
from
flask
.ext.
admin
import
base
from
flask
_
admin
import
base
class
MockView
(
base
.
BaseView
):
class
MockView
(
base
.
BaseView
):
...
@@ -132,11 +132,11 @@ def test_admin_customizations():
...
@@ -132,11 +132,11 @@ def test_admin_customizations():
client
=
app
.
test_client
()
client
=
app
.
test_client
()
rv
=
client
.
get
(
'/foobar/'
)
rv
=
client
.
get
(
'/foobar/'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
# test custom static_url_path
# test custom static_url_path
with
app
.
test_request_context
(
'/'
):
with
app
.
test_request_context
(
'/'
):
rv
=
client
.
get
(
url_for
(
'admin.static'
,
filename
=
'bootstrap/bootstrap2/css/bootstrap.css'
))
rv
=
client
.
get
(
url_for
(
'admin.static'
,
filename
=
'bootstrap/bootstrap2/css/bootstrap.css'
))
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
def
test_baseview_registration
():
def
test_baseview_registration
():
...
@@ -364,7 +364,7 @@ def test_root_mount():
...
@@ -364,7 +364,7 @@ def test_root_mount():
client
=
app
.
test_client
()
client
=
app
.
test_client
()
rv
=
client
.
get
(
'/mockview/'
)
rv
=
client
.
get
(
'/mockview/'
)
eq_
(
rv
.
data
,
b
'Success!'
)
eq_
(
rv
.
data
,
b
'Success!'
)
# test static files when url='/'
# test static files when url='/'
with
app
.
test_request_context
(
'/'
):
with
app
.
test_request_context
(
'/'
):
rv
=
client
.
get
(
url_for
(
'admin.static'
,
filename
=
'bootstrap/bootstrap2/css/bootstrap.css'
))
rv
=
client
.
get
(
url_for
(
'admin.static'
,
filename
=
'bootstrap/bootstrap2/css/bootstrap.css'
))
...
...
flask_admin/tests/test_form_upload.py
View file @
50a0251b
...
@@ -6,7 +6,7 @@ from io import BytesIO
...
@@ -6,7 +6,7 @@ from io import BytesIO
from
nose.tools
import
eq_
,
ok_
from
nose.tools
import
eq_
,
ok_
from
flask
import
Flask
,
url_for
from
flask
import
Flask
,
url_for
from
flask
.ext.
admin
import
form
,
helpers
from
flask
_
admin
import
form
,
helpers
def
_create_temp
():
def
_create_temp
():
...
...
flask_admin/tests/test_model.py
View file @
50a0251b
...
@@ -9,9 +9,9 @@ from werkzeug.test import Client
...
@@ -9,9 +9,9 @@ from werkzeug.test import Client
from
wtforms
import
fields
from
wtforms
import
fields
from
flask
.ext.
admin
import
Admin
,
form
from
flask
_
admin
import
Admin
,
form
from
flask
.ext.
admin._compat
import
iteritems
,
itervalues
from
flask
_
admin._compat
import
iteritems
,
itervalues
from
flask
.ext.
admin.model
import
base
,
filters
from
flask
_
admin.model
import
base
,
filters
def
wtforms2_and_up
(
func
):
def
wtforms2_and_up
(
func
):
...
@@ -404,7 +404,7 @@ def test_csrf():
...
@@ -404,7 +404,7 @@ def test_csrf():
csrf_token
=
get_csrf_token
(
rv
.
data
.
decode
(
'utf-8'
))
csrf_token
=
get_csrf_token
(
rv
.
data
.
decode
(
'utf-8'
))
# Edit without CSRF token
# Edit without CSRF token
rv
=
client
.
post
(
'/admin/secure/edit/?url=
%2
Fadmin
%2
Fsecure
%2
F&id=1'
,
rv
=
client
.
post
(
'/admin/secure/edit/?url=
%2
Fadmin
%2
Fsecure
%2
F&id=1'
,
data
=
dict
(
name
=
'test1'
))
data
=
dict
(
name
=
'test1'
))
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
...
@@ -423,7 +423,7 @@ def test_csrf():
...
@@ -423,7 +423,7 @@ def test_csrf():
csrf_token
=
get_csrf_token
(
rv
.
data
.
decode
(
'utf-8'
))
csrf_token
=
get_csrf_token
(
rv
.
data
.
decode
(
'utf-8'
))
# Delete without CSRF token, test validation errors
# Delete without CSRF token, test validation errors
rv
=
client
.
post
(
'/admin/secure/delete/'
,
rv
=
client
.
post
(
'/admin/secure/delete/'
,
data
=
dict
(
id
=
"1"
,
url
=
"/admin/secure/"
),
follow_redirects
=
True
)
data
=
dict
(
id
=
"1"
,
url
=
"/admin/secure/"
),
follow_redirects
=
True
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
ok_
(
u'Record was successfully deleted.'
not
in
rv
.
data
.
decode
(
'utf-8'
))
ok_
(
u'Record was successfully deleted.'
not
in
rv
.
data
.
decode
(
'utf-8'
))
...
...
flask_admin/tests/test_tools.py
View file @
50a0251b
from
nose.tools
import
eq_
,
ok_
from
nose.tools
import
eq_
,
ok_
from
flask
.ext.
admin
import
tools
from
flask
_
admin
import
tools
def
test_encode_decode
():
def
test_encode_decode
():
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment