def test_complete_selection(self): "Test complete selection" field = { 'type': 'selection', 'selection': [ ('male', 'Male'), ('female', 'Female'), ], } for value, result in ( ('m', ['male']), ('test', []), ('', ['male', 'female']), (None, ['male', 'female']), (['male', 'f'], [['male', 'female']]), (['male', None], [['male', 'male'], ['male', 'female']]), ): self.assertEqual( list(complete_value(field, value)), result, msg="complete_value(%r, %r)" % (field, value)) field_with_empty = field.copy() field_with_empty['selection'] = (field_with_empty['selection'] + [('', '')]) for value, result in ( ('m', ['male']), ('test', []), ('', ['male', 'female', '']), (None, ['male', 'female', '']), (['male', 'f'], [['male', 'female']]), ): self.assertEqual( list(complete_value(field_with_empty, value)), result, msg="complete_value(%r, %r)" % (field_with_empty, value))
def test_complete_boolean(self): "Test complete boolean" field = { 'type': 'boolean', } for value, result in [ (None, [True, False]), (True, [False]), (False, [True]), ]: self.assertEqual( list(complete_value(field, value)), result, msg="complete_value(%r, %r)" % (field, value))
def test_complete_reference(self): "Test complete reference" field = { 'type': 'reference', 'selection': [ ('spam', 'Spam'), ('ham', 'Ham'), ('', ''), ], } for value, result in ( ('s', ['%spam%']), ('test', []), ('', ['%spam%', '%ham%', '%']), (None, ['%spam%', '%ham%', '%']), (['spam', 'h'], [['spam', 'ham']]), ): self.assertEqual( list(complete_value(field, value)), result, msg="complete_value(%r, %r)" % (field, value))