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'
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)
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
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
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
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'
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'
def test_replace_select_one(): s1 = {'survey': [{'type': 'select1 dogs'}]} replace_aliases(s1, in_place=True) assert s1['survey'][0]['type'] == 'select_one dogs'
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'
def test_list_name_renamed(): ex1 = replace_aliases({'choices': [{'list name': 'mylist'}]}) assert ex1['choices'][0].keys() == ['list_name']
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'