예제 #1
0
def test_custom_allowed_types():
    ex1 = replace_aliases(
        {'survey': [{
            'type': 'x_y_z_a_b_c'
        }]},
        allowed_types={'xyzabc': 'x_y_z_a_b_c'},
    )
    assert ex1['survey'][0]['type'] == 'xyzabc'

    ex2 = replace_aliases(
        {'survey': [{
            'type': 'xyzabc'
        }]},
        allowed_types={
            'xyzabc': ['x_y_z_a_b_c'],
        },
    )
    assert ex2['survey'][0]['type'] == 'xyzabc'

    ex3 = replace_aliases(
        {'survey': [{
            'type': 'xyzabc'
        }]},
        allowed_types={
            'xyzabc': True,
        },
    )
    assert ex3['survey'][0]['type'] == 'xyzabc'
예제 #2
0
def standardize_content_in_place(content):
    if 'settings' not in content:
        content['settings'] = {}
    if 'survey' not in content:
        content['survey'] = []
    expand_content(content, in_place=True)
    replace_aliases(content, in_place=True, allowed_types=ALLOWED_TYPES)
예제 #3
0
def _setting(settings_key, expected):
    _s = {}
    _s[settings_key] = 'value'
    _o = {'survey': [], 'settings': _s}
    replace_aliases(_o, in_place=True)
    assert len(_o['settings'].keys()) == 1
    assert _o['settings'].keys()[0] == expected
예제 #4
0
def _assert_column_converted_to(original, desired):
    row = {}
    row[original] = 'ABC'
    surv = {'survey': [row]}
    replace_aliases(surv, in_place=True)
    assert len(surv['survey'][0].keys()) == 1
    assert surv['survey'][0].keys()[0] == desired
예제 #5
0
def test_true_false_value_replaced():
    # only replaced on columns with TF_COLUMNS
    s1 = {'survey': [
        {'type': 'text', 'required': val} for val in [
            True, 'True', 'yes', 'true()', 'TRUE',
            False, 'NO', 'no', 'false()', 'FALSE'
        ]
    ]}
    replace_aliases(s1, in_place=True)
    tfs = [row['required'] for row in s1['survey']]
    assert tfs == [True] * 5 + [False] * 5
예제 #6
0
def test_custom_allowed_types():
    ex1 = replace_aliases({'survey': [{'type': 'x_y_z_a_b_c'}]}, allowed_types={
            'xyzabc': 'x_y_z_a_b_c'
        })
    assert ex1['survey'][0]['type'] == 'xyzabc'

    ex2 = replace_aliases({'survey': [{'type': 'xyzabc'}]}, allowed_types={
            'xyzabc': ['x_y_z_a_b_c'],
        })
    assert ex2['survey'][0]['type'] == 'xyzabc'

    ex3 = replace_aliases({'survey': [{'type': 'xyzabc'}]}, allowed_types={
            'xyzabc': True,
        })
    assert ex3['survey'][0]['type'] == 'xyzabc'
예제 #7
0
def test_choice_value_becomes_name__temp():
    'in the meantime, we ensure that "value" alias is changed to "name"'
    ex1 = replace_aliases(
        {'choices': [{
            'list_name': 'mylist',
            'value': 'myvalue'
        }]})
    c1 = ex1['choices'][0]
    assert 'name' in c1
    assert c1['name'] == 'myvalue'
예제 #8
0
def test_replace_select_one():
    s1 = {'survey': [{'type': 'select1 dogs'}]}
    replace_aliases(s1, in_place=True)
    assert s1['survey'][0]['type'] == 'select_one dogs'
예제 #9
0
def test_choice_value_becomes_name__temp():
    'in the meantime, we ensure that "value" alias is changed to "name"'
    ex1 = replace_aliases({'choices': [{'list_name': 'mylist', 'value': 'myvalue'}]})
    c1 = ex1['choices'][0]
    assert 'name' in c1
    assert c1['name'] == 'myvalue'
예제 #10
0
def test_list_name_renamed():
    ex1 = replace_aliases({'choices': [{'list name': 'mylist'}]})
    assert ex1['choices'][0].keys() == ['list_name']
예제 #11
0
def test_replace_select_multiple_from_file():
    s1 = {'survey': [{'type': 'select multiple from file dogs.csv'}]}
    replace_aliases(s1, in_place=True)
    assert s1['survey'][0]['type'] == 'select_multiple_from_file dogs.csv'