sobjects/test/unittest_email.py
changeset 9742 e02ebdf654c2
parent 7791 31bb51ea5485
--- 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