def test_clone_accepts_reverse(): f = Field(name='x', mapping=Mapping(int, str)) assert f('5') == 5 assert f.dump('5') == '5' g = f.clone(reverse=True) assert g(5) == '5' assert g.dump('5') == 5
def test_all_field_attributes(): str_field = Field( name='name', default='default', mapping=str, max_len=20, min_len=2, choices=['one', 'two', 'three'], required=False, regex=r'^[a-zA-Z]+$', source_names=['name', 'Name'], forbidden=False, nullable=True, ) assert str_field.__dict__ == str_field.clone().__dict__ int_field = Field( name='name', required=True, mapping=int, min=0, max=100, ) assert int_field.__dict__ == int_field.clone().__dict__