Fix SQLite CI test failures: UUID binding, func.now() defaults, F402 lint
CI / lint (pull_request) Failing after 4s
CI / typecheck (pull_request) Failing after 28s
CI / test (pull_request) Failing after 2m37s
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
CI / lint (pull_request) Failing after 4s
CI / typecheck (pull_request) Failing after 28s
CI / test (pull_request) Failing after 2m37s
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
Three fixes from PR #35 review: 1. Fix F402: rename loop var 'table' → 'metadata_table' in test_encrypted_json.py 2. Strip func.now() server_defaults in conftest.py engine/db_engine fixtures 3. Add aiosqlite UUID adapter for async engine Model changes to provide Python-side defaults for SQLite compatibility: - TimestampMixin: add default=_utcnow for created_at/updated_at - UUIDPrimaryKeyMixin: use GuidType for cross-DB UUID handling - User.id: use GuidType() instead of Text, Mapped[uuid.UUID] - User.email_verified: add default=False - Purchase.ingested_at: add default=_utcnow - types.py: add GuidType TypeDecorator for UUID→String conversion Fixes: CAR-1012
This commit is contained in:
@@ -18,15 +18,16 @@ from cartsnitch_api.models.user import User, UserStoreAccount
|
||||
def engine():
|
||||
eng = create_engine("sqlite:///:memory:")
|
||||
|
||||
for table in Base.metadata.tables.values():
|
||||
for col in table.columns.values():
|
||||
for metadata_table in Base.metadata.tables.values():
|
||||
for col in metadata_table.columns.values():
|
||||
sd = col.server_default
|
||||
if sd is not None:
|
||||
if not hasattr(sd, "expression"):
|
||||
col.server_default = None
|
||||
continue
|
||||
expr_str = str(sd.expression).lower()
|
||||
if "gen_random_uuid" in expr_str or "gen_random_bytes" in expr_str:
|
||||
_pg_fns = ("gen_random_uuid", "gen_random_bytes", "now()")
|
||||
if any(pg_fn in expr_str for pg_fn in _pg_fns):
|
||||
col.server_default = None
|
||||
|
||||
Base.metadata.create_all(eng)
|
||||
|
||||
Reference in New Issue
Block a user