Skip to content

Commit

Permalink
Add tests for sqlalchemy 1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
isra17 committed Apr 9, 2024
1 parent d473c88 commit 40e45b2
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 11 deletions.
4 changes: 3 additions & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ def all_extras(session: Session) -> str:


@nox_session(python=python_all_versions)
def tests(session: Session) -> None:
@nox.parametrize("sqlalchemy", ["1.4.52", "2.0.29"])
def tests(session: Session, sqlalchemy: str) -> None:
args = session.posargs
session.install(".[worker-manager,structlog]", *tests_packages)
session._session.install(f"sqlalchemy=={sqlalchemy}")
session.run(
"pytest",
"-vv",
Expand Down
13 changes: 8 additions & 5 deletions src/saturn_engine/models/job.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from datetime import datetime

import sqlalchemy as sa
from sqlalchemy import CheckConstraint
from sqlalchemy import ForeignKey
from sqlalchemy.orm import Mapped
Expand All @@ -27,18 +28,20 @@ class Job(Base):
),
)

name: Mapped[str] = mapped_column(primary_key=True)
cursor: Mapped[Optional[str]] = mapped_column(nullable=True)
name: Mapped[str] = mapped_column(sa.Text, primary_key=True)
cursor: Mapped[Optional[str]] = mapped_column(sa.Text, nullable=True)
completed_at: Mapped[Optional[datetime]] = mapped_column(UTCDateTime, nullable=True)
started_at: Mapped[datetime] = mapped_column(UTCDateTime, nullable=False)
queue_name: Mapped[str] = mapped_column(ForeignKey("queues.name"), nullable=False)
error: Mapped[Optional[str]] = mapped_column(nullable=True)
queue_name: Mapped[str] = mapped_column(
sa.Text, ForeignKey("queues.name"), nullable=False
)
error: Mapped[Optional[str]] = mapped_column(sa.Text, nullable=True)
queue: Mapped[queue_model.Queue] = relationship(
lambda: queue_model.Queue,
uselist=False,
back_populates="job",
)
job_definition_name: Mapped[Optional[str]] = mapped_column(nullable=True)
job_definition_name: Mapped[Optional[str]] = mapped_column(sa.Text, nullable=True)

def __init__(
self,
Expand Down
7 changes: 4 additions & 3 deletions src/saturn_engine/models/queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import dataclasses

import sqlalchemy as sa
from sqlalchemy import Index
from sqlalchemy import text
from sqlalchemy.orm import Mapped
Expand Down Expand Up @@ -31,12 +32,12 @@ class Queue(Base):
),
)

name: Mapped[str] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(sa.Text, primary_key=True)
assigned_at = mapped_column(DateTime(timezone=True))
assigned_to: Mapped[Optional[str]] = mapped_column()
assigned_to: Mapped[Optional[str]] = mapped_column(sa.Text)
job = relationship(lambda: job_model.Job, uselist=False, back_populates="queue")
_queue_item: Optional[QueueItemWithState] = None
enabled: Mapped[bool] = mapped_column(default=True, nullable=False)
enabled: Mapped[bool] = mapped_column(sa.Boolean, default=True, nullable=False)

@property
def queue_item(self) -> QueueItemWithState:
Expand Down
4 changes: 2 additions & 2 deletions src/saturn_engine/stores/jobs_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,9 @@ def sync_jobs_states(
session.execute(cursors_stmt)

if jobs_values:
session.execute(update(Job), jobs_values)
session.bulk_update_mappings(Job, jobs_values) # type: ignore[arg-type]
if queues_values:
session.execute(update(Queue), queues_values)
session.bulk_update_mappings(Queue, queues_values) # type: ignore[arg-type]


CursorsStates = dict[JobId, dict[CursorStateKey, t.Optional[dict]]]
Expand Down

0 comments on commit 40e45b2

Please sign in to comment.