Picture-Puzzle-website/venv/Lib/site-packages/flask_admin/tests/pymongo/test_basic.py

82 lines
2.0 KiB
Python

from wtforms import form, fields
from flask_admin.contrib.pymongo import ModelView
from . import setup
class TestForm(form.Form):
__test__ = False
test1 = fields.StringField('Test1')
test2 = fields.StringField('Test2')
class TestView(ModelView):
__test__ = False
column_list = ('test1', 'test2', 'test3', 'test4')
column_sortable_list = ('test1', 'test2')
form = TestForm
def test_model():
app, db, admin = setup()
view = TestView(db.test, 'Test')
admin.add_view(view)
# Drop existing data (if any)
db.test.delete_many({})
assert view.name == 'Test'
assert view.endpoint == 'testview'
assert 'test1' in view._sortable_columns
assert 'test2' in view._sortable_columns
assert view._create_form_class is not None
assert view._edit_form_class is not None
assert not view._search_supported
assert view._filters is None
# Make some test clients
client = app.test_client()
rv = client.get('/admin/testview/')
assert rv.status_code == 200
rv = client.get('/admin/testview/new/')
assert rv.status_code == 200
rv = client.post('/admin/testview/new/',
data=dict(test1='test1large', test2='test2'))
assert rv.status_code == 302
model = db.test.find()[0]
print(model)
assert model['test1'] == 'test1large'
assert model['test2'] == 'test2'
rv = client.get('/admin/testview/')
assert rv.status_code == 200
assert 'test1large' in rv.data.decode('utf-8')
url = '/admin/testview/edit/?id=%s' % model['_id']
rv = client.get(url)
assert rv.status_code == 200
rv = client.post(url,
data=dict(test1='test1small', test2='test2large'))
assert rv.status_code == 302
print(db.test.find()[0])
model = db.test.find()[0]
assert model['test1'] == 'test1small'
assert model['test2'] == 'test2large'
url = '/admin/testview/delete/?id=%s' % model['_id']
rv = client.post(url)
assert rv.status_code == 302
assert db.test.estimated_document_count() == 0