15 # |
15 # |
16 # You should have received a copy of the GNU Lesser General Public License along |
16 # You should have received a copy of the GNU Lesser General Public License along |
17 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
17 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
18 """unit tests for schema rql (de)serialization""" |
18 """unit tests for schema rql (de)serialization""" |
19 |
19 |
20 from logilab.common.testlib import TestCase, unittest_main |
|
21 |
|
22 from cubicweb import Binary |
20 from cubicweb import Binary |
23 from cubicweb.schema import CubicWebSchemaLoader |
21 from cubicweb.schema import CubicWebSchemaLoader |
24 from cubicweb.devtools import TestServerConfiguration |
22 from cubicweb.devtools import TestServerConfiguration |
25 from cubicweb.devtools.testlib import CubicWebTC |
23 from cubicweb.devtools.testlib import BaseTestCase as TestCase, CubicWebTC |
26 |
24 |
27 from cubicweb.server.schemaserial import (updateeschema2rql, updaterschema2rql, rschema2rql, |
25 from cubicweb.server.schemaserial import (updateeschema2rql, updaterschema2rql, rschema2rql, |
28 eschema2rql, rdef2rql, specialize2rql, |
26 eschema2rql, rdef2rql, specialize2rql, |
29 _erperms2rql as erperms2rql) |
27 _erperms2rql as erperms2rql) |
30 |
28 |
380 'fulltext_container': None, |
378 'fulltext_container': None, |
381 'inlined': False, |
379 'inlined': False, |
382 'name': u'add_permission'}) |
380 'name': u'add_permission'}) |
383 ] |
381 ] |
384 for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'), 1)): |
382 for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'), 1)): |
385 yield self.assertEqual, expected[i], (rql, args) |
383 with self.subTest(i=i): |
|
384 self.assertEqual((rql, args), expected[i]) |
|
385 |
386 |
386 |
387 class Perms2RQLTC(TestCase): |
387 class Perms2RQLTC(TestCase): |
388 GROUP_MAPPING = { |
388 GROUP_MAPPING = { |
389 'managers': 0, |
389 'managers': 0, |
390 'users': 1, |
390 'users': 1, |
441 self.assertEqual([('Company', 'Int')], list(schema['total_salary'].rdefs)) |
441 self.assertEqual([('Company', 'Int')], list(schema['total_salary'].rdefs)) |
442 self.assertEqual('Any SUM(SA) GROUPBY X WHERE P works_for X, P salary SA', |
442 self.assertEqual('Any SUM(SA) GROUPBY X WHERE P works_for X, P salary SA', |
443 schema['total_salary'].rdefs['Company', 'Int'].formula) |
443 schema['total_salary'].rdefs['Company', 'Int'].formula) |
444 |
444 |
445 if __name__ == '__main__': |
445 if __name__ == '__main__': |
446 unittest_main() |
446 from unittest import main |
|
447 main() |