def test_reconfigure(): db = SQLAlchemy(URI1, echo=False) class Model(db.Model): id = db.Column(db.Integer, primary_key=True) db.create_all() db.add(Model()) db.commit() class CustomQuery(BaseQuery): some_attr = 1 db.reconfigure(query_cls=CustomQuery) assert isinstance(db.query(Model), CustomQuery) assert db.query(Model).some_attr == 1
def test_reconfigure(uri1): db = SQLAlchemy(uri1, echo=False) class Bucket(db.Model): id = db.Column(db.Integer, primary_key=True) db.create_all() db.add(Bucket()) db.commit() class CustomQuery(Query): some_attr = 1 db.reconfigure(query_cls=CustomQuery) assert isinstance(db.query(Bucket), CustomQuery) assert db.query(Bucket).some_attr == 1
def test_aggregated_query(): db = SQLAlchemy(URI1) class Unit(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60)) price = db.Column(db.Integer) db.create_all() db.add(Unit(price=25)) db.add(Unit(price=5)) db.add(Unit(price=10)) db.add(Unit(price=3)) db.commit() res = db.query(db.func.sum(Unit.price).label('price')).first() assert res.price == 43
def test_multiple_databases(): db1 = SQLAlchemy(URI1) db2 = SQLAlchemy(URI2) ToDo1 = create_test_model(db1) ToDo2 = create_test_model(db2) db1.create_all() db2.create_all() db1.add(ToDo1('A', 'a')) db1.add(ToDo1('B', 'b')) db2.add(ToDo2('Q', 'q')) db1.add(ToDo1('C', 'c')) db1.commit() db2.commit() assert db1.query(ToDo1).count() == 3 assert db2.query(ToDo2).count() == 1
def test_multiple_databases(uri1, uri2): db1 = SQLAlchemy(uri1) db2 = SQLAlchemy(uri2) ToDo1 = create_test_model(db1) ToDo2 = create_test_model(db2) db1.create_all() db2.create_all() db1.add(ToDo1("A", "a")) db1.add(ToDo1("B", "b")) db2.add(ToDo2("Q", "q")) db1.add(ToDo1("C", "c")) db1.commit() db2.commit() assert db1.query(ToDo1).count() == 3 assert db2.query(ToDo2).count() == 1
def create_test_model(): db = SQLAlchemy('sqlite://') class Item(db.Model): id = db.Column(db.Integer, primary_key=True) class Part(db.Model): id = db.Column(db.Integer, primary_key=True) item_id = db.Column(db.Integer, db.ForeignKey(Item.id)) item = db.relationship('Item', backref='parts') db.create_all() for _i in range(1, 26): item = Item() db.add(item) db.commit() item = db.query(Item).first() for _j in range(1, 26): db.add(Part(item=item)) db.commit() return db, Item, Part
from sqla_wrapper import SQLAlchemy db = SQLAlchemy("sqlite:///localhost.sqlite") class Message(db.Model): id = db.Column(db.Integer, primary_key=True) text = db.Column(db.String) username = db.Column(db.String) db.create_all() # this creates the tables (unless it's already created). It does not override any table already created. # message = Message(text="Hello world! :)") # db.add(message) # db.commit() message_2 = Message(text="Hey hey hey!", username="******") db.add(message_2) db.commit() messages = db.query(Message).all() for row in messages: print(row.text) message_first = db.query(Message).first() print(message_first.text)