1 """unit tests for module cubicweb.server.migractions |
1 """unit tests for module cubicweb.server.migractions |
2 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
2 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
3 """ |
3 """ |
4 |
4 |
5 from datetime import date |
5 from datetime import date |
|
6 from os.path import join |
6 |
7 |
7 from logilab.common.testlib import TestCase, unittest_main |
8 from logilab.common.testlib import TestCase, unittest_main |
|
9 |
|
10 from cubicweb import ConfigurationError |
8 from cubicweb.devtools.apptest import RepositoryBasedTC, get_versions |
11 from cubicweb.devtools.apptest import RepositoryBasedTC, get_versions |
9 |
|
10 from cubicweb import ConfigurationError |
|
11 from cubicweb.schema import CubicWebSchemaLoader |
12 from cubicweb.schema import CubicWebSchemaLoader |
12 from cubicweb.server.sqlutils import SQL_PREFIX |
13 from cubicweb.server.sqlutils import SQL_PREFIX |
13 from cubicweb.server.repository import Repository |
14 from cubicweb.server.repository import Repository |
14 from cubicweb.server.migractions import * |
15 from cubicweb.server.migractions import * |
15 |
16 |
30 repo = self.repo # set by the RepositoryBasedTC metaclass |
31 repo = self.repo # set by the RepositoryBasedTC metaclass |
31 # force to read schema from the database |
32 # force to read schema from the database |
32 repo.config._cubes = None |
33 repo.config._cubes = None |
33 repo.fill_schema() |
34 repo.fill_schema() |
34 # hack to read the schema from data/migrschema |
35 # hack to read the schema from data/migrschema |
35 CubicWebSchemaLoader.main_schema_directory = 'migrschema' |
36 self.repo.config.appid = join('data', 'migratedapp') |
36 global migrschema |
37 global migrschema |
37 migrschema = self.repo.config.load_schema() |
38 migrschema = self.repo.config.load_schema() |
38 del CubicWebSchemaLoader.main_schema_directory |
39 self.repo.config.appid = 'data' |
39 assert 'Folder' in migrschema |
40 assert 'Folder' in migrschema |
40 self.repo.hm.deactivate_verification_hooks() |
41 self.repo.hm.deactivate_verification_hooks() |
41 RepositoryBasedTC.setUp(self) |
42 RepositoryBasedTC.setUp(self) |
42 self.mh = ServerMigrationHelper(self.repo.config, migrschema, |
43 self.mh = ServerMigrationHelper(self.repo.config, migrschema, |
43 repo=self.repo, cnx=self.cnx, |
44 repo=self.repo, cnx=self.cnx, |
354 self.mh.cmd_set_size_constraint('CWEType', 'description', None) |
355 self.mh.cmd_set_size_constraint('CWEType', 'description', None) |
355 |
356 |
356 def test_add_remove_cube_and_deps(self): |
357 def test_add_remove_cube_and_deps(self): |
357 cubes = set(self.config.cubes()) |
358 cubes = set(self.config.cubes()) |
358 schema = self.repo.schema |
359 schema = self.repo.schema |
359 self.assertEquals(sorted(schema['see_also']._rproperties.keys()), |
360 self.assertEquals(sorted((str(s), str(o)) for s, o in schema['see_also']._rproperties.keys()), |
360 sorted([('EmailThread', 'EmailThread'), ('Folder', 'Folder'), |
361 sorted([('EmailThread', 'EmailThread'), ('Folder', 'Folder'), |
361 ('Bookmark', 'Bookmark'), ('Bookmark', 'Note'), |
362 ('Bookmark', 'Bookmark'), ('Bookmark', 'Note'), |
362 ('Note', 'Note'), ('Note', 'Bookmark')])) |
363 ('Note', 'Note'), ('Note', 'Bookmark')])) |
363 try: |
364 try: |
364 try: |
365 try: |