From 4e65e447a78d7b2121cf3b8f6faf1d0aeceec82f Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Sun, 27 Aug 2023 23:03:57 +0200 Subject: [PATCH] Migrate to unittests : ":%s/\(def test_.*(\)/\0self/c" --- utests/test_sql_database.py | 267 ++++++++++++++++++------------------ 1 file changed, 133 insertions(+), 134 deletions(-) diff --git a/utests/test_sql_database.py b/utests/test_sql_database.py index e15cf7a..58d455b 100644 --- a/utests/test_sql_database.py +++ b/utests/test_sql_database.py @@ -9,6 +9,9 @@ from dev import app, get_db from models import Movie import pytest +import unittest + + import crud import contextlib @@ -66,186 +69,182 @@ def rand_name(): return name -def test_create_moviem_models(): - name = rand_name() - movie = Movie(title=name) - assert movie.title == name +class CrudModelsTestCase(unittest.TestCase): + def test_create_moviem_models(self): + name = rand_name() + movie = Movie(title=name) + assert movie.title == name + def test_sample_crud(self): + name = rand_name() -def test_sample_crud(): - name = rand_name() - - with db_context() as db: - movie = crud.create_movie(db, title=name, genres=["Yes", "No"]) - assert movie.title == name - - -def test_genre_custom_type_serialize_value(): - name = rand_name() - - genres = ["Yes", "No"] - with db_context() as db: - movie = crud.create_movie(db, title=name, genres=genres) - assert movie.genres == genres - - -def test_genre_custom_type_serialize_type(): - name = rand_name() - genres = ["Yes", "No"] - csv_genres = ",".join(genres) - - try: with db_context() as db: - movie = crud.create_movie(db, title=name, genres=csv_genres) - except (ValueError, exc.StatementError) as error: - assert "tuple" in str(error) - else: - raise RuntimeError("Exception should have been raised") + movie = crud.create_movie(db, title=name, genres=["Yes", "No"]) + assert movie.title == name + def test_genre_custom_type_serialize_value(self): + name = rand_name() -def test_list_movies(): - clear_db() - response = client.get("/movies/") - # assert response.json() == [] + genres = ["Yes", "No"] + with db_context() as db: + movie = crud.create_movie(db, title=name, genres=genres) + assert movie.genres == genres - N = 10 - names = [] - with db_context() as db: - for _ in range(N): - name = rand_name() + def test_genre_custom_type_serialize_type(self): + name = rand_name() + genres = ["Yes", "No"] + csv_genres = ",".join(genres) - names.append(name) - crud.create_movie(db, title=name, genres=["Animated", "Paropaganda"]) + try: + with db_context() as db: + movie = crud.create_movie(db, title=name, genres=csv_genres) + except (ValueError, exc.StatementError) as error: + assert "tuple" in str(error) + else: + raise RuntimeError("Exception should have been raised") - 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) + def test_list_movies(self): + clear_db() + response = client.get("/movies/") + # assert response.json() == [] + N = 10 + names = [] + with db_context() as db: + for _ in range(N): + name = rand_name() -def test_search_movies_exact(): - clear_db() - response = client.get("/movies/") - # assert response.json() == [] + names.append(name) + crud.create_movie(db, title=name, genres=["Animated", "Paropaganda"]) - radix = rand_name() + 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) - title = radix + "test_search_title" + def test_search_movies_exact(self): + clear_db() + response = client.get("/movies/") + # assert response.json() == [] - desc = radix + "test_search_desription" + radix = rand_name() - with db_context() as db: - movie_title = crud.create_movie( - db, title=title, genres=["Animated", "Paropaganda"] - ) + title = radix + "test_search_title" - movie_desc = crud.create_movie( - db, title=radix, description=desc, genres=["Animated", "Paropaganda"] - ) - movie_desc_id = movie_desc.id + desc = radix + "test_search_desription" - found = crud.search_movie(db, title).all() - assert len(found) == 1 + with db_context() as db: + movie_title = crud.create_movie( + db, title=title, genres=["Animated", "Paropaganda"] + ) - assert found[0] == movie_title + movie_desc = crud.create_movie( + db, title=radix, description=desc, genres=["Animated", "Paropaganda"] + ) + movie_desc_id = movie_desc.id - found = crud.search_movie(db, desc).all() - assert len(found) == 1 + found = crud.search_movie(db, title).all() + assert len(found) == 1 - assert found[0] == movie_desc + assert found[0] == movie_title + found = crud.search_movie(db, desc).all() + assert len(found) == 1 -def test_search_movies_token(): - clear_db() - response = client.get("/movies/") - # assert response.json() == [] + assert found[0] == movie_desc - radix = rand_name() + def test_search_movies_token(self): + clear_db() + response = client.get("/movies/") + # assert response.json() == [] - title = radix + "test_search_title titletoken" + radix = rand_name() - desc = radix + "test_search_desription desctoken" + title = radix + "test_search_title titletoken" - with db_context() as db: - movie_title = crud.create_movie( - db, title=title, genres=["Animated", "Paropaganda"] - ) + desc = radix + "test_search_desription desctoken" - movie_desc = crud.create_movie( - db, title=radix, description=desc, genres=["Animated", "Paropaganda"] - ) - movie_desc_id = movie_desc.id + with db_context() as db: + movie_title = crud.create_movie( + db, title=title, genres=["Animated", "Paropaganda"] + ) - found = crud.search_movie(db, "titletoken").all() - assert len(found) == 1 + movie_desc = crud.create_movie( + db, title=radix, description=desc, genres=["Animated", "Paropaganda"] + ) + movie_desc_id = movie_desc.id - assert found[0] == movie_title + found = crud.search_movie(db, "titletoken").all() + assert len(found) == 1 - found = crud.search_movie(db, "desctoken").all() - assert len(found) == 1 + assert found[0] == movie_title - assert found[0] == movie_desc + found = crud.search_movie(db, "desctoken").all() + assert len(found) == 1 + assert found[0] == movie_desc -def test_search_movies_token_period(): - return - clear_db() - response = client.get("/movies/") - # assert response.json() == [] + def test_search_movies_token_period(self): + return + clear_db() + response = client.get("/movies/") + # assert response.json() == [] - radix = rand_name() + radix = rand_name() - title = radix + "test_search_title title3tokenperiod." + title = radix + "test_search_title title3tokenperiod." - with db_context() as db: - movie_title = crud.create_movie( - db, title=title, genres=["Animated", "Paropaganda"] - ) + with db_context() as db: + movie_title = crud.create_movie( + db, title=title, genres=["Animated", "Paropaganda"] + ) - found = crud.search_movie(db, "title3tokenpreriod").all() - assert len(found) == 1 - assert found[0] == movie_title + found = crud.search_movie(db, "title3tokenpreriod").all() + assert len(found) == 1 + assert found[0] == movie_title + def test_sample_import_toy_story(self): + clear_db() -def test_sample_import_toy_story(): - clear_db() + movie_title = "Toy Story" + file_path = "input_data/movies_metadata_short.csv" - movie_title = "Toy Story" - file_path = "input_data/movies_metadata_short.csv" + movies = client.get("movies").json()["movies"] + movies_by_title = {m["title"]: m for m in movies} - movies = client.get("movies").json()["movies"] - movies_by_title = {m["title"]: m for m in movies} + assert ( + movie_title not in movies_by_title + ), "The movie should not be pre existing" - assert movie_title not in movies_by_title, "The movie should not be pre existing" + with db_context() as db: + fill_db(db, file_path) - with db_context() as db: - fill_db(db, file_path) + movies = client.get("movies").json()["movies"] + movies_by_title = {m["title"]: m for m in movies} - movies = client.get("movies").json()["movies"] - movies_by_title = {m["title"]: m for m in movies} + toy_story = movies_by_title["Toy Story"] - toy_story = movies_by_title["Toy Story"] + assert "Andy" in toy_story["description"] - assert "Andy" in toy_story["description"] + def test_title_is_taken_form_original_title_is_missing(self): + """ + t0113002,en,Midnight Man + 19763 Midnight Man (among others) has an unescaped \n that makes import fail + in the csv the movie 'Avalanche Sharks' @ line 35587 + has no tiltle, we fix this here to get quicker but we need a better solution + """ + movie_title = "Midnight Man" -def test_title_is_taken_form_original_title_is_missing(): - """ - t0113002,en,Midnight Man - 19763 Midnight Man (among others) has an unescaped \n that makes import fail + file_path = "utests/movie_error_missing_title.csv" + file_path = "input_data/movies_metadata.csv" + movies = client.get("movies").json()["movies"] + movies_by_title = {m["title"]: m for m in movies} - in the csv the movie 'Avalanche Sharks' @ line 35587 - has no tiltle, we fix this here to get quicker but we need a better solution - """ - movie_title = "Midnight Man" + assert ( + movie_title not in movies_by_title + ), "The movie should not be pre existing" + with db_context() as db: + fill_db(db, file_path, sample_rate=1) - file_path = "utests/movie_error_missing_title.csv" - file_path = "input_data/movies_metadata.csv" - movies = client.get("movies").json()["movies"] - movies_by_title = {m["title"]: m for m in movies} - - assert movie_title not in movies_by_title, "The movie should not be pre existing" - with db_context() as db: - fill_db(db, file_path, sample_rate=1) - - movies = client.get("movies").json()["movies"] - movies_by_title = {m["title"]: m for m in movies} + movies = client.get("movies").json()["movies"] + movies_by_title = {m["title"]: m for m in movies}