From 0ae18d01d249cd0b385bffbc2e03ca1302e6be9c Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Sun, 27 Aug 2023 21:29:12 +0200 Subject: [PATCH] Failin test for a token --- crud.py | 8 +++++ utests/test_sql_database.py | 60 +++++++++++++++++++++++++++++-------- 2 files changed, 55 insertions(+), 13 deletions(-) diff --git a/crud.py b/crud.py index bdaa751..e7f8ba2 100644 --- a/crud.py +++ b/crud.py @@ -42,6 +42,14 @@ def get_all_movies(db: Session): return db_movie.all() +def search_movie(db: Session, term: str): + db_movie = db.query(models.Movie).where( + sqlalchemy.or_(models.Movie.title == term, models.Movie.description == term) + ) + + return db_movie + + def get_movie_by_id(db: Session, id_: str = ""): try: id_ = int(id_) diff --git a/utests/test_sql_database.py b/utests/test_sql_database.py index dd78aaf..6be3903 100644 --- a/utests/test_sql_database.py +++ b/utests/test_sql_database.py @@ -122,34 +122,68 @@ def test_list_movies(): assert all(movies_by_title[name] for name in names) -def test_search_movies(): +def test_search_movies_exact(): clear_db() response = client.get("/movies/") # assert response.json() == [] radix = rand_name() - name = radix + "test_search" + title = radix + "test_search_title" - desc = radix + "test_desription" + desc = radix + "test_search_desription" with db_context() as db: - movie_name = crud.create_movie( - db, title=name, genres=["Animated", "Paropaganda"] + movie_title = crud.create_movie( + db, title=title, genres=["Animated", "Paropaganda"] ) + movie_desc = crud.create_movie( db, title=radix, description=desc, genres=["Animated", "Paropaganda"] ) + movie_desc_id = movie_desc.id - for term, target in zip((name, desc), (movie_name, movie_desc)): - with db_context() as db: - found = crud.search_movie(db, desc).all() - assert len(found) == 1 - assert target == found[0] + found = crud.search_movie(db, title).all() + assert len(found) == 1 - movies = client.get("movies").json()["movies"] - movies_by_title = {m["title"]: m for m in movies} - assert all(movies_by_title[name] for name in names) + assert found[0] == movie_title + + found = crud.search_movie(db, desc).all() + assert len(found) == 1 + + assert found[0] == movie_desc + + +def test_search_movies_token(): + clear_db() + response = client.get("/movies/") + # assert response.json() == [] + + radix = rand_name() + + title = radix + "test_search_title titletoken" + + desc = radix + "test_search_desription desctoken" + + with db_context() as db: + movie_title = crud.create_movie( + db, title=title, genres=["Animated", "Paropaganda"] + ) + + movie_desc = crud.create_movie( + db, title=radix, description=desc, genres=["Animated", "Paropaganda"] + ) + movie_desc_id = movie_desc.id + + found = crud.search_movie(db, "titletoken").all() + assert len(found) == 1 + + assert found[0] == movie_title + + found = crud.search_movie(db, "desctoken").all() + assert len(found) == 1 + + assert found[0] == movie_desc def test_sample_import_toy_story():