|
| 1 | +from pathlib import Path |
| 2 | + |
| 3 | +from sqlspec import SQLSpec |
| 4 | +from sqlspec.adapters.sqlite import SqliteConfig |
| 5 | +from sqlspec.loader import SQLFileLoader |
| 6 | + |
| 7 | +__all__ = ("test_index_3",) |
| 8 | + |
| 9 | + |
| 10 | +QUERIES_PATH = Path(__file__).parent.parent / "queries" / "users.sql" |
| 11 | + |
| 12 | + |
| 13 | +def test_index_3() -> None: |
| 14 | + db_manager = SQLSpec() |
| 15 | + db = db_manager.add_config(SqliteConfig()) |
| 16 | + loader = SQLFileLoader() |
| 17 | + loader.load_sql(QUERIES_PATH) |
| 18 | + get_user_by_id = loader.get_sql("get_user_by_id") |
| 19 | + |
| 20 | + with db_manager.provide_session(db) as session: |
| 21 | + _ = session.execute( |
| 22 | + """ |
| 23 | + CREATE TABLE users ( |
| 24 | + id INTEGER PRIMARY KEY, |
| 25 | + username TEXT NOT NULL, |
| 26 | + email TEXT, |
| 27 | + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 28 | + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| 29 | + ) |
| 30 | + """ |
| 31 | + ) |
| 32 | + _ = session.execute( |
| 33 | + """ |
| 34 | + INSERT INTO users(id, username, email) |
| 35 | + VALUES (1, 'alice', 'alice@example.com'), |
| 36 | + (2, 'bob', 'bob@example.com') |
| 37 | + """ |
| 38 | + ) |
| 39 | + user = session.select_one(get_user_by_id, user_id=2) |
| 40 | + |
| 41 | + assert user["username"] == "bob" |
| 42 | + assert user["email"] == "bob@example.com" |
0 commit comments