author | Philippe Pepiot <philippe.pepiot@logilab.fr> |
Tue, 17 Mar 2020 13:29:08 +0100 | |
branch | 3.27 |
changeset 12914 | 87c3562b3bae |
parent 12213 | 1d7e4f98f902 |
permissions | -rw-r--r-- |
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
1 |
# copyright 2003 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
2 |
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
3 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
4 |
# This file is part of CubicWeb. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
5 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
6 |
# CubicWeb is free software: you can redistribute it and/or modify it under the |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
7 |
# terms of the GNU Lesser General Public License as published by the Free |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
8 |
# Software Foundation, either version 2.1 of the License, or (at your option) |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
9 |
# any later version. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
10 |
# |
5424
8ecbcbff9777
replace logilab-common by CubicWeb in disclaimer
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5421
diff
changeset
|
11 |
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
13 |
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
14 |
# details. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
15 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
16 |
# You should have received a copy of the GNU Lesser General Public License along |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4997
diff
changeset
|
17 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
18 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
19 |
import copy |
11876
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
20 |
import warnings |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
21 |
|
12213
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
22 |
from yams.buildobjs import RelationDefinition, EntityType |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
23 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
24 |
from cubicweb.devtools.testlib import CubicWebTC, BaseTestCase |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
25 |
from cubicweb.schema import build_schema_from_namespace |
8665
e65af61bde7d
[uicfg] uicfg.py moves from web/ to web/views/ (prepares #2406609)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8030
diff
changeset
|
26 |
from cubicweb.web import uihelper, formwidgets as fwdgs |
e65af61bde7d
[uicfg] uicfg.py moves from web/ to web/views/ (prepares #2406609)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8030
diff
changeset
|
27 |
from cubicweb.web.views import uicfg |
3125
52b6b8c2ccc5
[uicfg, autoform] when a relation is inlined, put it in the generated section by default
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
28 |
|
4997
aed7bdb9da54
[web test] a basic test, to be completed
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4083
diff
changeset
|
29 |
abaa = uicfg.actionbox_appearsin_addmenu |
aed7bdb9da54
[web test] a basic test, to be completed
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4083
diff
changeset
|
30 |
|
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
31 |
|
3464
99bd1ea0394a
[tests] make unittest_uicfg pass again by using the correct test class
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
3125
diff
changeset
|
32 |
class UICFGTC(CubicWebTC): |
3125
52b6b8c2ccc5
[uicfg, autoform] when a relation is inlined, put it in the generated section by default
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
33 |
|
4997
aed7bdb9da54
[web test] a basic test, to be completed
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4083
diff
changeset
|
34 |
def test_default_actionbox_appearsin_addmenu_config(self): |
7791
31bb51ea5485
[deprecation] fix unittest pending deprecation warnings on failIf/failUnless methods family
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
35 |
self.assertFalse(abaa.etype_get('TrInfo', 'wf_info_for', 'object', 'CWUser')) |
3125
52b6b8c2ccc5
[uicfg, autoform] when a relation is inlined, put it in the generated section by default
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
36 |
|
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
37 |
|
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
38 |
class DefinitionOrderTC(CubicWebTC): |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
39 |
"""This test check that when multiple definition could match a key, only |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
40 |
the more accurate apply""" |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
41 |
|
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
42 |
def setUp(self): |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
43 |
super(DefinitionOrderTC, self).setUp() |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
44 |
for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
45 |
rtag._old_tagdefs = copy.deepcopy(rtag._tagdefs) |
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
46 |
new_def = ( |
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
47 |
(('*', 'login', '*'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
48 |
{'formtype': 'main', 'section': 'hidden'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
49 |
(('*', 'login', '*'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
50 |
{'formtype': 'muledit', 'section': 'hidden'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
51 |
(('CWUser', 'login', '*'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
52 |
{'formtype': 'main', 'section': 'attributes'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
53 |
(('CWUser', 'login', '*'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
54 |
{'formtype': 'muledit', 'section': 'attributes'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
55 |
(('CWUser', 'login', 'String'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
56 |
{'formtype': 'main', 'section': 'inlined'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
57 |
(('CWUser', 'login', 'String'), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
58 |
{'formtype': 'inlined', 'section': 'attributes'}), |
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
59 |
) |
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
60 |
for key, kwargs in new_def: |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
61 |
uicfg.autoform_section.tag_subject_of(key, **kwargs) |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
62 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
63 |
def tearDown(self): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
64 |
super(DefinitionOrderTC, self).tearDown() |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
65 |
for rtag in (uicfg.autoform_section, uicfg.autoform_field_kwargs): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
66 |
rtag._tagdefs = rtag._old_tagdefs |
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
67 |
|
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
68 |
def test_definition_order_hidden(self): |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
69 |
result = uicfg.autoform_section.get('CWUser', 'login', 'String', 'subject') |
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
70 |
expected = set(['main_inlined', 'muledit_attributes', 'inlined_attributes']) |
6340
470d8e828fda
[test] update test to unittest2 api (still using lgc.testlib though)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5842
diff
changeset
|
71 |
self.assertSetEqual(result, expected) |
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
72 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
73 |
def test_uihelper_set_fields_order(self): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
74 |
afk_get = uicfg.autoform_field_kwargs.get |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
75 |
self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {}) |
11876
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
76 |
with warnings.catch_warnings(record=True) as w: |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
77 |
uihelper.set_fields_order('CWUser', ('login', 'firstname', 'surname')) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
78 |
self.assertEqual(len(w), 1) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
79 |
self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
80 |
self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1}) |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
81 |
|
9341
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
82 |
def test_uicfg_primaryview_set_fields_order(self): |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
83 |
pvdc = uicfg.primaryview_display_ctrl |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
84 |
pvdc.set_fields_order('CWUser', ('login', 'firstname', 'surname')) |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
85 |
self.assertEqual(pvdc.get('CWUser', 'login', 'String', 'subject'), {'order': 0}) |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
86 |
self.assertEqual(pvdc.get('CWUser', 'firstname', 'String', 'subject'), {'order': 1}) |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
87 |
self.assertEqual(pvdc.get('CWUser', 'surname', 'String', 'subject'), {'order': 2}) |
099a3a33eaaa
[uicfg] give a set_fields_order method to the primary view display control
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
9273
diff
changeset
|
88 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
89 |
def test_uihelper_set_field_kwargs(self): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
90 |
afk_get = uicfg.autoform_field_kwargs.get |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
91 |
self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {}) |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
92 |
wdg = fwdgs.TextInput({'size': 30}) |
11876
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
93 |
with warnings.catch_warnings(record=True) as w: |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
94 |
uihelper.set_field_kwargs('CWUser', 'firstname', widget=wdg) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
95 |
self.assertEqual(len(w), 1) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
96 |
self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
97 |
self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'widget': wdg}) |
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
98 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
99 |
def test_uihelper_hide_fields(self): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
100 |
# original conf : in_group is edited in 'attributes' section everywhere |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
101 |
section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject') |
9273
f3795da61959
[test] use assertCountEqual instead of assertItemsEqual
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8666
diff
changeset
|
102 |
self.assertCountEqual(section_conf, ['main_attributes', 'muledit_attributes']) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
103 |
# hide field in main form |
11876
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
104 |
with warnings.catch_warnings(record=True) as w: |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
105 |
uihelper.hide_fields('CWUser', ('login', 'in_group')) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
106 |
self.assertEqual(len(w), 1) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
107 |
self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
108 |
section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject') |
9273
f3795da61959
[test] use assertCountEqual instead of assertItemsEqual
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8666
diff
changeset
|
109 |
self.assertCountEqual(section_conf, ['main_hidden', 'muledit_attributes']) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
110 |
# hide field in muledit form |
11876
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
111 |
with warnings.catch_warnings(record=True) as w: |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
112 |
uihelper.hide_fields('CWUser', ('login', 'in_group'), formtype='muledit') |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
113 |
self.assertEqual(len(w), 1) |
b35e21fc1f9b
[web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr>
parents:
11057
diff
changeset
|
114 |
self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
115 |
section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject') |
9273
f3795da61959
[test] use assertCountEqual instead of assertItemsEqual
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8666
diff
changeset
|
116 |
self.assertCountEqual(section_conf, ['main_hidden', 'muledit_hidden']) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
117 |
|
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
118 |
def test_uihelper_formconfig(self): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
119 |
afk_get = uicfg.autoform_field_kwargs.get |
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
120 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
121 |
class CWUserFormConfig(uihelper.FormConfig): |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
122 |
etype = 'CWUser' |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
123 |
hidden = ('in_group',) |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
124 |
fields_order = ('login', 'firstname') |
12210
3fa6c9ef2f51
[cleanup] Fix some flake8 errors
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11876
diff
changeset
|
125 |
|
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
126 |
section_conf = uicfg.autoform_section.get('CWUser', 'in_group', '*', 'subject') |
9273
f3795da61959
[test] use assertCountEqual instead of assertItemsEqual
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8666
diff
changeset
|
127 |
self.assertCountEqual(section_conf, ['main_hidden', 'muledit_attributes']) |
8030
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
128 |
self.assertEqual(afk_get('CWUser', 'firstname', 'String', 'subject'), {'order': 1}) |
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
129 |
|
552d85fcb587
[uicfg] add uihelper module with high-level helpers (closes #1809414)
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
7791
diff
changeset
|
130 |
|
8666
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
131 |
class UicfgRegistryTC(CubicWebTC): |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
132 |
|
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
133 |
def test_default_uicfg_object(self): |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
134 |
'CW default ui config objects must be registered in uicfg registry' |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
135 |
onames = ('autoform_field', 'autoform_section', 'autoform_field_kwargs') |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
136 |
for oname in onames: |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
137 |
obj = self.vreg['uicfg'].select_or_none(oname) |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
138 |
self.assertTrue(obj is not None, '%s not found in uicfg registry' |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
139 |
% oname) |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
140 |
|
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
141 |
def test_custom_uicfg(self): |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
142 |
ASRT = uicfg.AutoformSectionRelationTags |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
143 |
custom_afs = ASRT() |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
144 |
custom_afs.__select__ = ASRT.__select__ & ASRT.__select__ |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
145 |
self.vreg['uicfg'].register(custom_afs) |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
146 |
obj = self.vreg['uicfg'].select_or_none('autoform_section') |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
147 |
self.assertTrue(obj is custom_afs) |
1dd655788ece
make ui configurations selectable (closes #2406609)
Florent Cayré <florent.cayre@logilab.fr>
parents:
8665
diff
changeset
|
148 |
|
5842
10efd227648e
[fix] fix a uicfg bug in autoform_section
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
5424
diff
changeset
|
149 |
|
12213
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
150 |
def _schema(): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
151 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
152 |
class Personne(EntityType): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
153 |
pass |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
154 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
155 |
class Societe(EntityType): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
156 |
pass |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
157 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
158 |
class Tag(EntityType): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
159 |
pass |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
160 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
161 |
class travaille(RelationDefinition): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
162 |
subject = 'Personne' |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
163 |
object = 'Societe' |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
164 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
165 |
class tags(RelationDefinition): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
166 |
subject = 'Tag' |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
167 |
object = ('Personne', 'Societe', 'Tag') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
168 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
169 |
return build_schema_from_namespace(locals().items()) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
170 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
171 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
172 |
class AutoformSectionTC(BaseTestCase): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
173 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
174 |
def test_derivation(self): |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
175 |
schema = _schema() |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
176 |
afs = uicfg.AutoformSectionRelationTags() |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
177 |
afs.tag_subject_of(('Personne', 'travaille', '*'), 'main', 'relations') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
178 |
afs.tag_object_of(('*', 'travaille', 'Societe'), 'main', 'relations') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
179 |
afs.tag_subject_of(('Tag', 'tags', '*'), 'main', 'relations') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
180 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
181 |
afs2 = afs.derive(__name__, afs.__select__) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
182 |
afs2.tag_subject_of(('Personne', 'travaille', '*'), 'main', 'attributes') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
183 |
afs2.tag_object_of(('*', 'travaille', 'Societe'), 'main', 'attributes') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
184 |
afs2.tag_subject_of(('Tag', 'tags', 'Societe'), 'main', 'attributes') |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
185 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
186 |
afs.init(schema) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
187 |
afs2.init(schema) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
188 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
189 |
self.assertEqual(afs2.etype_get('Tag', 'tags', 'subject', 'Personne'), |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
190 |
set(('main_relations', 'muledit_hidden', 'inlined_relations'))) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
191 |
self.assertEqual(afs2.etype_get('Tag', 'tags', 'subject', 'Societe'), |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
192 |
set(('main_attributes', 'muledit_hidden', 'inlined_attributes'))) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
193 |
self.assertEqual(afs2.etype_get('Personne', 'travaille', 'subject', 'Societe'), |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
194 |
set(('main_attributes', 'muledit_hidden', 'inlined_attributes'))) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
195 |
self.assertEqual(afs2.etype_get('Societe', 'travaille', 'object', 'Personne'), |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
196 |
set(('main_attributes', 'muledit_hidden', 'inlined_attributes'))) |
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
197 |
|
1d7e4f98f902
[uicfg] Fix autoform_section rtags wrt derivation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12211
diff
changeset
|
198 |
|
3125
52b6b8c2ccc5
[uicfg, autoform] when a relation is inlined, put it in the generated section by default
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
199 |
if __name__ == '__main__': |
12211
1a5911825ef5
[web/test] Use bare unittest main instead of lgc.main
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12210
diff
changeset
|
200 |
import unittest |
1a5911825ef5
[web/test] Use bare unittest main instead of lgc.main
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
12210
diff
changeset
|
201 |
unittest.main() |