Skip to content

Commit efc3cfc

Browse files
committed
Remove queue reference to transfers
1 parent 7aac62e commit efc3cfc

File tree

7 files changed

+18
-37
lines changed

7 files changed

+18
-37
lines changed

syncmaster/db/models/connection.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from sqlalchemy import JSON, Computed, Index, String, UniqueConstraint
99
from sqlalchemy.dialects.postgresql import TSVECTOR
10-
from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship
10+
from sqlalchemy.orm import Mapped, mapped_column, relationship
1111
from sqlalchemy_utils import ChoiceType
1212

1313
from syncmaster.db.mixins import ResourceMixin, TimestampMixin
@@ -33,6 +33,11 @@ class ConnectionType(StrEnum):
3333

3434

3535
class Connection(Base, ResourceMixin, TimestampMixin):
36+
__table_args__ = (
37+
UniqueConstraint("name", "group_id"),
38+
Index("idx_connection_search_vector", "search_vector", postgresql_using="gin"),
39+
)
40+
3641
type: Mapped[ConnectionType] = mapped_column(ChoiceType(ConnectionType, impl=String(32)), nullable=False)
3742
data: Mapped[dict[str, Any]] = mapped_column(JSON, nullable=False, default={})
3843

@@ -71,10 +76,3 @@ class Connection(Base, ResourceMixin, TimestampMixin):
7176

7277
def __repr__(self):
7378
return f"<Connection name={self.name} description={self.description} group_id={self.group_id}>"
74-
75-
@declared_attr
76-
def __table_args__(cls) -> tuple:
77-
return (
78-
UniqueConstraint("name", "group_id"),
79-
Index("idx_connection_search_vector", "search_vector", postgresql_using="gin"),
80-
)

syncmaster/db/models/queue.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,18 @@
22
# SPDX-License-Identifier: Apache-2.0
33
from __future__ import annotations
44

5-
from typing import TYPE_CHECKING
6-
75
from sqlalchemy import Computed, String
86
from sqlalchemy.dialects.postgresql import TSVECTOR
9-
from sqlalchemy.orm import Mapped, mapped_column, relationship
7+
from sqlalchemy.orm import Mapped, mapped_column
108

119
from syncmaster.db.mixins import ResourceMixin, TimestampMixin
1210
from syncmaster.db.models.base import Base
1311

14-
if TYPE_CHECKING:
15-
from syncmaster.db.models.group import Group
16-
from syncmaster.db.models.transfer import Transfer
17-
1812

1913
class Queue(Base, ResourceMixin, TimestampMixin):
2014
name: Mapped[str] = mapped_column(String(128), nullable=False)
2115
slug: Mapped[str] = mapped_column(String(256), nullable=False, unique=True)
2216

23-
transfers: Mapped[list[Transfer]] = relationship(back_populates="queue")
24-
group: Mapped[Group] = relationship()
25-
2617
search_vector: Mapped[str] = mapped_column(
2718
TSVECTOR,
2819
Computed(

syncmaster/db/models/transfer.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
UniqueConstraint,
1616
)
1717
from sqlalchemy.dialects.postgresql import TSVECTOR
18-
from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship
18+
from sqlalchemy.orm import Mapped, mapped_column, relationship
1919

2020
from syncmaster.db.mixins import ResourceMixin, TimestampMixin
2121
from syncmaster.db.models.base import Base
@@ -31,6 +31,11 @@ class Transfer(
3131
ResourceMixin,
3232
TimestampMixin,
3333
):
34+
__table_args__ = (
35+
UniqueConstraint("name", "group_id"),
36+
Index("idx_transfer_search_vector", "search_vector", postgresql_using="gin"),
37+
)
38+
3439
source_connection_id: Mapped[int] = mapped_column(
3540
BigInteger,
3641
ForeignKey("connection.id", ondelete="CASCADE"),
@@ -110,10 +115,3 @@ class Transfer(
110115
nullable=False,
111116
deferred=True,
112117
)
113-
114-
@declared_attr
115-
def __table_args__(cls) -> tuple:
116-
return (
117-
UniqueConstraint("name", "group_id"),
118-
Index("idx_transfer_search_vector", "search_vector", postgresql_using="gin"),
119-
)

syncmaster/db/repositories/queue.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from sqlalchemy import ScalarResult, insert, select
66
from sqlalchemy.exc import DBAPIError, IntegrityError, NoResultFound
77
from sqlalchemy.ext.asyncio import AsyncSession
8-
from sqlalchemy.orm import selectinload
98

109
from syncmaster.db.models import Group, GroupMemberRole, Queue, User, UserGroup
1110
from syncmaster.db.repositories.repository_with_owner import RepositoryWithOwner
@@ -34,12 +33,7 @@ async def read_by_id(
3433
self,
3534
queue_id: int,
3635
) -> Queue:
37-
stmt = (
38-
select(Queue)
39-
.where(Queue.id == queue_id)
40-
.options(selectinload(Queue.transfers))
41-
.options(selectinload(Queue.group))
42-
)
36+
stmt = select(Queue).where(Queue.id == queue_id)
4337
try:
4438
result: ScalarResult[Queue] = await self._session.scalars(stmt)
4539
return result.one()

tests/test_unit/test_connections/test_update_connection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ async def test_developer_plus_update_oracle_connection_both_sid_and_service_name
480480
role_developer_plus: UserTestRoles,
481481
):
482482
user = group_connection.owner_group.get_member_of_role(role_developer_plus)
483-
group_id = group_connection.connection.group.id
483+
group_id = group_connection.connection.group_id
484484

485485
response = await client.put(
486486
f"v1/connections/{group_connection.id}",

tests/test_unit/test_queues/test_create_queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ async def test_maintainer_plus_can_not_create_queue_with_duplicate_name_error(
309309
json={
310310
"name": group_queue.name, # duplicated name
311311
"description": "Some interesting description",
312-
"group_id": group_queue.group.id,
312+
"group_id": group_queue.group_id,
313313
},
314314
)
315315

tests/test_unit/test_queues/test_read_queue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def test_group_member_can_read_queue(
2626
"name": group_queue.name,
2727
"description": group_queue.description,
2828
"group_id": group_queue.group_id,
29-
"slug": f"{group_queue.group.id}-{group_queue.name}",
29+
"slug": f"{group_queue.group_id}-{group_queue.name}",
3030
}
3131

3232

@@ -46,7 +46,7 @@ async def test_superuser_can_read_queue(
4646
"name": group_queue.name,
4747
"description": group_queue.description,
4848
"group_id": group_queue.group_id,
49-
"slug": f"{group_queue.group.id}-{group_queue.name}",
49+
"slug": f"{group_queue.group_id}-{group_queue.name}",
5050
}
5151

5252

0 commit comments

Comments
 (0)