diff -r 058bb3dc685f -r 0b59724cb3f2 sobjects/test/unittest_register_user.py --- a/sobjects/test/unittest_register_user.py Mon Jan 04 18:40:30 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -# copyright 2003-2014 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 . -"""unittest for cubicweb.dbapi""" - -from cubicweb import ValidationError -from cubicweb.web import Unauthorized -from cubicweb.devtools.testlib import CubicWebTC - - -class RegisterUserTC(CubicWebTC): - - def test_register_user_service(self): - acc = self.admin_access - with acc.client_cnx() as cnx: - cnx.call_service('register_user', login=u'foo1', password=u'bar1', - email=u'foo1@bar1.com', firstname=u'Foo1', - surname=u'Bar1') - - acc = self.new_access('anon') - with acc.client_cnx() as cnx: - self.assertRaises(Unauthorized, cnx.call_service, 'register_user', - login=u'foo2', password=u'bar2', - email=u'foo2@bar2.com', firstname=u'Foo2', surname=u'Bar2') - - with self.repo.internal_cnx() as cnx: - cnx.call_service('register_user', login=u'foo3', - password=u'bar3', email=u'foo3@bar3.com', - firstname=u'Foo3', surname=u'Bar3') - # same login - with self.assertRaises(ValidationError): - cnx.call_service('register_user', login=u'foo3', - password=u'bar3') - - def test_register_user_attributes(self): - with self.repo.internal_cnx() as cnx: - cnx.call_service('register_user', login=u'foo3', - password=u'bar3', email=u'foo3@bar3.com', - firstname=u'Foo3', surname=u'Bar3') - cnx.commit() - - with self.admin_access.client_cnx() as cnx: - user = cnx.find('CWUser', login=u'foo3').one() - self.assertEqual(user.firstname, u'Foo3') - self.assertEqual(user.use_email[0].address, u'foo3@bar3.com') - - def test_register_user_groups(self): - with self.repo.internal_cnx() as cnx: - # default - cnx.call_service('register_user', login=u'foo_user', - password=u'bar_user', email=u'foo_user@bar_user.com', - firstname=u'Foo_user', surname=u'Bar_user') - - # group kwarg - cnx.call_service('register_user', login=u'foo_admin', - password=u'bar_admin', email=u'foo_admin@bar_admin.com', - firstname=u'Foo_admin', surname=u'Bar_admin', - groups=('managers', 'users')) - - # class attribute - from cubicweb.sobjects import services - services.RegisterUserService.default_groups = ('guests',) - cnx.call_service('register_user', login=u'foo_guest', - password=u'bar_guest', email=u'foo_guest@bar_guest.com', - firstname=u'Foo_guest', surname=u'Bar_guest') - cnx.commit() - - with self.admin_access.client_cnx() as cnx: - user = cnx.find('CWUser', login=u'foo_user').one() - self.assertEqual([g.name for g in user.in_group], ['users']) - - admin = cnx.find('CWUser', login=u'foo_admin').one() - self.assertEqual(sorted(g.name for g in admin.in_group), ['managers', 'users']) - - guest = cnx.find('CWUser', login=u'foo_guest').one() - self.assertEqual([g.name for g in guest.in_group], ['guests']) - - -if __name__ == '__main__': - from logilab.common.testlib import unittest_main - unittest_main()