def test_raw_list_attribute(): model = FooBarsModel(**{'foos': [{'name': 'bar'}]}) assert len(model.foos) == 1 assert model.foos[0].name == 'bar' conditions = {'foobars': Attribute(FooBarsModel)} arguments = {'foobars': {'foos': [{'name': 'bar'}]}} valid_arguments(__name__, arguments, conditions)
class FooModel(Model): name = Attribute(str)
def test_invalid_list_attribute(): conditions = {'foobars': Attribute(FooBarsModel)} arguments = {'foobars': {'foos': [{'bad': 'bar'}]}} with pytest.raises(ArgumentKeyError): valid_arguments(__name__, arguments, conditions)
class BarModel(Model): name = Attribute(str)
class SampleModel(Model): name = Attribute(str)
class Person(Model): name = Attribute(str) phone = Attribute(int, optional=True)
class SampleModel(Model): name = Attribute(str) phone = Attribute(str, optional=True)
class ComplexTestModel(Model): test = Attribute(SampleModel)