[test/migration] fix crash on execution
This assertion is there for unclear reasons.
===================== unittest_migration.py =======================
-> creating tables [====================]
-> inserting default user and default groups.
-> storing the schema in the database [====================]
-> database for instance data initialized.
F
======================================================================
FAIL: test_db_creation (unittest_migration.BaseCreationTC)
make sure database can be created
----------------------------------------------------------------------
Traceback (most recent call last)
File "/home/auc/confs/forges/logilab/common/testlib.py", line 661, in _proceed
testfunc(*args, **kwargs)
File "/home/auc/confs/forges/cubicweb/test/unittest_migration.py", line 106, in test_db_creation
handler.build_db_cache()
File "/home/auc/confs/forges/cubicweb/devtools/__init__.py", line 469, in build_db_cache
self.init_test_database()
File "/home/auc/confs/forges/cubicweb/devtools/__init__.py", line 729, in init_test_database
init_repository(self.config, interactive=False)
File "/home/auc/confs/forges/cubicweb/server/__init__.py", line 217, in init_repository
repo = Repository(config, vreg=vreg)
File "/home/auc/confs/forges/cubicweb/server/repository.py", line 197, in __init__
self.init_cnxset_pool()
File "/home/auc/confs/forges/cubicweb/server/repository.py", line 220, in init_cnxset_pool
config.bootstrap_cubes()
File "/home/auc/confs/forges/cubicweb/devtools/__init__.py", line 176, in bootstrap_cubes
super(TestServerConfiguration, self).bootstrap_cubes()
File "/home/auc/confs/forges/cubicweb/server/serverconfig.py", line 279, in bootstrap_cubes
self.init_cubes(self.expand_cubes(splitstrip(line)))
File "/home/auc/confs/forges/cubicweb/cwconfig.py", line 1022, in init_cubes
super(CubicWebConfiguration, self).init_cubes(cubes)
File "/home/auc/confs/forges/cubicweb/cwconfig.py", line 798, in init_cubes
assert self._cubes is None, repr(self._cubes)
AssertionError: ('card', 'file', 'localperms', 'tag')
# copyright 2003-2012 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/>.
from logilab.common.testlib import unittest_main, TestCase
from os.path import join
from cubicweb import CW_SOFTWARE_ROOT as BASE
from cubicweb.appobject import AppObject
from cubicweb.cwvreg import CWRegistryStore, UnknownProperty
from cubicweb.devtools import TestServerConfiguration
from cubicweb.devtools.testlib import CubicWebTC
from cubicweb.view import EntityAdapter
from cubes.card.entities import Card
class YesSchema:
def __contains__(self, something):
return True
WEBVIEWSDIR = join(BASE, 'web', 'views')
class VRegistryTC(TestCase):
def setUp(self):
config = TestServerConfiguration('data')
self.vreg = CWRegistryStore(config)
config.bootstrap_cubes()
self.vreg.schema = config.load_schema()
def test_load_interface_based_vojects(self):
self.vreg.init_registration([WEBVIEWSDIR])
self.vreg.load_file(join(BASE, 'entities', '__init__.py'), 'cubicweb.entities.__init__')
self.vreg.load_file(join(WEBVIEWSDIR, 'idownloadable.py'), 'cubicweb.web.views.idownloadable')
self.vreg.load_file(join(WEBVIEWSDIR, 'primary.py'), 'cubicweb.web.views.primary')
self.assertEqual(len(self.vreg['views']['primary']), 2)
self.vreg.initialization_completed()
self.assertEqual(len(self.vreg['views']['primary']), 1)
def test_load_subinterface_based_appobjects(self):
self.vreg.register_objects([join(BASE, 'web', 'views', 'idownloadable.py')])
# check downloadlink was kicked
self.assertFalse(self.vreg['views'].get('downloadlink'))
# we've to emulate register_objects to add custom MyCard objects
path = [join(BASE, 'entities', '__init__.py'),
join(BASE, 'entities', 'adapters.py'),
join(BASE, 'web', 'views', 'idownloadable.py')]
filemods = self.vreg.init_registration(path, None)
for filepath, modname in filemods:
self.vreg.load_file(filepath, modname)
class CardIDownloadableAdapter(EntityAdapter):
__regid__ = 'IDownloadable'
self.vreg._loadedmods[__name__] = {}
self.vreg.register(CardIDownloadableAdapter)
self.vreg.initialization_completed()
# check progressbar isn't kicked
self.assertEqual(len(self.vreg['views']['downloadlink']), 1)
def test_properties(self):
self.vreg.reset()
self.assertNotIn('system.version.cubicweb', self.vreg['propertydefs'])
self.assertTrue(self.vreg.property_info('system.version.cubicweb'))
self.assertRaises(UnknownProperty, self.vreg.property_info, 'a.non.existent.key')
class CWVregTC(CubicWebTC):
def test_property_default_overriding(self):
# see data/views.py
from cubicweb.web.views.xmlrss import RSSIconBox
self.assertEqual(self.vreg.property_info(RSSIconBox._cwpropkey('visible'))['default'], True)
if __name__ == '__main__':
unittest_main()