示例#1
0
 def test_parse_menu_options(self):
     param_spec = ParamSpec.from_dict(
         dict(type='menu',
              id_name='id',
              name='name',
              options=[
                  {
                      'value': True,
                      'label': 't'
                  },
                  'separator',
                  {
                      'value': False,
                      'label': 'f'
                  },
              ]))
     self.assertEqual(
         param_spec,
         ParamSpec.Menu(
             id_name='id',
             name='name',
             default=True,  # Menu value can't be null. TODO reconsider?
             options=[
                 ParamSpec.Menu.Option.Value('t', True),
                 ParamSpec.Menu.Option.Separator,
                 ParamSpec.Menu.Option.Value('f', False)
             ]))
示例#2
0
 def test_checkbox_default_false(self):
     param_spec = ParamSpec.from_dict(dict(
         id_name='b',
         type='checkbox',
         name='hi'
     ))
     self.assertFalse(param_spec.default)
示例#3
0
    def test_list_dtype(self):
        # Check that ParamSpec's with List type produce correct nested DTypes
        param_spec = ParamSpec.from_dict(
            dict(id_name='p',
                 type='list',
                 child_parameters=[
                     {
                         'id_name': 'intparam',
                         'type': 'integer',
                         'name': 'my number'
                     },
                     {
                         'id_name': 'colparam',
                         'type': 'column',
                         'name': 'my column'
                     },
                 ]))
        self.assertEqual(
            param_spec,
            ParamSpec.List(id_name='p',
                           child_parameters=[
                               ParamSpec.Integer(id_name='intparam',
                                                 name='my number'),
                               ParamSpec.Column(id_name='colparam',
                                                name='my column'),
                           ]))
        dtype = param_spec.dtype
        expected_dtype = DT.List(
            DT.Dict({
                'intparam': DT.Integer(),
                'colparam': DT.Column(),
            }))

        # effectively do a deep compare with repr
        self.assertEqual(repr(dtype), repr(expected_dtype))
示例#4
0
 def test_to_dict_menu_separator(self):
     param_spec = ParamSpec.Menu(
         id_name='m',
         default='v',
         options=[
             ParamSpec.Menu.Option.Value(value='v', label='l'),
             ParamSpec.Menu.Option.Separator,
             ParamSpec.Menu.Option.Value(value='v2', label='l2'),
         ],
     )
     param_dict = param_spec.to_dict()
     self.assertEqual(param_dict, {
         'type': 'menu',
         'id_name': 'm',
         'default': 'v',
         'placeholder': '',
         'name': '',
         'visible_if': None,
         'options': [
             {'value': 'v', 'label': 'l'},
             'separator',
             {'value': 'v2', 'label': 'l2'},
         ],
     })
     # Just to make sure our unit-test is sane: verify from_dict(to_json)
     # returns the original.
     self.assertEqual(ParamSpec.from_dict(param_dict), param_spec)
示例#5
0
 def test_multicolumn_column_types(self):
     param_spec = ParamSpec.from_dict(dict(
         id_name='c',
         type='multicolumn',
         column_types=['text', 'number'],
     ))
     self.assertEqual(param_spec.column_types, ['text', 'number'])
     self.assertEqual(param_spec.dtype.column_types,
                      frozenset(['text', 'number']))
示例#6
0
 def test_to_dict(self):
     param_spec = ParamSpec.List(id_name='l',
                                 child_parameters=[
                                     ParamSpec.String(id_name='s',
                                                      default='foo'),
                                     ParamSpec.Column(id_name='c',
                                                      visible_if=dict(
                                                          id_name='s',
                                                          value='iddqd')),
                                 ])
     param_dict = param_spec.to_dict()
     self.assertEqual(
         param_dict, {
             'type':
             'list',
             'id_name':
             'l',
             'name':
             '',
             'visible_if':
             None,
             'child_parameters': [
                 {
                     'type': 'string',
                     'id_name': 's',
                     'name': '',
                     'default': 'foo',
                     'multiline': False,
                     'placeholder': '',
                     'visible_if': None,
                 },
                 {
                     'type': 'column',
                     'id_name': 'c',
                     'placeholder': '',
                     'name': '',
                     'tab_parameter': None,
                     'column_types': None,
                     'visible_if': {
                         'id_name': 's',
                         'value': 'iddqd',
                     },
                 },
             ]
         })
     # Just to make sure our unit-test is sane: verify from_dict(to_json)
     # returns the original.
     self.assertEqual(ParamSpec.from_dict(param_dict), param_spec)
示例#7
0
 def test_bool_radio_default_false(self):
     # Handle odd edge case seen on production:
     #
     # If enum options are booleans and the first is True, and the _default_
     # is False, don't overwrite the default.
     param_spec = ParamSpec.from_dict(dict(
         id_name='r',
         type='radio',
         options=[
             {'value': True, 'label': 'First'},
             {'value': False, 'label': 'Second'},
         ],
         default=False  # a valid option
     ))
     dtype = param_spec.dtype
     self.assertEqual(dtype.default, False)
示例#8
0
 def test_parse_radio_options(self):
     param_spec = ParamSpec.from_dict(dict(
         type='radio',
         id_name='id',
         name='name',
         options=[
             {'value': True, 'label': 't'},
             {'value': False, 'label': 'f'},
         ]
     ))
     self.assertEqual(param_spec, ParamSpec.Radio(
         id_name='id',
         name='name',
         options=[ParamSpec.Radio.Option('t', True),
                  ParamSpec.Radio.Option('f', False)],
         default=True
     ))