[test] drop dependency on third party cubes
authorPhilippe Pepiot <philippe.pepiot@logilab.fr>
Fri, 15 Mar 2019 18:07:18 +0100
changeset 12518 12e8b65146d9
parent 12517 34c4157b1071
child 12519 aff5d3498f68
[test] drop dependency on third party cubes Drop dependency on cubicweb-file, cubicweb-localperms, cubicweb-tag and cubicweb-comment for cubicweb.test and cubicweb.sobjects.test Move cubicweb/test/data/libpython/cubicweb_* to cubicweb/test/data, so it's included in PYTHONPATH. Add missing parts of schema, entities, views, hooks that make tests pass.
cubicweb/sobjects/test/data/cubicweb_card
cubicweb/sobjects/test/data/cubicweb_comment
cubicweb/test/data-rewrite/cubicweb_card
cubicweb/test/data-rewrite/cubicweb_localperms
cubicweb/test/data/cubicweb_card/__init__.py
cubicweb/test/data/cubicweb_card/__pkginfo__.py
cubicweb/test/data/cubicweb_card/entities.py
cubicweb/test/data/cubicweb_card/schema.py
cubicweb/test/data/cubicweb_comment/__init__.py
cubicweb/test/data/cubicweb_comment/__pkginfo__.py
cubicweb/test/data/cubicweb_comment/schema.py
cubicweb/test/data/cubicweb_email/__init__.py
cubicweb/test/data/cubicweb_email/__pkginfo__.py
cubicweb/test/data/cubicweb_email/entities.py
cubicweb/test/data/cubicweb_email/hooks.py
cubicweb/test/data/cubicweb_email/views/__init__.py
cubicweb/test/data/cubicweb_file/__init__.py
cubicweb/test/data/cubicweb_file/__pkginfo__.py
cubicweb/test/data/cubicweb_file/entities/__init__.py
cubicweb/test/data/cubicweb_file/hooks/__init__.py
cubicweb/test/data/cubicweb_file/views.py
cubicweb/test/data/cubicweb_forge/__init__.py
cubicweb/test/data/cubicweb_forge/__pkginfo__.py
cubicweb/test/data/cubicweb_localperms/__init__.py
cubicweb/test/data/cubicweb_localperms/__pkginfo__.py
cubicweb/test/data/cubicweb_localperms/schema.py
cubicweb/test/data/cubicweb_mycube/__init__.py
cubicweb/test/data/cubicweb_mycube/__pkginfo__.py
cubicweb/test/data/cubicweb_mycube/ccplugin.py
cubicweb/test/data/cubicweb_tag/__init__.py
cubicweb/test/data/cubicweb_tag/__pkginfo__.py
cubicweb/test/data/cubicweb_tag/entities.py
cubicweb/test/data/cubicweb_tag/schema.py
cubicweb/test/data/libpython/cubicweb_comment/__init__.py
cubicweb/test/data/libpython/cubicweb_comment/__pkginfo__.py
cubicweb/test/data/libpython/cubicweb_email/__init__.py
cubicweb/test/data/libpython/cubicweb_email/__pkginfo__.py
cubicweb/test/data/libpython/cubicweb_email/entities.py
cubicweb/test/data/libpython/cubicweb_email/hooks.py
cubicweb/test/data/libpython/cubicweb_email/views/__init__.py
cubicweb/test/data/libpython/cubicweb_file/__init__.py
cubicweb/test/data/libpython/cubicweb_file/__pkginfo__.py
cubicweb/test/data/libpython/cubicweb_file/entities/__init__.py
cubicweb/test/data/libpython/cubicweb_file/hooks/__init__.py
cubicweb/test/data/libpython/cubicweb_file/views.py
cubicweb/test/data/libpython/cubicweb_forge/__init__.py
cubicweb/test/data/libpython/cubicweb_forge/__pkginfo__.py
cubicweb/test/data/libpython/cubicweb_mycube/__init__.py
cubicweb/test/data/libpython/cubicweb_mycube/__pkginfo__.py
cubicweb/test/data/libpython/cubicweb_mycube/ccplugin.py
cubicweb/test/unittest_cwconfig.py
requirements/test-misc.txt
tox.ini
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/sobjects/test/data/cubicweb_card	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+../../../../cubicweb/test/data/cubicweb_card
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/sobjects/test/data/cubicweb_comment	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+../../../../cubicweb/test/data/cubicweb_comment
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data-rewrite/cubicweb_card	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+../data/cubicweb_card
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data-rewrite/cubicweb_localperms	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+../data/cubicweb_localperms
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_card/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,2 @@
+numversion = (1, 2, 3)
+version = "1.2.3"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_card/entities.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,15 @@
+from cubicweb.entities import AnyEntity, fetch_config
+
+
+class Card(AnyEntity):
+    __regid__ = 'Card'
+    rest_attr = 'wikiid'
+
+    fetch_attrs, cw_fetch_order = fetch_config(['title'])
+
+    def rest_path(self):
+        if self.wikiid:
+            return '%s/%s' % (str(self.e_schema).lower(),
+                              self._cw.url_quote(self.wikiid, safe='/'))
+        else:
+            return super(Card, self).rest_path()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_card/schema.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+from yams.buildobjs import EntityType, String, RichString
+
+
+class Card(EntityType):
+    __permissions__ = {
+        'read':   ('managers', 'users', 'guests'),
+        'add':    ('managers', 'users'),
+        'delete': ('managers', 'owners'),
+        'update': ('managers', 'owners',),
+        }
+
+    title = String(required=True, fulltextindexed=True, maxsize=256)
+    synopsis = String(fulltextindexed=True, maxsize=512,
+                      description=("an abstract for this card"))
+    content = RichString(fulltextindexed=True, internationalizable=True,
+                         default_format='text/rest')
+    wikiid = String(maxsize=64, unique=True)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_comment/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+# 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/>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_comment/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,25 @@
+# pylint: disable=W0622
+# 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/>.
+"""cubicweb-comment packaging information"""
+
+distname = "cubicweb-comment"
+modname = distname.split('-', 1)[1]
+
+numversion = (1, 4, 3)
+version = '.'.join(str(num) for num in numversion)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_comment/schema.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,26 @@
+from yams.buildobjs import (EntityType, RelationType, SubjectRelation,
+                            RichString)
+from cubicweb.schema import RRQLExpression
+
+
+class Comment(EntityType):
+    """a comment is a reply about another entity"""
+    __permissions__ = {
+        'read':   ('managers', 'users', 'guests',),
+        'add':    ('managers', 'users',),
+        'delete': ('managers', 'owners',),
+        'update': ('managers', 'owners',),
+        }
+    content = RichString(required=True, fulltextindexed=True)
+    comments = SubjectRelation('Comment', cardinality='1*', composite='object')
+
+
+class comments(RelationType):
+    __permissions__ = {
+        'read':   ('managers', 'users', 'guests'),
+        'add':    ('managers', 'users',),
+        'delete': ('managers', RRQLExpression('S owned_by U'),),
+        }
+    inlined = True
+    composite = 'object'
+    cardinality = '1*'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_email/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+# 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/>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_email/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,30 @@
+# pylint: disable=W0622
+# 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/>.
+"""cubicweb-email packaging information"""
+
+distname = "cubicweb-email"
+modname = distname.split('-', 1)[1]
+
+numversion = (1, 4, 3)
+version = '.'.join(str(num) for num in numversion)
+
+
+__depends__ = {'cubicweb': None,
+               'cubicweb-file': None}
+__recommends__ = {'cubicweb-comment': None}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_email/entities.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_email/hooks.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_email/views/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_file/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+# 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/>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_file/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,25 @@
+# pylint: disable=W0622
+# 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/>.
+"""cubicweb-file packaging information"""
+
+distname = "cubicweb-file"
+modname = distname.split('-', 1)[1]
+
+numversion = (1, 4, 3)
+version = '.'.join(str(num) for num in numversion)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_file/entities/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_file/hooks/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_file/views.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+"test"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_forge/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+# 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/>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_forge/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,32 @@
+# pylint: disable=W0622
+# 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/>.
+"""cubicweb-forge packaging information"""
+
+distname = "cubicweb-forge"
+modname = distname.split('-', 1)[1]
+
+numversion = (1, 4, 3)
+version = '.'.join(str(num) for num in numversion)
+
+
+__depends__ = {'cubicweb': None,
+               'cubicweb-file': None,
+               'cubicweb-email': None,
+               'cubicweb-comment': None,
+               }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_localperms/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,2 @@
+numversion = (1, 2, 3)
+version = "1.2.3"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_localperms/schema.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,42 @@
+from yams.buildobjs import EntityType, RelationType, RelationDefinition, String
+from cubicweb.schema import PUB_SYSTEM_ENTITY_PERMS, PUB_SYSTEM_REL_PERMS
+
+
+class CWPermission(EntityType):
+    """entity type that may be used to construct some advanced security
+    configuration
+    """
+    __permissions__ = PUB_SYSTEM_ENTITY_PERMS
+
+    name = String(required=True, indexed=True, internationalizable=True,
+                  maxsize=100, description=(
+                      'name or identifier of the permission'))
+    label = String(required=True, internationalizable=True, maxsize=100,
+                   description=('distinct label to distinguate between other '
+                                'permission entity of the same name'))
+
+
+class granted_permission(RelationType):
+    """explicitly granted permission on an entity"""
+    __permissions__ = PUB_SYSTEM_REL_PERMS
+    # XXX cardinality = '*1'
+
+
+class require_permission(RelationType):
+    __permissions__ = PUB_SYSTEM_REL_PERMS
+
+
+class require_group(RelationDefinition):
+    """groups to which the permission is granted"""
+    __permissions__ = PUB_SYSTEM_REL_PERMS
+    subject = 'CWPermission'
+    object = 'CWGroup'
+
+
+class has_group_permission(RelationDefinition):
+    """short cut relation for 'U in_group G, P require_group G' for efficiency
+    reason. This relation is set automatically, you should not set this.
+    """
+    __permissions__ = PUB_SYSTEM_REL_PERMS
+    subject = 'CWUser'
+    object = 'CWPermission'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_mycube/__init__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,20 @@
+# 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/>.
+"""mycube's __init__
+
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_mycube/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,22 @@
+# 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/>.
+"""
+
+"""
+distname = 'cubicweb-mycube'
+version = '1.0.0'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_mycube/ccplugin.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,1 @@
+# simply there to test ccplugin module autoloading
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_tag/__pkginfo__.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,2 @@
+numversion = (1, 2, 3)
+version = "1.2.3"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_tag/entities.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,6 @@
+from cubicweb.entities import AnyEntity, fetch_config
+
+
+class Tag(AnyEntity):
+    __regid__ = 'Tag'
+    fetch_attrs, cw_fetch_order = fetch_config(['name'])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cubicweb/test/data/cubicweb_tag/schema.py	Fri Mar 15 18:07:18 2019 +0100
@@ -0,0 +1,17 @@
+from yams.buildobjs import EntityType, String, SubjectRelation, RelationType
+
+
+class Tag(EntityType):
+    """tags are used by users to mark entities.
+    When you include the Tag entity, all application specific entities
+    may then be tagged using the "tags" relation.
+    """
+    name = String(required=True, fulltextindexed=True, unique=True,
+                  maxsize=128)
+    # when using this component, add the Tag tag X relation for each type that
+    # should be taggeable
+    tags = SubjectRelation('Tag', description="tagged objects")
+
+
+class tags(RelationType):
+    """indicates that an entity is classified by a given tag"""
--- a/cubicweb/test/data/libpython/cubicweb_comment/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +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/>.
--- a/cubicweb/test/data/libpython/cubicweb_comment/__pkginfo__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-# pylint: disable=W0622
-# 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/>.
-"""cubicweb-comment packaging information"""
-
-distname = "cubicweb-comment"
-modname = distname.split('-', 1)[1]
-
-numversion = (1, 4, 3)
-version = '.'.join(str(num) for num in numversion)
--- a/cubicweb/test/data/libpython/cubicweb_email/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +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/>.
--- a/cubicweb/test/data/libpython/cubicweb_email/__pkginfo__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-# pylint: disable=W0622
-# 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/>.
-"""cubicweb-email packaging information"""
-
-distname = "cubicweb-email"
-modname = distname.split('-', 1)[1]
-
-numversion = (1, 4, 3)
-version = '.'.join(str(num) for num in numversion)
-
-
-__depends__ = {'cubicweb': None,
-               'cubicweb-file': None}
-__recommends__ = {'cubicweb-comment': None}
--- a/cubicweb/test/data/libpython/cubicweb_email/entities.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_email/hooks.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_email/views/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_file/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +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/>.
--- a/cubicweb/test/data/libpython/cubicweb_file/__pkginfo__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-# pylint: disable=W0622
-# 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/>.
-"""cubicweb-file packaging information"""
-
-distname = "cubicweb-file"
-modname = distname.split('-', 1)[1]
-
-numversion = (1, 4, 3)
-version = '.'.join(str(num) for num in numversion)
--- a/cubicweb/test/data/libpython/cubicweb_file/entities/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_file/hooks/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_file/views.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-"test"
--- a/cubicweb/test/data/libpython/cubicweb_forge/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +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/>.
--- a/cubicweb/test/data/libpython/cubicweb_forge/__pkginfo__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-# pylint: disable=W0622
-# 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/>.
-"""cubicweb-forge packaging information"""
-
-distname = "cubicweb-forge"
-modname = distname.split('-', 1)[1]
-
-numversion = (1, 4, 3)
-version = '.'.join(str(num) for num in numversion)
-
-
-__depends__ = {'cubicweb': None,
-               'cubicweb-file': None,
-               'cubicweb-email': None,
-               'cubicweb-comment': None,
-               }
--- a/cubicweb/test/data/libpython/cubicweb_mycube/__init__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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/>.
-"""mycube's __init__
-
-"""
--- a/cubicweb/test/data/libpython/cubicweb_mycube/__pkginfo__.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +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/>.
-"""
-
-"""
-distname = 'cubicweb-mycube'
-version = '1.0.0'
--- a/cubicweb/test/data/libpython/cubicweb_mycube/ccplugin.py	Fri Mar 15 17:12:20 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-# simply there to test ccplugin module autoloading
--- a/cubicweb/test/unittest_cwconfig.py	Fri Mar 15 17:12:20 2019 +0100
+++ b/cubicweb/test/unittest_cwconfig.py	Fri Mar 15 18:07:18 2019 +0100
@@ -84,10 +84,10 @@
 
 def iter_entry_points(group, name):
     """Mock pkg_resources.iter_entry_points to yield EntryPoint from
-    packages found in test/data/libpython even though these are not
+    packages found in test/data even though these are not
     installed.
     """
-    libpython = CubicWebConfigurationTC.datapath('libpython')
+    libpython = CubicWebConfigurationTC.datapath()
     prefix = 'cubicweb_'
     for pkgname in os.listdir(libpython):
         if not pkgname.startswith(prefix):
@@ -101,11 +101,11 @@
 
     @classmethod
     def setUpClass(cls):
-        sys.path.append(cls.datapath('libpython'))
+        sys.path.append(cls.datapath())
 
     @classmethod
     def tearDownClass(cls):
-        sys.path.remove(cls.datapath('libpython'))
+        sys.path.remove(cls.datapath())
 
     def setUp(self):
         self.config = ApptestConfiguration('data', __file__)
@@ -113,7 +113,7 @@
 
     def tearDown(self):
         ApptestConfiguration.CUBES_PATH = []
-        cleanup_sys_modules([self.datapath('libpython')])
+        cleanup_sys_modules([self.datapath()])
 
     def test_migration_scripts_dir(self):
         mscripts = os.listdir(self.config.migration_scripts_dir())
@@ -124,9 +124,14 @@
     @patch('pkg_resources.iter_entry_points', side_effect=iter_entry_points)
     def test_available_cubes(self, mock_iter_entry_points):
         expected_cubes = [
-            'card', 'comment', 'cubicweb_comment', 'cubicweb_email', 'file',
-            'cubicweb_file', 'cubicweb_forge',
-            'cubicweb_mycube', 'tag',
+            'cubicweb_card',
+            'cubicweb_comment',
+            'cubicweb_email',
+            'cubicweb_file',
+            'cubicweb_forge',
+            'cubicweb_localperms',
+            'cubicweb_mycube',
+            'cubicweb_tag',
         ]
         self.assertEqual(self.config.available_cubes(), expected_cubes)
         mock_iter_entry_points.assert_called_once_with(
--- a/requirements/test-misc.txt	Fri Mar 15 17:12:20 2019 +0100
+++ b/requirements/test-misc.txt	Fri Mar 15 18:07:18 2019 +0100
@@ -1,7 +1,6 @@
 ### Requirements for tests in various cubicweb/**/test directories. ###
 
 ## shared by several test folders
-cubicweb-card == 0.5.8
 docutils
 Twisted < 16.0.0
 webtest
@@ -10,9 +9,6 @@
 Pygments
 mock
 #fyzz XXX pip install fails
-cubicweb-file == 1.18.0
-cubicweb-localperms
-cubicweb-tag == 1.8.3
 
 ## cubicweb/devtools/test
 flake8
@@ -28,4 +24,3 @@
 repoze.lru
 
 ## cubicweb/sobject/test
-cubicweb-comment == 1.12.2
--- a/tox.ini	Fri Mar 15 17:12:20 2019 +0100
+++ b/tox.ini	Fri Mar 15 18:07:18 2019 +0100
@@ -43,7 +43,7 @@
   {envpython} -m check_manifest {toxinidir} \
 # ignore symlinks that are not recognized by check-manifest, see
 # https://github.com/mgedmin/check-manifest/issues/69
-    --ignore cubicweb/devtools/test/data/cubes/i18ntestcube*,cubicweb/server/test/data-migractions/cubicweb_*,cubicweb/server/test/data-migractions/migratedapp/cubicweb_*
+    --ignore cubicweb/devtools/test/data/cubes/i18ntestcube*,cubicweb/server/test/data-migractions/cubicweb_*,cubicweb/server/test/data-migractions/migratedapp/cubicweb_*,cubicweb/sobjects/test/data/cubicweb_*,cubicweb/test/data-rewrite/cubicweb_*
 
 [pytest]
 python_files = *test_*.py