Migrate to unittests : ":%s/\(def test_.*(\)/\0self/c"
This commit is contained in:
parent
6a931228c3
commit
9911d0f973
|
@ -3,4 +3,4 @@ Nogo:
|
|||
|
||||
|
||||
Caveats:
|
||||
Issue in database / session management for tests, out of scope to unserstand no
|
||||
Issue in database / session management for tests, out of scope to unserstand now
|
||||
|
|
3
Makefile
3
Makefile
|
@ -16,7 +16,7 @@ run_dev:
|
|||
git ls-files | entr -r pipenv run python dev.py
|
||||
|
||||
tdd:
|
||||
git ls-files | entr make test opt='$(opt)'
|
||||
git ls-files | entr make test opt='$(opt)'
|
||||
git ls-files | entr make functionnal_tests
|
||||
|
||||
refactor_tdd:
|
||||
|
@ -29,6 +29,7 @@ watch_db:
|
|||
|
||||
test:
|
||||
pipenv run pytest $(coverage_opt) $(opt) utests
|
||||
make functional_tests
|
||||
|
||||
functionnal_tests:
|
||||
pipenv run python -m pytest functionnal_test.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}
|
||||
|
|
Loading…
Reference in New Issue