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() |