devtools/_apptest.py
changeset 1808 aa09e20dd8c0
parent 1802 d628defebc17
child 1977 606923dff11b
--- a/devtools/_apptest.py	Tue May 05 17:18:49 2009 +0200
+++ b/devtools/_apptest.py	Thu May 14 12:48:11 2009 +0200
@@ -1,7 +1,7 @@
 """Hidden internals for the devtools.apptest module
 
 :organization: Logilab
-:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -20,11 +20,11 @@
 
 from cubicweb.devtools import ApptestConfiguration, init_test_database
 from cubicweb.devtools.fake import FakeRequest
-    
-SYSTEM_ENTITIES = ('EGroup', 'EUser',
-                   'EFRDef', 'ENFRDef',
-                   'EConstraint', 'EConstraintType', 'EProperty',
-                   'EEType', 'ERType',
+
+SYSTEM_ENTITIES = ('CWGroup', 'CWUser',
+                   'CWAttribute', 'CWRelation',
+                   'CWConstraint', 'CWConstraintType', 'CWProperty',
+                   'CWEType', 'CWRType',
                    'State', 'Transition', 'TrInfo',
                    'RQLExpression',
                    )
@@ -35,7 +35,7 @@
     'is', 'is_instance_of', 'owned_by', 'created_by', 'specializes',
     # workflow related
     'state_of', 'transition_of', 'initial_state', 'allowed_transition',
-    'destination_state', 'in_state', 'wf_info_for', 'from_state', 'to_state', 
+    'destination_state', 'in_state', 'wf_info_for', 'from_state', 'to_state',
     'condition',
     # permission
     'in_group', 'require_group', 'require_permission',
@@ -46,11 +46,11 @@
     'relation_type', 'from_entity', 'to_entity',
     'constrained_by', 'cstrtype', 'widget',
     # deducted from other relations
-    'primary_email', 
+    'primary_email',
                     )
 
 def unprotected_entities(app_schema, strict=False):
-    """returned a Set of each non final entity type, excluding EGroup, and EUser...
+    """returned a Set of each non final entity type, excluding CWGroup, and CWUser...
     """
     if strict:
         protected_entities = yams.schema.BASE_TYPES
@@ -58,16 +58,17 @@
         protected_entities = yams.schema.BASE_TYPES.union(set(SYSTEM_ENTITIES))
     entities = set(app_schema.entities())
     return entities - protected_entities
-    
+
 
 def ignore_relations(*relations):
+    global SYSTEM_RELATIONS
     SYSTEM_RELATIONS += relations
 
 class TestEnvironment(object):
     """TestEnvironment defines a context (e.g. a config + a given connection) in
     which the tests are executed
     """
-    
+
     def __init__(self, appid, reporter=None, verbose=False,
                  configcls=ApptestConfiguration, requestcls=FakeRequest):
         config = configcls(appid)
@@ -83,14 +84,13 @@
         self.restore_database()
         if verbose:
             print "init done"
-        login = source['db-user']
         config.repository = lambda x=None: self.repo
         self.app = CubicWebPublisher(config, vreg=vreg)
         self.verbose = verbose
         schema = self.vreg.schema
         # else we may run into problems since email address are ususally share in app tests
         # XXX should not be necessary anymore
-        schema.rschema('primary_email').set_rproperty('EUser', 'EmailAddress', 'composite', False)
+        schema.rschema('primary_email').set_rproperty('CWUser', 'EmailAddress', 'composite', False)
         self.deletable_entities = unprotected_entities(schema)
 
     def restore_database(self):
@@ -114,12 +114,12 @@
         self.cnx.vreg = self.vreg
         self.cnx.login = source['db-user']
         self.cnx.password = source['db-password']
-        
+
 
     def create_user(self, login, groups=('users',), req=None):
         req = req or self.create_request()
         cursor = self._orig_cnx.cursor(req)
-        rset = cursor.execute('INSERT EUser X: X login %(login)s, X upassword %(passwd)s,'
+        rset = cursor.execute('INSERT CWUser X: X login %(login)s, X upassword %(passwd)s,'
                               'X in_state S WHERE S name "activated"',
                               {'login': unicode(login), 'passwd': login.encode('utf8')})
         user = rset.get_entity(0, 0)
@@ -140,7 +140,7 @@
         if login == self.vreg.config.anonymous_user()[0]:
             self.cnx.anonymous_connection = True
         return self.cnx
-    
+
     def restore_connection(self):
         if not self.cnx is self._orig_cnx:
             try:
@@ -157,7 +157,7 @@
         """
         req = req or self.create_request(rql=rql)
         return self.cnx.cursor(req).execute(unicode(rql), args, eidkey)
-    
+
     def create_request(self, rql=None, **kwargs):
         """executes <rql>, builds a resultset, and returns a
         couple (rset, req) where req is a FakeRequest
@@ -167,14 +167,14 @@
         req = self.requestcls(self.vreg, form=kwargs)
         req.set_connection(self.cnx)
         return req
-        
+
     def get_rset_and_req(self, rql, optional_args=None, args=None, eidkey=None):
         """executes <rql>, builds a resultset, and returns a
         couple (rset, req) where req is a FakeRequest
         """
         return (self.execute(rql, args, eidkey),
                 self.create_request(rql=rql, **optional_args or {}))
-    
+
     def check_view(self, rql, vid, optional_args, template='main'):
         """checks if vreg.view() raises an exception in this environment
 
@@ -183,7 +183,7 @@
         """
         return self.call_view(vid, rql,
                               template=template, optional_args=optional_args)
-    
+
     def call_view(self, vid, rql, template='main', optional_args=None):
         """shortcut for self.vreg.view()"""
         assert template
@@ -227,23 +227,22 @@
             yield action
 
 class ExistingTestEnvironment(TestEnvironment):
-    
+
     def __init__(self, appid, sourcefile, verbose=False):
         config = ApptestConfiguration(appid, sourcefile=sourcefile)
         if verbose:
             print "init test database ..."
         source = config.sources()['system']
         self.vreg = CubicWebRegistry(config)
-        repo, self.cnx = init_test_database(driver=source['db-driver'],
-                                            vreg=self.vreg)
+        self.cnx = init_test_database(driver=source['db-driver'],
+                                      vreg=self.vreg)[1]
         if verbose:
-            print "init done" 
+            print "init done"
         self.app = CubicWebPublisher(config, vreg=self.vreg)
         self.verbose = verbose
         # this is done when the publisher is opening a connection
         self.cnx.vreg = self.vreg
-        login = source['db-user']
-        
+
     def setup(self, config=None):
         """config is passed by TestSuite but is ignored in this environment"""
         cursor = self.cnx.cursor()
@@ -255,4 +254,3 @@
         cursor.execute('DELETE Any X WHERE X eid > %(x)s', {'x' : self.last_eid}, eid_key='x')
         print "cleaning done"
         self.cnx.commit()
-