From 2bdbef8f8ac95afa02edc2f7472bfd6e07c65303 Mon Sep 17 00:00:00 2001 From: Thomas Peetz Date: Sat, 19 Apr 2025 01:40:13 +0200 Subject: [PATCH] change boolean fields in schema from Bit(1) to Boolean --- fastapi/app/routers/media.py | 16 ++++++++-------- fastapi/app/schema/admin.py | 10 +++++----- fastapi/app/schema/base.py | 7 +++---- fastapi/app/schema/comic.py | 11 +++++------ fastapi/app/schema/database.py | 4 ++-- fastapi/app/schema/media.py | 19 +++++++++---------- fastapi/app/schema/metadata.py | 5 ++--- fastapi/app/schema/tysc.py | 7 +++---- fastapi/tests/test_main.py | 10 +++++++--- 9 files changed, 44 insertions(+), 45 deletions(-) diff --git a/fastapi/app/routers/media.py b/fastapi/app/routers/media.py index 185f8de..11f3143 100644 --- a/fastapi/app/routers/media.py +++ b/fastapi/app/routers/media.py @@ -25,8 +25,8 @@ def update_titles(db: SessionDep) -> list[MediaFileResponse]: file_name=mediafile.file_name, cloud_link=mediafile.cloud_link, url=str(mediafile.url), - review=(mediafile.review == 1), - should_download=(mediafile.should_download == 1)) + review=mediafile.review, + should_download=mediafile.should_download) results.append(response) db.commit() return results @@ -37,9 +37,9 @@ def get_all_files(db: SessionDep, review: bool = False, download: bool = False) results: list[MediaFileResponse] = [] files: Sequence[MediaFile] if review: - files = db.query(MediaFile).filter(MediaFile.review == 1).all() + files = db.query(MediaFile).filter(MediaFile.review == review).all() elif download: - files = db.query(MediaFile).filter(MediaFile.should_download == 1).all() + files = db.query(MediaFile).filter(MediaFile.should_download == download).all() else: files = db.scalars(select(MediaFile)).all() for mediafile in files: @@ -48,8 +48,8 @@ def get_all_files(db: SessionDep, review: bool = False, download: bool = False) file_name=mediafile.file_name, cloud_link=mediafile.cloud_link, url=str(mediafile.url), - review=(mediafile.review == 1), - should_download=(mediafile.should_download == 1)) + review=mediafile.review, + should_download=mediafile.should_download) results.append(response) return results @@ -95,6 +95,6 @@ def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse: file_name=mediaFile.file_name, cloud_link=mediaFile.cloud_link, url=new_link.url, - review=(mediaFile.review == 1), - should_download=(mediaFile.should_download == 1)) + review=mediaFile.review, + should_download=mediaFile.should_download) return response diff --git a/fastapi/app/schema/admin.py b/fastapi/app/schema/admin.py index 8dd33bd..3cf1f1f 100644 --- a/fastapi/app/schema/admin.py +++ b/fastapi/app/schema/admin.py @@ -1,6 +1,6 @@ from datetime import datetime -from sqlalchemy import Column, DateTime, ForeignKey, Integer, String +from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String from sqlalchemy.dialects.mysql import BIT from sqlalchemy.orm import relationship, mapped_column, Mapped @@ -14,7 +14,7 @@ class User(Base, BaseMixin): user_name = Column(String(255), nullable=False) email = Column(String(255)) password = Column(String(255)) - enabled = Column(BIT(1)) + enabled = Column(Boolean) matrix = relationship("AuthorizationMatrix") tokens = relationship("Token") @@ -34,7 +34,7 @@ class Token(Base, BaseMixin): token = Column(String(255), nullable=False, unique=True) name = Column(String(255)) last_used_date: Mapped[datetime] = mapped_column() - enabled = Column(BIT(1)) + enabled = Column(Boolean) user_id = Column(String(255), ForeignKey("user.id"), nullable=False) user = relationship("User", back_populates="tokens") @@ -56,7 +56,7 @@ class AuthorizationMatrix(Base, BaseMixin): class ModuleData(Base, BaseMixin): __tablename__ = "module_data" module_name = Column(String(255), nullable=False) - import_data = Column(BIT(1)) + import_data = Column(Boolean) class MailAccount(Base, BaseMixin): @@ -66,7 +66,7 @@ class MailAccount(Base, BaseMixin): protocol = Column(String(255)) user_name = Column(String(255)) password = Column(String(255)) - start_tls = Column(BIT(1)) + start_tls = Column(Boolean) class Mail(Base, BaseMixin): diff --git a/fastapi/app/schema/base.py b/fastapi/app/schema/base.py index 4a354e7..9ac6b98 100644 --- a/fastapi/app/schema/base.py +++ b/fastapi/app/schema/base.py @@ -1,8 +1,7 @@ import uuid from datetime import datetime -from sqlalchemy import func, Column, String -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Boolean, func, Column, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column @@ -25,7 +24,7 @@ class BaseVideoMixin: cloud_link = Column(String(255)) file_name = Column(String(255)) path = Column(String(255)) - review = Column(BIT(1)) + review = Column(Boolean) title = Column(String(255)) url = Column(String(255), unique=True) - should_download = Column(BIT(1)) + should_download = Column(Boolean) diff --git a/fastapi/app/schema/comic.py b/fastapi/app/schema/comic.py index fe6ec19..51bee95 100644 --- a/fastapi/app/schema/comic.py +++ b/fastapi/app/schema/comic.py @@ -1,5 +1,4 @@ -from sqlalchemy import Column, DateTime, ForeignKey, Integer, String -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -22,8 +21,8 @@ class Comic(Base, BaseMixin): title = Column(String(length=255), unique=True) publisher_id = Column(String, ForeignKey('publisher.id'), nullable=False) publisher = relationship("Publisher", back_populates="comics") - current_order = Column(BIT(1)) - completed = Column(BIT(1)) + current_order = Column(Boolean) + completed = Column(Boolean) issues = relationship("Issue") story_arcs = relationship("StoryArc") trade_paperbacks = relationship("TradePaperback") @@ -64,8 +63,8 @@ class StoryArc(Base, BaseMixin): class Issue(Base, BaseMixin): __tablename__ = "issue" issue_number = Column(String(255)) - in_stock = Column(BIT(1)) - is_read = Column(BIT(1)) + in_stock = Column(Boolean) + is_read = Column(Boolean) comic_id = Column(String, ForeignKey("comic.id"), nullable=False) comic = relationship("Comic", back_populates="issues") volume_id = Column(String, ForeignKey("volume.id"), nullable=True) diff --git a/fastapi/app/schema/database.py b/fastapi/app/schema/database.py index 013e2f1..8d62b92 100644 --- a/fastapi/app/schema/database.py +++ b/fastapi/app/schema/database.py @@ -330,8 +330,8 @@ class KontorDB: media_file.last_modified_date = datetime.now() media_file.version = 0 media_file.url = link - media_file.review = 1 - media_file.should_download = 1 + media_file.review = True + media_file.should_download = True try: session.add(media_file) session.commit() diff --git a/fastapi/app/schema/media.py b/fastapi/app/schema/media.py index 266fe48..2b6c421 100644 --- a/fastapi/app/schema/media.py +++ b/fastapi/app/schema/media.py @@ -5,8 +5,7 @@ from pathlib import Path import requests from bs4 import BeautifulSoup -from sqlalchemy import Column, DateTime, Integer, String, ForeignKey -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Boolean, Column, DateTime, Integer, String, ForeignKey from sqlalchemy.orm import relationship from .base import Base, BaseMixin, BaseVideoMixin @@ -29,10 +28,10 @@ class MediaFile(Base, BaseMixin, BaseVideoMixin): soup = BeautifulSoup(r.content, "html.parser") title = soup.title.string self.title = title - self.review = 0 + self.review = False except: self.title = None - self.review = 1 + self.review = True self.last_modified_date = datetime.now() def download_file(self, download_dir: str, dl_tool: str): @@ -44,12 +43,12 @@ class MediaFile(Base, BaseMixin, BaseVideoMixin): lines_list = output.splitlines() file_name = self.__parse_output__(lines_list) if file_name is None: - self.review = 1 - self.should_download = 1 + self.review = True + self.should_download = True self.file_name = None else: download_file = Path(file_name) - self.should_download = 0 + self.should_download = False self.file_name = download_file.name self.cloud_link = str(download_file.absolute()) self.last_modified_date = datetime.now() @@ -84,7 +83,7 @@ class MediaActorFile(Base, BaseMixin): class MediaArticle(Base, BaseMixin): __tablename__ = 'media_article' - review = Column(BIT(1)) + review = Column(Boolean) title = Column(String(255)) url = Column(String(255), unique=True) @@ -94,7 +93,7 @@ class MediaVideo(Base, BaseMixin): cloud_link = Column(String(255)) file_name = Column(String(255)) path = Column(String(255)) - review = Column(BIT(1)) + review = Column(Boolean) title = Column(String(255)) url = Column(String(255), unique=True) - should_download = Column(BIT(1)) + should_download = Column(Boolean) diff --git a/fastapi/app/schema/metadata.py b/fastapi/app/schema/metadata.py index f9538bb..c08b225 100644 --- a/fastapi/app/schema/metadata.py +++ b/fastapi/app/schema/metadata.py @@ -1,5 +1,4 @@ from sqlalchemy import Column, String, ForeignKey, DateTime, Integer, Boolean -from sqlalchemy.dialects.mysql import BIT from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -28,8 +27,8 @@ class MetaDataColumn(Base, BaseMixin): table = relationship("MetaDataTable", back_populates="table_columns") column_label = Column(String(255)) filter_label = Column(String(255)) - is_shown = Column(BIT(1)) - show_filter = Column(BIT(1)) + is_shown = Column(Boolean) + show_filter = Column(Boolean) ref_column = Column(String, nullable=True) def __repr__(self): diff --git a/fastapi/app/schema/tysc.py b/fastapi/app/schema/tysc.py index ef8bc5d..11918b1 100644 --- a/fastapi/app/schema/tysc.py +++ b/fastapi/app/schema/tysc.py @@ -1,5 +1,4 @@ -from sqlalchemy import Column, DateTime, Integer, String, ForeignKey, UniqueConstraint -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Boolean, Column, DateTime, Integer, String, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -78,8 +77,8 @@ class CardSet(Base, BaseMixin): UniqueConstraint("name", "vendor_id"), ) name = Column(String(255), index=True) - parallel_set = Column(BIT(1)) - insert_set = Column(BIT(1)) + parallel_set = Column(Boolean) + insert_set = Column(Boolean) vendor_id = Column(String, ForeignKey("vendor.id"), nullable=False, index=True) vendor = relationship("Vendor", back_populates="card_sets") cards = relationship("Card") diff --git a/fastapi/tests/test_main.py b/fastapi/tests/test_main.py index 6e714d4..ca2e501 100644 --- a/fastapi/tests/test_main.py +++ b/fastapi/tests/test_main.py @@ -1,10 +1,14 @@ from fastapi.testclient import TestClient - +import pytest from app.main import app -client = TestClient(app) +@pytest.fixture(name="client") +def client_fixture(): + client = TestClient(app) + yield client -def test_get_authors(): + +def test_get_artists(client: TestClient): response = client.get("/comic/artists") assert response.status_code == 200 assert len(response.json()) == 5