예제 #1
0
def test__upload__upload_StringField(client, faker, required, max_length, value, should_be_loaded):
    user = login(client, faker)
    study = faker.get_test_study(collaborator=user)

    field = faker.get_test_field(field_group=study.field_group, field_type=FieldType.get_string(), max_length=max_length, required=required)

    _do_upload_field(client, faker, study, should_be_loaded, field, value)
예제 #2
0
def test__upload__form_dynamic_multiple(client, faker):
    user = login(client, faker)

    study = faker.get_test_study(collaborator=user)

    field1 = faker.get_test_field(
        field_type=FieldType.get_textarea(),
        field_group=study.field_group,
        order=1,
    )
    field2 = faker.get_test_field(
        field_type=FieldType.get_string(),
        field_group=study.field_group,
        order=2,
    )

    resp = _get(client, _url(study_id=study.id), user, study)

    f1 = resp.soup.find(id=field1.field_name)

    assert f1
    assert f1.name == "textarea"

    f2 = f1.find_next(id=field2.field_name)

    assert f2
    assert f2.name == "input"
    assert f2["type"] == "text"
예제 #3
0
def test__dynamic_form__rendering__no_error(client, faker):
    user = login(client, faker)

    fg = faker.get_test_field_group(name='Hello')
    ft = FieldType.get_string()
    f = faker.get_test_field(field_group=fg, field_type=ft)

    resp = client.post(url_for('form', field_group_id=fg.id))
    assert__redirect(resp, 'ui.index')
예제 #4
0
def test__dynamic_form__rendering__error(client, faker):
    user = login(client, faker)

    fg = faker.get_test_field_group(name='Hello')
    ft = FieldType.get_string()
    f = faker.get_test_field(field_group=fg, field_type=ft, required=True)

    resp = client.post(url_for('form', field_group_id=fg.id))
    assert resp.status_code == status.HTTP_200_OK
    assert__error__required_field(resp.soup, f.field_name)
def test__add_field__maxlength_set(client, faker):
    field = faker.get_test_field(field_type=FieldType.get_string())
    field.max_length = 30

    field_actual = build_form(field)

    length_validators = [
        v for v in field_actual.validators if isinstance(v, Length)
    ]
    assert len(length_validators) == 1
    assert length_validators[0].max == 30
예제 #6
0
    def __init__(self, study):
        super().__init__()

        study_number = Field(
            field_type=FieldType.get_string(),
            order=0,
            field_name='study_number',
            label=study.get_study_number_name(),
            required=not study.allow_empty_study_number,
            max_length=50,
            validation_regex=study.study_number_format,
        )

        self.add_field(study_number)

        self.add_field_group(study.field_group)
def test__add_field__default_not_set(client, faker):
    field = faker.get_test_field(field_type=FieldType.get_string())

    field_actual = build_form(field)

    assert field_actual.default is None
def test__add_field__maxlength_not_set(client, faker):
    field = faker.get_test_field(field_type=FieldType.get_string())

    field_actual = build_form(field)

    assert all(False for v in field_actual.validators if isinstance(v, Length))
예제 #9
0
def test__field__format_value__string(client, faker):
    ft = FieldType.get_string()
    f = faker.get_test_field(field_type=ft)

    assert f.format_value('Hello') == 'Hello'