Coverage for src/common/models/openapi_spec.py: 100%
15 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-03-24 21:46 -0400
« prev ^ index » next coverage.py v7.6.10, created at 2025-03-24 21:46 -0400
1"""Module for the class that represents the OpenAPI spec and its CueCode config"""
3import uuid
4from typing import List
6from sqlalchemy import Column, ForeignKey, String, Text
7from sqlalchemy.dialects.postgresql import UUID
8from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
10from common.models.openapi_path import OpenAPIPath
12from .base import Base
15class OpenAPISpec(Base): # pylint: disable=too-few-public-methods
16 """An OpenAPI spec as stored in the CueCode database"""
18 __tablename__ = "openapi_spec"
20 openapi_spec_id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
21 cuecode_config_id = Column(
22 UUID(as_uuid=True),
23 ForeignKey("cuecode_config.cuecode_config_id"),
24 nullable=False,
25 )
26 spec_text = Column(Text)
27 file_name = Column(String)
28 base_url = Column(String)
30 paths: Mapped[List[OpenAPIPath]] = relationship(back_populates="spec")