Added tag 3.20.10, debian/3.20.10-1, centos/3.20.10-1 for changeset 8f82e9523962
# -*- coding: utf-8 -*-# copyright 2003-2013 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/>."""unit tests for module cubicweb.server.sqlutils"""importsysfromlogilab.common.testlibimportTestCase,unittest_mainfromcubicweb.server.sqlutilsimport*fromcubicweb.devtools.testlibimportCubicWebTCBASE_CONFIG={'db-driver':'Postgres','db-host':'crater','db-name':'cubicweb2_test','db-user':'toto','db-upassword':'toto',}classSQLAdapterMixInTC(TestCase):deftest_init(self):o=SQLAdapterMixIn(BASE_CONFIG)self.assertEqual(o.dbhelper.dbencoding,'UTF-8')deftest_init_encoding(self):config=BASE_CONFIG.copy()config['db-encoding']='ISO-8859-1'o=SQLAdapterMixIn(config)self.assertEqual(o.dbhelper.dbencoding,'ISO-8859-1')classSQLUtilsTC(CubicWebTC):deftest_group_concat(self):withself.admin_access.repo_cnx()ascnx:g=cnx.create_entity('CWGroup',name=u'héhé')u=cnx.create_entity('CWUser',login=u'toto',upassword=u'',in_group=g.eid)rset=cnx.execute(u'Any L,GROUP_CONCAT(G) GROUPBY L WHERE X login L,'u'X in_group G, G name GN, NOT G name IN ("users", "héhé")')self.assertEqual([[u'admin',u'3'],[u'anon',u'2']],rset.rows)rset=cnx.execute('Any L,GROUP_CONCAT(GN) GROUPBY L WHERE X login L,''X in_group G, G name GN, NOT G name "users"')self.assertEqual([[u'admin',u'managers'],[u'anon',u'guests'],[u'toto',u'héhé']],rset.rows)if__name__=='__main__':unittest_main()