--- a/sobjects/test/unittest_email.py Fri Apr 18 14:33:40 2014 +0200
+++ b/sobjects/test/unittest_email.py Fri Apr 04 17:53:58 2014 +0200
@@ -1,4 +1,4 @@
-# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+# 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.
@@ -15,9 +15,6 @@
#
# You should have received a copy of the GNU Lesser General Public License along
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-"""
from cubicweb import Unauthorized
from cubicweb.devtools.testlib import CubicWebTC
@@ -25,45 +22,46 @@
class EmailAddressHooksTC(CubicWebTC):
def test_use_email_set_primary_email(self):
- self.execute('INSERT EmailAddress X: X address "admin@logilab.fr", U use_email X WHERE U login "admin"')
- self.assertEqual(self.execute('Any A WHERE U primary_email X, U login "admin", X address A').rows,
- [])
- self.commit()
- self.assertEqual(self.execute('Any A WHERE U primary_email X, U login "admin", X address A')[0][0],
- 'admin@logilab.fr')
- # having another email should'nt change anything
- self.execute('INSERT EmailAddress X: X address "a@logilab.fr", U use_email X WHERE U login "admin"')
- self.commit()
- self.assertEqual(self.execute('Any A WHERE U primary_email X, U login "admin", X address A')[0][0],
- 'admin@logilab.fr')
+ with self.admin_access.client_cnx() as cnx:
+ cnx.execute('INSERT EmailAddress X: X address "admin@logilab.fr", U use_email X WHERE U login "admin"')
+ self.assertEqual(cnx.execute('Any A WHERE U primary_email X, U login "admin", X address A').rows,
+ [])
+ cnx.commit()
+ self.assertEqual(cnx.execute('Any A WHERE U primary_email X, U login "admin", X address A')[0][0],
+ 'admin@logilab.fr')
+ # having another email should'nt change anything
+ cnx.execute('INSERT EmailAddress X: X address "a@logilab.fr", U use_email X WHERE U login "admin"')
+ cnx.commit()
+ self.assertEqual(cnx.execute('Any A WHERE U primary_email X, U login "admin", X address A')[0][0],
+ 'admin@logilab.fr')
def test_primary_email_set_use_email(self):
- self.execute('INSERT EmailAddress X: X address "admin@logilab.fr", U primary_email X WHERE U login "admin"')
- self.assertEqual(self.execute('Any A WHERE U use_email X, U login "admin", X address A').rows,
- [])
- self.commit()
- self.assertEqual(self.execute('Any A WHERE U use_email X, U login "admin", X address A')[0][0],
- 'admin@logilab.fr')
+ with self.admin_access.client_cnx() as cnx:
+ cnx.execute('INSERT EmailAddress X: X address "admin@logilab.fr", U primary_email X WHERE U login "admin"')
+ self.assertEqual(cnx.execute('Any A WHERE U use_email X, U login "admin", X address A').rows,
+ [])
+ cnx.commit()
+ self.assertEqual(cnx.execute('Any A WHERE U use_email X, U login "admin", X address A')[0][0],
+ 'admin@logilab.fr')
def test_cardinality_check(self):
- email1 = self.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
- self.commit()
- self.execute('SET U primary_email E WHERE U login "anon", E address "client@client.com"')
- self.commit()
- rset = self.execute('Any X WHERE X use_email E, E eid %(e)s', {'e': email1})
- self.assertFalse(rset.rowcount != 1, rset)
+ with self.admin_access.client_cnx() as cnx:
+ email1 = cnx.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
+ cnx.commit()
+ cnx.execute('SET U primary_email E WHERE U login "anon", E address "client@client.com"')
+ cnx.commit()
+ rset = cnx.execute('Any X WHERE X use_email E, E eid %(e)s', {'e': email1})
+ self.assertFalse(rset.rowcount != 1, rset)
def test_security_check(self):
- req = self.request()
- self.create_user(req, 'toto')
- email1 = self.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
- self.commit()
- cnx = self.login('toto')
- cu = cnx.cursor()
- self.assertRaises(Unauthorized,
- cu.execute, 'SET U primary_email E WHERE E eid %(e)s, U login "toto"',
- {'e': email1})
- cnx.close()
+ with self.admin_access.client_cnx() as cnx:
+ self.create_user(cnx, 'toto')
+ email1 = cnx.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
+ cnx.commit()
+ with self.new_access('toto').client_cnx() as cnx:
+ self.assertRaises(Unauthorized,
+ cnx.execute, 'SET U primary_email E WHERE E eid %(e)s, U login "toto"',
+ {'e': email1})
if __name__ == '__main__':
from logilab.common.testlib import unittest_main