def test_models_mixins(): db = SQLAlchemy('sqlite:///:memory:') class UserMixin(object): email = db.Column(db.Unicode(300)) def __repr__(self): return 'overwrited' class RoleMixin(object): description = db.Column(db.UnicodeText) auth = authcode.Auth(SECRET_KEY, db=db, UserMixin=UserMixin, RoleMixin=RoleMixin) User = auth.User Role = auth.Role db.create_all() user = User(login=u'meh', password='******', email=u'*****@*****.**') db.session.add(user) db.flush() assert User.__tablename__ == 'users' assert user.login == u'meh' assert user.email == u'*****@*****.**' assert hasattr(user, 'password') assert hasattr(user, 'last_sign_in') assert repr(user) == 'overwrited' assert hasattr(Role, 'description')
def test_query(): db = SQLAlchemy(URI1) ToDo = create_test_model(db) db.create_all() db.add(ToDo('First', 'The text')) db.add(ToDo('Second', 'The text')) db.flush() titles = ' '.join(x.title for x in db.query(ToDo).all()) assert titles == 'First Second' data = db.query(ToDo).filter(ToDo.title == 'First').all() assert len(data) == 1
def test_flask_sqlalchemy_query(): db = SQLAlchemy(URI1) ToDo = create_test_model(db) db.create_all() db.add(ToDo('First', 'The text')) db.add(ToDo('Second', 'The text')) db.flush() titles = ' '.join(x.title for x in ToDo.query.all()) assert titles == 'First Second' data = ToDo.query.filter(ToDo.title == 'First').all() assert len(data) == 1
def test_model_helpers(): db = SQLAlchemy() class Row(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60), nullable=False) created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) db.create_all() db.add(Row(name='a')) db.flush() row = db.query(Row).first() assert str(row) == '<Row>' assert dict(row)['name'] == 'a'