def test_episode_schema_dump(episode_schema: EpisodeSchema): schema = episode_schema dump = schema.dump( Episode(title=["title"], content_rating="content_rating", aired=date(2018, 1, 1), summary="summary", rating=1, writers=[Person(name="person")], directors=[Person(name="person")])) assert dump == { "title": ["title"], "content_rating": "content_rating", "aired": "2018-01-01", "summary": "summary", "rating": 1, "writers": ["person"], "directors": ["person"] } dump = schema.dump(Episode()) assert dump == { "title": [], "content_rating": None, "aired": None, "summary": None, "rating": None, "writers": [], "directors": [] }
def test_person_schema_load(person_schema: PersonSchema): schema = person_schema load = schema.load({"name": "name", "photo": "photo"}) assert load == Person(name="name", photo="photo") load = schema.load({"name": None, "photo": None}) assert load == Person() load = schema.load({}) assert load == Person()
def test_person_strict_schema_load(person_strict_schema: PersonStrictSchema): schema = person_strict_schema load = schema.load({"name": "name", "photo": "photo"}) assert load == Person(name="name", photo="photo") load = schema.load({"name": "name"}) assert load == Person(name="name") with pytest.raises(ValidationError): schema.load({"name": None, "photo": None}) with pytest.raises(ValidationError): schema.load({})
def test_movie_schema_load(movie_schema: MovieSchema): schema = movie_schema load = schema.load({ "title": "title", "sort_title": "sort_title", "original_title": "original_title", "content_rating": "content_rating", "tagline": ["tagline"], "studio": ["studio"], "aired": "2018-01-01", "summary": "summary", "rating": 1, "genres": ["genres"], "collections": ["collections"], "actors": [{ "name": "name", "role": "role" }], "writers": ["person"], "directors": ["person"] }) assert load == Movie(title="title", sort_title="sort_title", original_title="original_title", content_rating="content_rating", tagline=["tagline"], studio=["studio"], aired=date(2018, 1, 1), summary="summary", rating=1, genres=["genres"], collections=["collections"], actors=[Actor(name="name", role="role")], writers=[Person(name="person")], directors=[Person(name="person")]) load = schema.load({ "title": "", "sort_title": "", "original_title": None, "content_rating": "", "tagline": [""], "studio": [None], "aired": None, "summary": None, "rating": None, "genres": [], "collections": None, "actors": [], "writers": [""], "directors": None }) assert load == Movie() load = schema.load({}) assert load == Movie()
def test_movie_strict_schema_dump(movie_strict_schema: MovieStrictSchema): schema = movie_strict_schema dump = schema.dump( Movie(title="title", sort_title="sort_title", original_title="original_title", content_rating="content_rating", tagline=["tagline"], studio=["studio"], aired=date(2018, 1, 1), summary="summary", rating=1, genres=["genres"], collections=["collections"], actors=[Actor(name="name", role="role")], writers=[Person(name="person")], directors=[Person(name="person")])) assert dump == { "title": "title", "sort_title": "sort_title", "original_title": "original_title", "content_rating": "content_rating", "tagline": ["tagline"], "studio": ["studio"], "aired": "2018-01-01", "summary": "summary", "rating": 1, "genres": ["genres"], "collections": ["collections"], "actors": [{ "name": "name", "role": "role", "photo": None }], "writers": ["person"], "directors": ["person"] } dump = schema.dump(Movie()) assert dump == { "title": None, "sort_title": None, "original_title": None, "content_rating": None, "tagline": [], "studio": [], "aired": None, "summary": None, "rating": None, "genres": [], "collections": [], "actors": [], "writers": [], "directors": [] }
def test_episode_strict_schema_load( episode_strict_schema: EpisodeStrictSchema): schema = episode_strict_schema load = schema.load({ "title": ["title"], "content_rating": "content_rating", "aired": "2018-01-01", "summary": "summary", "rating": 1, "writers": ["person"], "directors": ["person"] }) assert load == Episode(title=["title"], content_rating="content_rating", aired=date(2018, 1, 1), summary="summary", rating=1, writers=[Person(name="person")], directors=[Person(name="person")]) load = schema.load({ "title": ["title"], "content_rating": "content_rating", "aired": "2018-01-01", "summary": "summary", "rating": 1, "writers": [None], "directors": [""] }) assert load == Episode(title=["title"], content_rating="content_rating", aired=date(2018, 1, 1), summary="summary", rating=1, writers=[], directors=[]) with pytest.raises(ValidationError): schema.load({ "title": None, "content_rating": None, "aired": None, "summary": None, "rating": None, "writers": None, "directors": None }) with pytest.raises(ValidationError): schema.load({})
def test_person_strict_schema_dump(person_strict_schema: PersonStrictSchema): schema = person_strict_schema dump = schema.dump(Person(name="name", photo="photo")) assert dump == {"name": "name", "photo": "photo"} dump = schema.dump(Person()) assert dump == {"name": None, "photo": None}