Commit 296eb268 authored by PJ Janse van Rensburg's avatar PJ Janse van Rensburg

Add test for sorting on multiple columns of related model.

parent f7bb6f95
...@@ -1732,13 +1732,17 @@ def test_complex_sort(): ...@@ -1732,13 +1732,17 @@ def test_complex_sort():
app, db, admin = setup() app, db, admin = setup()
M1, M2 = create_models(db) M1, M2 = create_models(db)
m1 = M1('b') m1 = M1(test1='c', test2='x')
db.session.add(m1) db.session.add(m1)
db.session.add(M2('c', model1=m1)) db.session.add(M2('c', model1=m1))
m2 = M1('a') m2 = M1(test1='b', test2='x')
db.session.add(m2) db.session.add(m2)
db.session.add(M2('c', model1=m2)) db.session.add(M2('b', model1=m2))
m3 = M1(test1='a', test2='y')
db.session.add(m3)
db.session.add(M2('a', model1=m3))
db.session.commit() db.session.commit()
...@@ -1750,9 +1754,30 @@ def test_complex_sort(): ...@@ -1750,9 +1754,30 @@ def test_complex_sort():
client = app.test_client() client = app.test_client()
rv = client.get('/admin/model2/?sort=1') rv = client.get('/admin/model2/?sort=0')
eq_(rv.status_code, 200)
_, data = view.get_list(0, 'model1.test1', False, None, None)
eq_(data[0].model1.test1, 'a')
eq_(data[1].model1.test1, 'b')
eq_(data[2].model1.test1, 'c')
# test sorting on multiple columns in related model
view2 = CustomModelView(M2, db.session,
column_list=['string_field', 'model1'],
column_sortable_list=[('model1', ('model1.test2', 'model1.test1'))], endpoint="m1_2")
admin.add_view(view2)
rv = client.get('/admin/m1_2/?sort=0')
eq_(rv.status_code, 200) eq_(rv.status_code, 200)
_, data = view2.get_list(0, 'model1', False, None, None)
eq_(data[0].model1.test1, 'b')
eq_(data[1].model1.test1, 'c')
eq_(data[2].model1.test1, 'a')
@raises(Exception) @raises(Exception)
def test_complex_sort_exception(): def test_complex_sort_exception():
......
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