Projet

Général

Profil

0001-misc-add-custom-handling-of-empty-string-when-settin.patch

Frédéric Péters, 22 janvier 2022 17:28

Télécharger (2,05 ko)

Voir les différences:

Subject: [PATCH] misc: add custom handling of empty string when setting a
 block value (#60965)

 tests/test_formdata.py | 26 ++++++++++++++++++++++++++
 wcs/fields.py          |  5 +++++
 2 files changed, 31 insertions(+)
tests/test_formdata.py
3338 3338
    assert variables.get('form_var_block') == '---'  # placeholder for empty value
3339 3339

  
3340 3340

  
3341
def test_block_set_value_to_empty_string(pub):
3342
    BlockDef.wipe()
3343
    FormDef.wipe()
3344

  
3345
    block = BlockDef()
3346
    block.name = 'foobar'
3347
    block.fields = [
3348
        fields.StringField(id='234', required=True, label='Test2', type='string', varname='bar'),
3349
    ]
3350
    block.store()
3351

  
3352
    formdef = FormDef()
3353
    formdef.name = 'testblock'
3354
    formdef.fields = [
3355
        fields.BlockField(id='1', label='test', type='block:foobar', max_items=3, varname='block'),
3356
    ]
3357
    formdef.store()
3358

  
3359
    formdata = formdef.data_class()()
3360
    formdata.data = {}
3361
    formdef.fields[0].set_value(formdata.data, '')
3362
    formdata.store()
3363
    assert formdata.data.get('1') is None
3364
    assert formdata.data.get('1_display') is None
3365

  
3366

  
3341 3367
def test_items_field_getlist(pub):
3342 3368
    NamedDataSource.wipe()
3343 3369
    data_source = NamedDataSource(name='foobar')
wcs/fields.py
3484 3484
                    cells[i] = self.block.get_display_value(subvalue)
3485 3485
        return cells
3486 3486

  
3487
    def set_value(self, data, value, **kwargs):
3488
        if value == '':
3489
            value = None
3490
        super().set_value(data, value, **kwargs)
3491

  
3487 3492
    def get_json_value(self, value, **kwargs):
3488 3493
        from wcs.formdata import FormData
3489 3494

  
3490
-