Commit b9eb2cca authored by Serge S. Koval's avatar Serge S. Koval

SQLA form tests

parent 60e6685e
...@@ -2,6 +2,7 @@ from flask import Flask ...@@ -2,6 +2,7 @@ from flask import Flask
from flask.ext.admin import Admin from flask.ext.admin import Admin
from flask.ext.sqlalchemy import SQLAlchemy from flask.ext.sqlalchemy import SQLAlchemy
def setup(): def setup():
app = Flask(__name__) app = Flask(__name__)
app.config['SECRET_KEY'] = '1' app.config['SECRET_KEY'] = '1'
......
...@@ -15,8 +15,7 @@ class CustomModelView(ModelView): ...@@ -15,8 +15,7 @@ class CustomModelView(ModelView):
for k, v in iteritems(kwargs): for k, v in iteritems(kwargs):
setattr(self, k, v) setattr(self, k, v)
super(CustomModelView, self).__init__(model, session, super(CustomModelView, self).__init__(model, session, name, category,
name, category,
endpoint, url) endpoint, url)
...@@ -436,12 +435,42 @@ def test_non_int_pk(): ...@@ -436,12 +435,42 @@ def test_non_int_pk():
ok_('test2' in data) ok_('test2' in data)
def test_form(): def test_form_columns():
# TODO: form_columns app, db, admin = setup()
# TODO: form_excluded_columns
class Model(db.Model):
id = db.Column(db.String, primary_key=True)
int_field = db.Column(db.Integer)
datetime_field = db.Column(db.DateTime)
text_field = db.Column(db.UnicodeText)
excluded_column = db.Column(db.String)
class ChildModel(db.Model):
id = db.Column(db.String, primary_key=True)
model_id = db.Column(db.Integer, db.ForeignKey(Model.id))
model = db.relationship(Model, backref='backref')
db.create_all()
view1 = CustomModelView(Model, db.session, endpoint='view1',
form_columns=('int_field', 'text_field'))
view2 = CustomModelView(Model, db.session, endpoint='view2',
form_excluded_columns=('excluded_column',))
view3 = CustomModelView(ChildModel, db.session, endpoint='view3')
form1 = view1.create_form()
form2 = view2.create_form()
form3 = view3.create_form()
ok_('int_field' in form1._fields)
ok_('text_field' in form1._fields)
ok_('datetime_field' not in form1._fields)
ok_('excluded_column' not in form2._fields)
ok_(type(form3.model).__name__ == 'QuerySelectField')
# TODO: form_args # TODO: form_args
# TODO: Select columns
pass
def test_form_override(): def test_form_override():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment