sobjects/test/unittest_email.py
branch3.5
changeset 3253 905e269ff853
parent 1977 606923dff11b
child 3293 69c0ba095536
child 4212 ab6573088b4a
equal deleted inserted replaced
3252:c0e10da6f1cf 3253:905e269ff853
     3 :organization: Logilab
     3 :organization: Logilab
     4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
     4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     7 """
     7 """
       
     8 from cubicweb import Unauthorized
     8 from cubicweb.devtools.apptest import EnvBasedTC
     9 from cubicweb.devtools.apptest import EnvBasedTC
     9 
    10 
    10 class EmailAddressHooksTC(EnvBasedTC):
    11 class EmailAddressHooksTC(EnvBasedTC):
    11 
    12 
    12     def test_use_email_set_primary_email(self):
    13     def test_use_email_set_primary_email(self):
    28                           [])
    29                           [])
    29         self.commit()
    30         self.commit()
    30         self.assertEquals(self.execute('Any A WHERE U use_email X, U login "admin", X address A')[0][0],
    31         self.assertEquals(self.execute('Any A WHERE U use_email X, U login "admin", X address A')[0][0],
    31                           'admin@logilab.fr')
    32                           'admin@logilab.fr')
    32 
    33 
       
    34     def test_cardinality_check(self):
       
    35         email1 = self.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
       
    36         self.commit()
       
    37         self.execute('SET U primary_email E WHERE U login "anon", E address "client@client.com"')
       
    38         self.commit()
       
    39         rset = self.execute('Any X WHERE X use_email E, E eid %(e)s', {'e': email1})
       
    40         self.failIf(rset.rowcount != 1, rset)
       
    41 
       
    42     def test_security_check(self):
       
    43         self.create_user('toto')
       
    44         email1 = self.execute('INSERT EmailAddress E: E address "client@client.com", U use_email E WHERE U login "admin"')[0][0]
       
    45         self.commit()
       
    46         cnx = self.login('toto')
       
    47         cu = cnx.cursor()
       
    48         cu.execute('SET U primary_email E WHERE E eid %(e)s, U login "toto"',
       
    49                    {'e': email1})
       
    50         self.assertRaises(Unauthorized, cnx.commit)
       
    51 
    33 
    52 
    34 if __name__ == '__main__':
    53 if __name__ == '__main__':
    35     from logilab.common.testlib import unittest_main
    54     from logilab.common.testlib import unittest_main
    36     unittest_main()
    55     unittest_main()