author | Erica Marco <erica.marco@logilab.fr> |
Tue, 17 Mar 2015 15:50:40 +0100 | |
changeset 10270 | 1ae64186af94 |
parent 9013 | b4bcabf55e77 |
child 10612 | 84468b90e9c1 |
permissions | -rw-r--r-- |
8190
2a3c1b787688
[vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8034
diff
changeset
|
1 |
# copyright 2003-2012 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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
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:
5306
diff
changeset
|
17 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
5147
70181998897f
more / cleaner / in code documentation of vreg, selectors and appobject
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5143
diff
changeset
|
18 |
|
4719
aaed3f813ef8
kill dead/useless code as suggested by pylint
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4664
diff
changeset
|
19 |
from warnings import warn |
634
0badd061ce0f
move cubicweb.common.selectors to cubicweb.selectors
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
20 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
21 |
from logilab.common.deprecation import deprecated, class_renamed |
650
75b4c661f71b
proper documentation, some bug fixes, upgrade some selectors
sylvain.thenault@logilab.fr
parents:
649
diff
changeset
|
22 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
23 |
from cubicweb.predicates import * |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
24 |
|
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
25 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
26 |
warn('[3.15] cubicweb.selectors renamed into cubicweb.predicates', |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
27 |
DeprecationWarning, stacklevel=2) |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
28 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
29 |
# XXX pre 3.15 bw compat |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
30 |
from cubicweb.appobject import (objectify_selector, traced_selection, |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
31 |
lltrace, yes) |
5556
9ab2b4c74baf
[entity] introduce a new 'adapters' registry
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5508
diff
changeset
|
32 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
33 |
ExpectedValueSelector = class_renamed('ExpectedValueSelector', |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
34 |
ExpectedValuePredicate) |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
35 |
EClassSelector = class_renamed('EClassSelector', EClassPredicate) |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
36 |
EntitySelector = class_renamed('EntitySelector', EntityPredicate) |
5877
0c7b7b76a84f
[selectors] provide a new, optimized, is_instance selector that should at some point replace implements (along with the adaptable selector)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5858
diff
changeset
|
37 |
|
5556
9ab2b4c74baf
[entity] introduce a new 'adapters' registry
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5508
diff
changeset
|
38 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
39 |
class on_transition(is_in_state): |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
40 |
"""Return 1 if entity is in one of the transitions given as argument list |
1474 | 41 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
42 |
Especially useful to match passed transition to enable notifications when |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
43 |
your workflow allows several transition to the same states. |
650
75b4c661f71b
proper documentation, some bug fixes, upgrade some selectors
sylvain.thenault@logilab.fr
parents:
649
diff
changeset
|
44 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
45 |
Note that if workflow `change_state` adapter method is used, this predicate |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
46 |
will not be triggered. |
6395
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
47 |
|
8190
2a3c1b787688
[vreg] move base registry implementation to logilab.common. Closes #1916014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8034
diff
changeset
|
48 |
You should use this instead of your own :class:`score_entity` predicate to |
6395
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
49 |
avoid some gotchas: |
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
50 |
|
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
51 |
* possible views gives a fake entity with no state |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
52 |
* you must use the latest tr info thru the workflow adapter for repository |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
53 |
side checking of the current state |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
54 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
55 |
In debug mode, this predicate can raise: |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
56 |
:raises: :exc:`ValueError` for unknown transition names |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
57 |
(etype workflow only not checked in custom workflow) |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
58 |
|
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
59 |
:rtype: int |
6395
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
60 |
""" |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
61 |
@deprecated('[3.12] on_transition is deprecated, you should rather use ' |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
62 |
'on_fire_transition(etype, trname)') |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
63 |
def __init__(self, *expected): |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
64 |
super(on_transition, self).__init__(*expected) |
6395
30582ba8b368
[selectors] move selectors according to their type, add missing ones to documentation
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6389
diff
changeset
|
65 |
|
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
66 |
def _score(self, adapted): |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
67 |
trinfo = adapted.latest_trinfo() |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
68 |
if trinfo and trinfo.by_transition: |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
69 |
return trinfo.by_transition[0].name in self.expected |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
70 |
|
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
71 |
def _validate(self, adapted): |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
72 |
wf = adapted.current_workflow |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
73 |
valid = [n.name for n in wf.reverse_transition_of] |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
74 |
unknown = sorted(self.expected.difference(valid)) |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
75 |
if unknown: |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
76 |
raise ValueError("%s: unknown transition(s): %s" |
6919
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
77 |
% (wf.name, ",".join(unknown))) |
8fd6921f3e7c
[selectors] modify workflow selectors: is_in_state, on_transition
Julien Jehannet <julien.jehannet@logilab.fr>
parents:
6908
diff
changeset
|
78 |
|
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
79 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
80 |
entity_implements = class_renamed('entity_implements', is_instance) |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
81 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
82 |
class _but_etype(EntityPredicate): |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
83 |
"""accept if the given entity types are not found in the result set. |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
84 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
85 |
See `EntityPredicate` documentation for behaviour when row is not specified. |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
86 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
87 |
:param *etypes: entity types (`basestring`) which should be refused |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
88 |
""" |
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
89 |
def __init__(self, *etypes): |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
90 |
super(_but_etype, self).__init__() |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
91 |
self.but_etypes = etypes |
4462
c57c8176b8c2
reorganize, cleanup and properly document base selectors. Kill the may_add_relation selector.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4458
diff
changeset
|
92 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
93 |
def score(self, req, rset, row, col): |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
94 |
if rset.description[row][col] in self.but_etypes: |
7955
f4c97d3c8b93
[selectors] match_kwargs and match_form_params selectors both accept a new `once_is_enough` argument (closes #1990438)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7879
diff
changeset
|
95 |
return 0 |
6140
65a619eb31c4
[boxes] introduce new boxes system
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6120
diff
changeset
|
96 |
return 1 |
65a619eb31c4
[boxes] introduce new boxes system
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6120
diff
changeset
|
97 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
98 |
but_etype = class_renamed('but_etype', _but_etype, 'use ~is_instance(*etypes) instead') |
8034
b07d61090706
replace adapter by simple selector to ease edit controller overloading; fixes #2042349
Florent Cayré <florent.cayre@gmail.com>
parents:
8032
diff
changeset
|
99 |
|
8591
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
100 |
# XXX deprecated the one_* variants of predicates below w/ multi_xxx(nb=1)? |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
101 |
# take care at the implementation though (looking for the 'row' argument's |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
102 |
# value) |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
103 |
two_lines_rset = class_renamed('two_lines_rset', multi_lines_rset) |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
104 |
two_cols_rset = class_renamed('two_cols_rset', multi_columns_rset) |
f7c07e9d4f2e
[web test] make unittest_viewselectors work if rdflib isn't available
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8528
diff
changeset
|
105 |
two_etypes_rset = class_renamed('two_etypes_rset', multi_etypes_rset) |