Coverage for app/models/Grid.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-16 20:06 +0000

1import uuid 

2 

3from sqlalchemy import UUID, CheckConstraint, ForeignKey, Integer 

4from sqlalchemy.orm import Mapped, mapped_column, relationship 

5 

6from app.models.Base import Base 

7 

8 

9class Grid(Base): 

10 __tablename__ = "grid" 

11 

12 id: Mapped[uuid.UUID] = mapped_column( 

13 UUID(as_uuid=True), 

14 primary_key=True, 

15 default=uuid.uuid4, 

16 ) 

17 x: Mapped[int] = mapped_column( 

18 Integer, 

19 nullable=False, 

20 ) 

21 y: Mapped[int] = mapped_column( 

22 Integer, 

23 nullable=False, 

24 ) 

25 

26 probe_id: Mapped[uuid.UUID] = mapped_column( 

27 UUID(as_uuid=True), ForeignKey("probe.id"), unique=True, nullable=False 

28 ) 

29 probe: Mapped["Probe"] = relationship("Probe", back_populates="grid") # type: ignore # noqa: F821 

30 

31 __table_args__ = ( 

32 CheckConstraint("x >= 0", name="check_valid_grid_x_position"), 

33 CheckConstraint("y >= 0", name="check_valid_grid_y_position"), 

34 )