155 |
155 |
assert field.get_options() == [('1', 'foo', '1'), ('2', 'bar', '2')]
|
156 |
156 |
assert field.get_options() == [('1', 'foo', '1'), ('2', 'bar', '2')] # twice for cached behaviour
|
157 |
157 |
|
|
158 |
# if labels are available, display using <ul>
|
|
159 |
field = fields.ItemsField()
|
|
160 |
view_value = field.get_view_value('a, b', value_id=['1', '2'], labels=['a', 'b'])
|
|
161 |
elems = BeautifulSoup(str(view_value)).find('ul').find_all('li')
|
|
162 |
assert len(elems) == 2
|
|
163 |
assert elems[0].text == 'a'
|
|
164 |
assert elems[1].text == 'b'
|
|
165 |
|
|
166 |
|
|
167 |
def test_items_get_value_info():
|
|
168 |
# no data source : labels are available
|
|
169 |
field = fields.ItemsField(id='1', items=['a', 'b', 'c'])
|
|
170 |
assert field.get_value_info({'1': ['un', 'deux'], '1_display': 'un, deux'}) == (
|
|
171 |
'un, deux',
|
|
172 |
{'value_id': ['un', 'deux'], 'labels': ['un', 'deux']},
|
|
173 |
)
|
|
174 |
|
|
175 |
# data source with structured : labels are available
|
|
176 |
field = fields.ItemsField(id='1')
|
|
177 |
field.data_source = {'type': 'formula', 'value': '''[('1', 'un'), ('2', 'deux')]'''}
|
|
178 |
assert field.get_value_info(
|
|
179 |
{
|
|
180 |
'1': ['un', 'deux'],
|
|
181 |
'1_display': 'un, deux',
|
|
182 |
'1_structured': [{'id': '1', 'text': 'un'}, {'id': '2', 'text': 'deux'}],
|
|
183 |
}
|
|
184 |
) == (
|
|
185 |
'un, deux',
|
|
186 |
{'value_id': ['un', 'deux'], 'labels': ['un', 'deux']},
|
|
187 |
)
|
|
188 |
|
|
189 |
# data source with no strucured : no labels
|
|
190 |
field = fields.ItemsField(id='1')
|
|
191 |
field.data_source = {'type': 'formula', 'value': '''[('1', 'un'), ('2', 'deux')]'''}
|
|
192 |
assert field.get_value_info({'1': ['un', 'deux'], '1_display': 'un, deux'}) == (
|
|
193 |
'un, deux',
|
|
194 |
{'value_id': ['un', 'deux'], 'labels': []},
|
|
195 |
)
|
|
196 |
|
158 |
197 |
|
159 |
198 |
def test_password():
|
160 |
199 |
assert fields.PasswordField().get_view_value('xxx') == '●' * 8
|