<s> from flask_resty import RelatedItem <EOL> import pytest <EOL> from marshmallow import fields , Schema <EOL> @ pytest . fixture <EOL> def related_schema_class ( ) : <EOL> class RelatedSchema ( Schema ) : <EOL> id = fields . Integer ( as_string = True ) <EOL> name = fields . String ( required = True ) <EOL> return RelatedSchema <EOL> @ pytest . fixture <EOL> def single_schema ( related_schema_class ) : <EOL> class SingleSchema ( Schema ) : <EOL> child = RelatedItem ( related_schema_class , required = True ) <EOL> return SingleSchema ( ) <EOL> @ pytest . fixture <EOL> def many_schema ( related_schema_class ) : <EOL> class ManySchema ( Schema ) : <EOL> children = RelatedItem ( related_schema_class , many = True , required = True ) <EOL> return ManySchema ( ) <EOL> @ pytest . fixture <EOL> def error_messages ( ) : <EOL> return RelatedItem ( None ) . error_messages <EOL> def test_dump_single ( single_schema ) : <EOL> data , errors = single_schema . dump ( { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : <NUM_LIT:1> , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> } ) <EOL> assert data == { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : '<STR_LIT:1>' , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> } <EOL> assert not errors <EOL> def test_dump_many ( many_schema ) : <EOL> data , errors = many_schema . dump ( { <EOL> '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:id>' : <NUM_LIT:1> , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : <NUM_LIT:2> , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> ] , <EOL> } ) <EOL> assert data == { <EOL> '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT:1>' , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT:2>' , <EOL> '<STR_LIT:name>' : "<STR_LIT>" , <EOL> } , <EOL> ] , <EOL> } <EOL> assert not errors <EOL> def test_load_single ( single_schema ) : <EOL> data , errors = single_schema . load ( { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : '<STR_LIT:1>' , <EOL> } , <EOL> } ) <EOL> assert data == { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : <NUM_LIT:1> , <EOL> } , <EOL> } <EOL> assert not errors <EOL> def test_load_many ( many_schema ) : <EOL> data , errors = many_schema . load ( { <EOL> '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT:1>' , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : '<STR_LIT:2>' , <EOL> } , <EOL> ] , <EOL> } ) <EOL> assert data == { <EOL> '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:id>' : <NUM_LIT:1> , <EOL> } , <EOL> { <EOL> '<STR_LIT:id>' : <NUM_LIT:2> , <EOL> } , <EOL> ] , <EOL> } <EOL> assert not errors <EOL> def test_error_load_single_missing ( single_schema , error_messages ) : <EOL> data , errors = single_schema . load ( { } ) <EOL> assert not data <EOL> assert errors == { <EOL> '<STR_LIT>' : [ error_messages [ '<STR_LIT>' ] ] , <EOL> } <EOL> def test_error_load_single_field_type ( single_schema ) : <EOL> data , errors = single_schema . load ( { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : '<STR_LIT:foo>' , <EOL> } , <EOL> } ) <EOL> assert not data <EOL> assert errors == { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : [ fields . Integer ( ) . error_messages [ '<STR_LIT>' ] ] , <EOL> } , <EOL> } <EOL> def test_error_load_many_missing ( many_schema , error_messages ) : <EOL> data , errors = many_schema . load ( { } ) <EOL> assert not data <EOL> assert errors == { <EOL> '<STR_LIT>' : [ error_messages [ '<STR_LIT>' ] ] , <EOL> } <EOL> def test_error_load_many_type ( many_schema , error_messages ) : <EOL> data , errors = many_schema . load ( { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : <NUM_LIT:1> , <EOL> } , <EOL> } ) <EOL> assert not data <EOL> assert errors == { <EOL> '<STR_LIT>' : [ error_messages [ '<STR_LIT:type>' ] ] , <EOL> } </s>
