Fix type casting, now we have an unexpected succes :)

This commit is contained in:
Colin Goutte 2023-08-27 13:28:46 +02:00
parent 130c4cb7b2
commit 8c9a4d5295
3 changed files with 8 additions and 5 deletions

View File

@ -17,7 +17,7 @@ def create_movie(
):
db_movie = models.Movie(
title=title,
genres=str(genres),
genres=genres,
description=description,
vote_average=vote_average,
vote_count=vote_count,

View File

@ -7,7 +7,10 @@ class NaiveStringList(types.TypeDecorator):
impl = types.Unicode
sep = "\n"
def process_bind_param(self, value, dialect):
def process_bind_param(self, value: list[str], dialect):
allowed = list, tuple
if not isinstance(value, allowed):
raise ValueError(f"{value!r}'s type should be in types{allowed} ")
return self.sep.join(value)
def process_result_value(self, value, dialect):

View File

@ -3,7 +3,7 @@ from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.pool import StaticPool
from sqlalchemy import MetaData
from sqlalchemy import exc
from database import Base
from dev import app, get_db
from models import Movie
@ -97,8 +97,8 @@ def test_genre_custom_type_serialize_type():
try:
with db_context() as db:
movie = crud.create_movie(db, title=name, genres=csv_genres)
except TypeError as exc:
assert "tuple" in str(exc)
except (ValueError, exc.StatementError) as error:
assert "tuple" in str(error)
else:
raise RuntimeError("Exception should have been raised")