--- a/web/test/unittest_uicfg.py Mon Jan 04 18:40:30 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
-#
-# This file is part of CubicWeb.
-#
-# CubicWeb is free software: you can redistribute it and/or modify it under the
-# terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation, either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License along
-# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
-import copy
-from logilab.common.testlib import tag
-from cubicweb.devtools.testlib import CubicWebTC
-from cubicweb.web import uihelper, formwidgets as fwdgs
-from cubicweb.web.views import uicfg
-
-abaa = uicfg.actionbox_appearsin_addmenu
-
-class UICFGTC(CubicWebTC):
-
- def test_default_actionbox_appearsin_addmenu_config(self):
- self.assertFalse(abaa.etype_get('TrInfo', 'wf_info_for', 'object', 'CWUser'))
-
-
-
-class DefinitionOrderTC(CubicWebTC):
- """This test check that when multiple definition could match a key, only
- the more accurate apply"""
-
- def setUp(self):
- super(DefinitionOrderTC, self).setUp()
- for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs):
- rtag._old_tagdefs = copy.deepcopy(rtag._tagdefs)
- new_def = (
- (('*', 'login', '*'),
- {'formtype':'main', 'section':'hidden'}),
- (('*', 'login', '*'),
- {'formtype':'muledit', 'section':'hidden'}),
- (('CWUser', 'login', '*'),
- {'formtype':'main', 'section':'attributes'}),
- (('CWUser', 'login', '*'),
- {'formtype':'muledit', 'section':'attributes'}),
- (('CWUser', 'login', 'String'),
- {'formtype':'main', 'section':'inlined'}),
- (('CWUser', 'login', 'String'),
- {'formtype':'inlined', 'section':'attributes'}),
- )
- for key, kwargs in new_def:
- uicfg.autoform_section.tag_subject_of(key, **kwargs)
-
- def tearDown(self):
- super(DefinitionOrderTC, self).tearDown()
- for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs):
- rtag._tagdefs = rtag._old_tagdefs
-
- @tag('uicfg')
- def test_definition_order_hidden(self):
- result = uicfg.autoform_section.get('CWUser', 'login', 'String', 'subject')
- expected = set(['main_inlined', 'muledit_attributes', 'inlined_attributes'])
- self.assertSetEqual(result, expected)
-
- @tag('uihelper', 'order', 'func')
- def test_uihelper_set_fields_order(self):
- afk_get = uicfg.autoform_field_kwargs.get
- self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
- uihelper.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
- self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
-
- @tag('uicfg', 'order', 'func')
- def test_uicfg_primaryview_set_fields_order(self):
- pvdc = uicfg.primaryview_display_ctrl
- pvdc.set_fields_order('CWUser', ('login', 'firstname', 'surname'))
- self.assertEqual(pvdc.get('CWUser', 'login', 'String', 'subject'), {'order': 0})
- self.assertEqual(pvdc.get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
- self.assertEqual(pvdc.get('CWUser', 'surname', 'String', 'subject'), {'order': 2})
-
- @tag('uihelper', 'kwargs', 'func')
- def test_uihelper_set_field_kwargs(self):
- afk_get = uicfg.autoform_field_kwargs.get
- self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {})
- wdg = fwdgs.TextInput({'size': 30})
- uihelper.set_field_kwargs('CWUser', 'firstname', widget=wdg)
- self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'widget': wdg})
-
- @tag('uihelper', 'hidden', 'func')
- def test_uihelper_hide_fields(self):
- # original conf : in_group is edited in 'attributes' section everywhere
- section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
- self.assertCountEqual(section_conf, ['main_attributes', 'muledit_attributes'])
- # hide field in main form
- uihelper.hide_fields('CWUser', ('login', 'in_group'))
- section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
- self.assertCountEqual(section_conf, ['main_hidden', 'muledit_attributes'])
- # hide field in muledit form
- uihelper.hide_fields('CWUser', ('login', 'in_group'), formtype='muledit')
- section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
- self.assertCountEqual(section_conf, ['main_hidden', 'muledit_hidden'])
-
- @tag('uihelper', 'hidden', 'formconfig')
- def test_uihelper_formconfig(self):
- afk_get = uicfg.autoform_field_kwargs.get
- class CWUserFormConfig(uihelper.FormConfig):
- etype = 'CWUser'
- hidden = ('in_group',)
- fields_order = ('login', 'firstname')
- section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject')
- self.assertCountEqual(section_conf, ['main_hidden', 'muledit_attributes'])
- self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1})
-
-
-class UicfgRegistryTC(CubicWebTC):
-
- def test_default_uicfg_object(self):
- 'CW default ui config objects must be registered in uicfg registry'
- onames = ('autoform_field', 'autoform_section', 'autoform_field_kwargs')
- for oname in onames:
- obj = self.vreg['uicfg'].select_or_none(oname)
- self.assertTrue(obj is not None, '%s not found in uicfg registry'
- % oname)
-
- def test_custom_uicfg(self):
- ASRT = uicfg.AutoformSectionRelationTags
- custom_afs = ASRT()
- custom_afs.__select__ = ASRT.__select__ & ASRT.__select__
- self.vreg['uicfg'].register(custom_afs)
- obj = self.vreg['uicfg'].select_or_none('autoform_section')
- self.assertTrue(obj is custom_afs)
-
-
-if __name__ == '__main__':
- from logilab.common.testlib import unittest_main
- unittest_main()