1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- from nose.tools import eq_, ok_
- from . import setup_postgres
- from .test_basic import CustomModelView
- from sqlalchemy.dialects.postgresql import HSTORE, JSON
- def test_hstore():
- app, db, admin = setup_postgres()
- class Model(db.Model):
- id = db.Column(db.Integer, primary_key=True, autoincrement=True)
- hstore_test = db.Column(HSTORE)
- db.create_all()
- view = CustomModelView(Model, db.session)
- admin.add_view(view)
- client = app.test_client()
- rv = client.get('/admin/model/')
- eq_(rv.status_code, 200)
- rv = client.post('/admin/model/new/', data={
- 'hstore_test-0-key': 'test_val1',
- 'hstore_test-0-value': 'test_val2'
- })
- eq_(rv.status_code, 302)
- rv = client.get('/admin/model/')
- eq_(rv.status_code, 200)
- data = rv.data.decode('utf-8')
- ok_('test_val1' in data)
- ok_('test_val2' in data)
- rv = client.get('/admin/model/edit/?id=1')
- eq_(rv.status_code, 200)
- data = rv.data.decode('utf-8')
- ok_('test_val1' in data)
- ok_('test_val2' in data)
- def test_json():
- app, db, admin = setup_postgres()
- class JSONModel(db.Model):
- id = db.Column(db.Integer, primary_key=True, autoincrement=True)
- json_test = db.Column(JSON)
- db.create_all()
- view = CustomModelView(JSONModel, db.session)
- admin.add_view(view)
- client = app.test_client()
- rv = client.get('/admin/jsonmodel/')
- eq_(rv.status_code, 200)
- rv = client.post('/admin/jsonmodel/new/', data={
- 'json_test': '{"test_key1": "test_value1"}',
- })
- eq_(rv.status_code, 302)
- rv = client.get('/admin/jsonmodel/')
- eq_(rv.status_code, 200)
- data = rv.data.decode('utf-8')
- ok_('json_test' in data)
- ok_('{"test_key1": "test_value1"}' in data)
- rv = client.get('/admin/jsonmodel/edit/?id=1')
- eq_(rv.status_code, 200)
- data = rv.data.decode('utf-8')
- ok_('json_test' in data)
- ok_('>{"test_key1": "test_value1"}<' in data)
|