示例#1
0
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": []
    }
示例#2
0
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()
示例#3
0
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({})
示例#4
0
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()
示例#5
0
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": []
    }
示例#6
0
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({})
示例#7
0
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}