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
e40eaf94
Unverified
Commit
e40eaf94
authored
Sep 22, 2020
by
Serge S. Koval
Committed by
GitHub
Sep 22, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1968 from cjmayo/mongoengine3
Enable testing of MongoEngine backend on Python 3
parents
eb227fc3
697271ce
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
34 additions
and
30 deletions
+34
-30
__init__.py
flask_admin/tests/mongoengine/__init__.py
+0
-5
test_basic.py
flask_admin/tests/mongoengine/test_basic.py
+26
-19
__init__.py
flask_admin/tests/pymongo/__init__.py
+3
-3
test_basic.py
flask_admin/tests/pymongo/test_basic.py
+3
-1
requirements-dev.txt
requirements-dev.txt
+2
-2
No files found.
flask_admin/tests/mongoengine/__init__.py
View file @
e40eaf94
from
nose.plugins.skip
import
SkipTest
from
nose.plugins.skip
import
SkipTest
from
wtforms
import
__version__
as
wtforms_version
from
wtforms
import
__version__
as
wtforms_version
# Skip test on PY3
from
flask_admin._compat
import
PY2
if
not
PY2
:
raise
SkipTest
(
'MongoEngine is not Python 3 compatible'
)
if
int
(
wtforms_version
[
0
])
<
2
:
if
int
(
wtforms_version
[
0
])
<
2
:
raise
SkipTest
(
'MongoEngine does not support WTForms 1.'
)
raise
SkipTest
(
'MongoEngine does not support WTForms 1.'
)
...
...
flask_admin/tests/mongoengine/test_basic.py
View file @
e40eaf94
...
@@ -15,7 +15,7 @@ class CustomModelView(ModelView):
...
@@ -15,7 +15,7 @@ class CustomModelView(ModelView):
def
__init__
(
self
,
model
,
def
__init__
(
self
,
model
,
name
=
None
,
category
=
None
,
endpoint
=
None
,
url
=
None
,
name
=
None
,
category
=
None
,
endpoint
=
None
,
url
=
None
,
**
kwargs
):
**
kwargs
):
for
k
,
v
in
kwargs
.
ite
rite
ms
():
for
k
,
v
in
kwargs
.
items
():
setattr
(
self
,
k
,
v
)
setattr
(
self
,
k
,
v
)
super
(
CustomModelView
,
self
)
.
__init__
(
model
,
super
(
CustomModelView
,
self
)
.
__init__
(
model
,
...
@@ -49,20 +49,27 @@ def create_models(db):
...
@@ -49,20 +49,27 @@ def create_models(db):
def
fill_db
(
Model1
,
Model2
):
def
fill_db
(
Model1
,
Model2
):
Model1
(
'test1_val_1'
,
'test2_val_1'
)
.
save
()
Model1
(
test1
=
'test1_val_1'
,
test2
=
'test2_val_1'
)
.
save
()
Model1
(
'test1_val_2'
,
'test2_val_2'
)
.
save
()
Model1
(
test1
=
'test1_val_2'
,
test2
=
'test2_val_2'
)
.
save
()
Model1
(
'test1_val_3'
,
'test2_val_3'
)
.
save
()
Model1
(
test1
=
'test1_val_3'
,
test2
=
'test2_val_3'
)
.
save
()
Model1
(
'test1_val_4'
,
'test2_val_4'
)
.
save
()
Model1
(
test1
=
'test1_val_4'
,
test2
=
'test2_val_4'
)
.
save
()
Model1
(
None
,
'empty_obj'
)
.
save
()
Model1
(
test1
=
None
,
test2
=
'empty_obj'
)
.
save
()
Model2
(
'string_field_val_1'
,
None
,
None
,
True
)
.
save
()
Model2
(
string_field
=
'string_field_val_1'
,
int_field
=
None
,
Model2
(
'string_field_val_2'
,
None
,
None
,
False
)
.
save
()
float_field
=
None
,
bool_field
=
True
)
.
save
()
Model2
(
'string_field_val_3'
,
5000
,
25.9
)
.
save
()
Model2
(
string_field
=
'string_field_val_2'
,
int_field
=
None
,
Model2
(
'string_field_val_4'
,
9000
,
75.5
)
.
save
()
float_field
=
None
,
bool_field
=
False
)
.
save
()
Model2
(
'string_field_val_5'
,
6169453081680413441
)
.
save
()
Model2
(
string_field
=
'string_field_val_3'
,
int_field
=
5000
,
float_field
=
25.9
)
.
save
()
Model1
(
'datetime_obj1'
,
datetime_field
=
datetime
(
2014
,
4
,
3
,
1
,
9
,
0
))
.
save
()
Model2
(
string_field
=
'string_field_val_4'
,
int_field
=
9000
,
Model1
(
'datetime_obj2'
,
datetime_field
=
datetime
(
2013
,
3
,
2
,
0
,
8
,
0
))
.
save
()
float_field
=
75.5
)
.
save
()
Model2
(
string_field
=
'string_field_val_5'
,
int_field
=
6169453081680413441
)
.
save
()
Model1
(
test1
=
'datetime_obj1'
,
datetime_field
=
datetime
(
2014
,
4
,
3
,
1
,
9
,
0
))
.
save
()
Model1
(
test1
=
'datetime_obj2'
,
datetime_field
=
datetime
(
2013
,
3
,
2
,
0
,
8
,
0
))
.
save
()
def
test_model
():
def
test_model
():
...
@@ -116,7 +123,7 @@ def test_model():
...
@@ -116,7 +123,7 @@ def test_model():
rv
=
client
.
get
(
'/admin/model1/'
)
rv
=
client
.
get
(
'/admin/model1/'
)
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
ok_
(
'test1large'
in
rv
.
data
)
ok_
(
b
'test1large'
in
rv
.
data
)
url
=
'/admin/model1/edit/?id=
%
s'
%
model
.
id
url
=
'/admin/model1/edit/?id=
%
s'
%
model
.
id
rv
=
client
.
get
(
url
)
rv
=
client
.
get
(
url
)
...
@@ -977,7 +984,7 @@ def test_sortedlist_subdocument_validation():
...
@@ -977,7 +984,7 @@ def test_sortedlist_subdocument_validation():
rv
=
client
.
post
(
'/admin/model1/new/'
,
rv
=
client
.
post
(
'/admin/model1/new/'
,
data
=
{
'test1'
:
'test1large'
,
'subdoc-0-name'
:
''
,
'subdoc-0-value'
:
'test'
})
data
=
{
'test1'
:
'test1large'
,
'subdoc-0-name'
:
''
,
'subdoc-0-value'
:
'test'
})
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
ok_
(
'This field is required'
in
rv
.
data
)
ok_
(
b
'This field is required'
in
rv
.
data
)
def
test_list_subdocument_validation
():
def
test_list_subdocument_validation
():
...
@@ -1002,7 +1009,7 @@ def test_list_subdocument_validation():
...
@@ -1002,7 +1009,7 @@ def test_list_subdocument_validation():
rv
=
client
.
post
(
'/admin/model1/new/'
,
rv
=
client
.
post
(
'/admin/model1/new/'
,
data
=
{
'test1'
:
'test1large'
,
'subdoc-0-name'
:
''
,
'subdoc-0-value'
:
'test'
})
data
=
{
'test1'
:
'test1large'
,
'subdoc-0-name'
:
''
,
'subdoc-0-value'
:
'test'
})
eq_
(
rv
.
status_code
,
200
)
eq_
(
rv
.
status_code
,
200
)
ok_
(
'This field is required'
in
rv
.
data
)
ok_
(
b
'This field is required'
in
rv
.
data
)
def
test_ajax_fk
():
def
test_ajax_fk
():
...
@@ -1056,7 +1063,7 @@ def test_ajax_fk():
...
@@ -1056,7 +1063,7 @@ def test_ajax_fk():
client
=
app
.
test_client
()
client
=
app
.
test_client
()
req
=
client
.
get
(
u'/admin/view/ajax/lookup/?name=model1&query=foo'
)
req
=
client
.
get
(
u'/admin/view/ajax/lookup/?name=model1&query=foo'
)
eq_
(
req
.
data
,
u'[["
%
s", "foo"]]'
%
model2
.
id
)
eq_
(
req
.
data
.
decode
(
'utf-8'
)
,
u'[["
%
s", "foo"]]'
%
model2
.
id
)
# Check submitting
# Check submitting
client
.
post
(
'/admin/view/new/'
,
data
=
{
u'model1'
:
as_unicode
(
model
.
id
)})
client
.
post
(
'/admin/view/new/'
,
data
=
{
u'model1'
:
as_unicode
(
model
.
id
)})
...
...
flask_admin/tests/pymongo/__init__.py
View file @
e40eaf94
import
pymongo
from
pymongo
import
MongoClient
from
flask
import
Flask
from
flask
import
Flask
from
flask_admin
import
Admin
from
flask_admin
import
Admin
...
@@ -9,8 +9,8 @@ def setup():
...
@@ -9,8 +9,8 @@ def setup():
app
.
config
[
'SECRET_KEY'
]
=
'1'
app
.
config
[
'SECRET_KEY'
]
=
'1'
app
.
config
[
'CSRF_ENABLED'
]
=
False
app
.
config
[
'CSRF_ENABLED'
]
=
False
c
onn
=
pymongo
.
Connection
()
c
lient
=
MongoClient
()
db
=
c
onn
.
tests
db
=
c
lient
.
tests
admin
=
Admin
(
app
)
admin
=
Admin
(
app
)
...
...
flask_admin/tests/pymongo/test_basic.py
View file @
e40eaf94
...
@@ -8,11 +8,13 @@ from . import setup
...
@@ -8,11 +8,13 @@ from . import setup
class
TestForm
(
form
.
Form
):
class
TestForm
(
form
.
Form
):
__test__
=
False
test1
=
fields
.
StringField
(
'Test1'
)
test1
=
fields
.
StringField
(
'Test1'
)
test2
=
fields
.
StringField
(
'Test2'
)
test2
=
fields
.
StringField
(
'Test2'
)
class
TestView
(
ModelView
):
class
TestView
(
ModelView
):
__test__
=
False
column_list
=
(
'test1'
,
'test2'
,
'test3'
,
'test4'
)
column_list
=
(
'test1'
,
'test2'
,
'test3'
,
'test4'
)
column_sortable_list
=
(
'test1'
,
'test2'
)
column_sortable_list
=
(
'test1'
,
'test2'
)
...
@@ -26,7 +28,7 @@ def test_model():
...
@@ -26,7 +28,7 @@ def test_model():
admin
.
add_view
(
view
)
admin
.
add_view
(
view
)
# Drop existing data (if any)
# Drop existing data (if any)
db
.
test
.
remove
(
)
db
.
test
.
delete_many
({}
)
eq_
(
view
.
name
,
'Test'
)
eq_
(
view
.
name
,
'Test'
)
eq_
(
view
.
endpoint
,
'testview'
)
eq_
(
view
.
endpoint
,
'testview'
)
...
...
requirements-dev.txt
View file @
e40eaf94
...
@@ -3,8 +3,8 @@ Flask>=0.7
...
@@ -3,8 +3,8 @@ Flask>=0.7
Flask-SQLAlchemy>=0.15
Flask-SQLAlchemy>=0.15
peewee
peewee
wtf-peewee
wtf-peewee
mongoengine
<0.11.0
mongoengine
pymongo
==2.8
pymongo
flask-mongoengine==0.8.2
flask-mongoengine==0.8.2
pillow>=3.3.2
pillow>=3.3.2
Babel<=1.3
Babel<=1.3
...
...
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