def test_binary_field(conn): class Binary(Document): binary = BinaryField() BinaryForm = model_form(Binary) form = BinaryForm(MultiDict({'binary': '1'})) assert form.validate()
def test_model_select_field_using_model_form(conn): class Dog(Document): pass class DogOwner(Document): dog = ReferenceField(Dog) DogOwnerForm = model_form(DogOwner) dog = Dog() dog.save() form = DogOwnerForm(dog=dog) assert form.validate() assert wtforms.widgets.Select == type(form.dog.widget) assert not form.dog.widget.multiple
def test_modelselectfield_multiple_selected_elements_must_be_retained(conn): class Dog(Document): name = StringField() def __unicode__(self): return self.name class DogOwner(Document): dogs = ListField(ReferenceField(Dog)) DogOwnerForm = model_form(DogOwner) fido = Dog(name="fido").save() Dog(name="rex").save() owner = DogOwner(dogs=[fido]) form = DogOwnerForm(obj=owner) html = form.dogs() m = re.search("<option selected .+?>(.*?)</option>", html) assert m is not None assert "fido" == m.group(1)
def test_model_select_multiple_field(conn): class Dog(Document): name = StringField() class DogOwner(Document): dogs = ListField(ReferenceField(Dog)) DogOwnerForm = model_form(DogOwner) dogs = [Dog(name="fido"), Dog(name="rex")] for dog in dogs: dog.save() form = DogOwnerForm(dogs=dogs) assert form.validate() assert wtforms.widgets.Select == type(form.dogs.widget) assert form.dogs.widget.multiple # Validate if both dogs are selected choices = list(form.dogs) assert len(choices) == 2 assert choices[0].checked assert choices[1].checked