cubicweb/web/test/unittest_uicfg.py
branch3.25
changeset 12211 1a5911825ef5
parent 12210 3fa6c9ef2f51
child 12213 1d7e4f98f902
equal deleted inserted replaced
12210:3fa6c9ef2f51 12211:1a5911825ef5
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    18 
    18 
    19 import copy
    19 import copy
    20 import warnings
    20 import warnings
    21 
    21 
    22 from logilab.common.testlib import tag
       
    23 from cubicweb.devtools.testlib import CubicWebTC
    22 from cubicweb.devtools.testlib import CubicWebTC
    24 from cubicweb.web import uihelper, formwidgets as fwdgs
    23 from cubicweb.web import uihelper, formwidgets as fwdgs
    25 from cubicweb.web.views import uicfg
    24 from cubicweb.web.views import uicfg
    26 
    25 
    27 abaa = uicfg.actionbox_appearsin_addmenu
    26 abaa = uicfg.actionbox_appearsin_addmenu
    61     def tearDown(self):
    60     def tearDown(self):
    62         super(DefinitionOrderTC, self).tearDown()
    61         super(DefinitionOrderTC, self).tearDown()
    63         for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs):
    62         for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs):
    64             rtag._tagdefs = rtag._old_tagdefs
    63             rtag._tagdefs = rtag._old_tagdefs
    65 
    64 
    66     @tag('uicfg')
       
    67     def test_definition_order_hidden(self):
    65     def test_definition_order_hidden(self):
    68         result = uicfg.autoform_section.get('CWUser', 'login', 'String', 'subject')
    66         result = uicfg.autoform_section.get('CWUser', 'login', 'String', 'subject')
    69         expected = set(['main_inlined', 'muledit_attributes', 'inlined_attributes'])
    67         expected = set(['main_inlined', 'muledit_attributes', 'inlined_attributes'])
    70         self.assertSetEqual(result, expected)
    68         self.assertSetEqual(result, expected)
    71 
    69 
    72     @tag('uihelper', 'order', 'func')
       
    73     def test_uihelper_set_fields_order(self):
    70     def test_uihelper_set_fields_order(self):
    74         afk_get = uicfg.autoform_field_kwargs.get
    71         afk_get = uicfg.autoform_field_kwargs.get
    75         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
    72         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
    76         with warnings.catch_warnings(record=True) as w:
    73         with warnings.catch_warnings(record=True) as w:
    77             uihelper.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
    74             uihelper.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
    78             self.assertEqual(len(w), 1)
    75             self.assertEqual(len(w), 1)
    79             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
    76             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
    80         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
    77         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
    81 
    78 
    82     @tag('uicfg', 'order', 'func')
       
    83     def test_uicfg_primaryview_set_fields_order(self):
    79     def test_uicfg_primaryview_set_fields_order(self):
    84         pvdc = uicfg.primaryview_display_ctrl
    80         pvdc = uicfg.primaryview_display_ctrl
    85         pvdc.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
    81         pvdc.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
    86         self.assertEqual(pvdc.get('CWUser', 'login', 'String', 'subject'), {'order': 0})
    82         self.assertEqual(pvdc.get('CWUser', 'login', 'String', 'subject'), {'order': 0})
    87         self.assertEqual(pvdc.get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
    83         self.assertEqual(pvdc.get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
    88         self.assertEqual(pvdc.get('CWUser', 'surname', 'String', 'subject'), {'order': 2})
    84         self.assertEqual(pvdc.get('CWUser', 'surname', 'String', 'subject'), {'order': 2})
    89 
    85 
    90     @tag('uihelper', 'kwargs', 'func')
       
    91     def test_uihelper_set_field_kwargs(self):
    86     def test_uihelper_set_field_kwargs(self):
    92         afk_get = uicfg.autoform_field_kwargs.get
    87         afk_get = uicfg.autoform_field_kwargs.get
    93         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
    88         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
    94         wdg = fwdgs.TextInput({'size': 30})
    89         wdg = fwdgs.TextInput({'size': 30})
    95         with warnings.catch_warnings(record=True) as w:
    90         with warnings.catch_warnings(record=True) as w:
    96             uihelper.set_field_kwargs('CWUser', 'firstname', widget=wdg)
    91             uihelper.set_field_kwargs('CWUser', 'firstname', widget=wdg)
    97             self.assertEqual(len(w), 1)
    92             self.assertEqual(len(w), 1)
    98             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
    93             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
    99         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'widget': wdg})
    94         self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'widget': wdg})
   100 
    95 
   101     @tag('uihelper', 'hidden', 'func')
       
   102     def test_uihelper_hide_fields(self):
    96     def test_uihelper_hide_fields(self):
   103         # original conf : in_group is edited in 'attributes' section everywhere
    97         # original conf : in_group is edited in 'attributes' section everywhere
   104         section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
    98         section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
   105         self.assertCountEqual(section_conf, ['main_attributes', 'muledit_attributes'])
    99         self.assertCountEqual(section_conf, ['main_attributes', 'muledit_attributes'])
   106         # hide field in main form
   100         # hide field in main form
   116             self.assertEqual(len(w), 1)
   110             self.assertEqual(len(w), 1)
   117             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
   111             self.assertTrue(issubclass(w[-1].category, DeprecationWarning))
   118         section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
   112         section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
   119         self.assertCountEqual(section_conf, ['main_hidden', 'muledit_hidden'])
   113         self.assertCountEqual(section_conf, ['main_hidden', 'muledit_hidden'])
   120 
   114 
   121     @tag('uihelper', 'hidden', 'formconfig')
       
   122     def test_uihelper_formconfig(self):
   115     def test_uihelper_formconfig(self):
   123         afk_get = uicfg.autoform_field_kwargs.get
   116         afk_get = uicfg.autoform_field_kwargs.get
   124 
   117 
   125         class CWUserFormConfig(uihelper.FormConfig):
   118         class CWUserFormConfig(uihelper.FormConfig):
   126             etype = 'CWUser'
   119             etype = 'CWUser'
   150         obj = self.vreg['uicfg'].select_or_none('autoform_section')
   143         obj = self.vreg['uicfg'].select_or_none('autoform_section')
   151         self.assertTrue(obj is custom_afs)
   144         self.assertTrue(obj is custom_afs)
   152 
   145 
   153 
   146 
   154 if __name__ == '__main__':
   147 if __name__ == '__main__':
   155     from logilab.common.testlib import unittest_main
   148     import unittest
   156     unittest_main()
   149     unittest.main()