server/test/unittest_sqlutils.py
branchstable
changeset 9335 7da91456be2c
parent 9334 ea12401c0a68
child 9805 1b864f5541cf
equal deleted inserted replaced
9334:ea12401c0a68 9335:7da91456be2c
     1 # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     1 # -*- coding: utf-8 -*-
       
     2 # copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 #
     4 #
     4 # This file is part of CubicWeb.
     5 # This file is part of CubicWeb.
     5 #
     6 #
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
     7 # CubicWeb is free software: you can redistribute it and/or modify it under the
    49 
    50 
    50 class SQLUtilsTC(CubicWebTC):
    51 class SQLUtilsTC(CubicWebTC):
    51 
    52 
    52     def test_group_concat(self):
    53     def test_group_concat(self):
    53         req = self.request()
    54         req = self.request()
       
    55         g = req.create_entity('CWGroup', name=u'héhé')
    54         u = req.create_entity('CWUser', login=u'toto', upassword=u'',
    56         u = req.create_entity('CWUser', login=u'toto', upassword=u'',
    55                               in_group=req.execute('CWGroup G WHERE G name "managers"').rows[0][0])
    57                               in_group=g.eid)
    56         rset = self.execute('Any L,GROUP_CONCAT(G) GROUPBY L WHERE X login L,'
    58         rset = self.execute(u'Any L,GROUP_CONCAT(G) GROUPBY L WHERE X login L,'
       
    59                             u'X in_group G, G name GN, NOT G name IN ("users", "héhé")')
       
    60         self.assertEqual([[u'admin', u'3'], [u'anon', u'2']],
       
    61                          rset.rows)
       
    62         rset = self.execute('Any L,GROUP_CONCAT(GN) GROUPBY L WHERE X login L,'
    57                             'X in_group G, G name GN, NOT G name "users"')
    63                             'X in_group G, G name GN, NOT G name "users"')
    58         self.assertEqual([[u'admin', u'3'], [u'anon', u'2'], [u'toto', u'3']],
    64         self.assertEqual([[u'admin', u'managers'], [u'anon', u'guests'], [u'toto', u'héhé']],
    59                          rset.rows)
    65                          rset.rows)
    60 
    66 
    61 if __name__ == '__main__':
    67 if __name__ == '__main__':
    62     unittest_main()
    68     unittest_main()