# HG changeset patch # User Sylvain Thénault # Date 1274773812 -7200 # Node ID 8a531340c3ef3d2859099b03924e9f220ebf83a3 # Parent e082a57c2207f2150048e00a68aef5379aad3685 no more Image type w/ cw 3.9 diff -r e082a57c2207 -r 8a531340c3ef devtools/fill.py --- a/devtools/fill.py Fri May 21 18:40:26 2010 +0200 +++ b/devtools/fill.py Tue May 25 09:50:12 2010 +0200 @@ -217,7 +217,7 @@ # XXX nothing to do here def generate_Any_data_format(self, entity, index, **kwargs): - # data_format attribute of Image/File has no vocabulary constraint, we + # data_format attribute of File has no vocabulary constraint, we # need this method else stupid values will be set which make mtconverter # raise exception return u'application/octet-stream' @@ -228,12 +228,6 @@ # raise exception return u'text/plain' - def generate_Image_data_format(self, entity, index, **kwargs): - # data_format attribute of Image/File has no vocabulary constraint, we - # need this method else stupid values will be set which make mtconverter - # raise exception - return u'image/png' - class autoextend(type): def __new__(mcs, name, bases, classdict): diff -r e082a57c2207 -r 8a531340c3ef server/test/data/migratedapp/schema.py --- a/server/test/data/migratedapp/schema.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/data/migratedapp/schema.py Tue May 25 09:50:12 2010 +0200 @@ -69,7 +69,7 @@ mydate = Date(default='TODAY') shortpara = String(maxsize=64) ecrit_par = SubjectRelation('Personne', constraints=[RQLConstraint('S concerne A, O concerne A')]) - attachment = SubjectRelation(('File', 'Image')) + attachment = SubjectRelation('File') class Text(Para): __specializes_schema__ = True diff -r e082a57c2207 -r 8a531340c3ef server/test/data/schema.py --- a/server/test/data/schema.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/data/schema.py Tue May 25 09:50:12 2010 +0200 @@ -94,7 +94,7 @@ }) migrated_from = SubjectRelation('Note') - attachment = SubjectRelation(('File', 'Image')) + attachment = SubjectRelation('File') inline1 = SubjectRelation('Affaire', inlined=True, cardinality='?*') todo_by = SubjectRelation('CWUser') diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_migractions.py --- a/server/test/unittest_migractions.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_migractions.py Tue May 25 09:50:12 2010 +0200 @@ -425,7 +425,7 @@ self.failIf(self.config.cube_dir('email') in self.config.cubes_path()) self.failIf('file' in self.config.cubes()) self.failIf(self.config.cube_dir('file') in self.config.cubes_path()) - for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'Image', + for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'sender', 'in_thread', 'reply_to', 'data_format'): self.failIf(ertype in schema, ertype) self.assertEquals(sorted(schema['see_also'].rdefs.keys()), @@ -448,7 +448,7 @@ self.failUnless(self.config.cube_dir('email') in self.config.cubes_path()) self.failUnless('file' in self.config.cubes()) self.failUnless(self.config.cube_dir('file') in self.config.cubes_path()) - for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'Image', + for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'sender', 'in_thread', 'reply_to', 'data_format'): self.failUnless(ertype in schema, ertype) self.assertEquals(sorted(schema['see_also'].rdefs.keys()), diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_msplanner.py --- a/server/test/unittest_msplanner.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_msplanner.py Tue May 25 09:50:12 2010 +0200 @@ -63,7 +63,7 @@ {'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'}, {'X': 'Email'}, {'X': 'EmailAddress'}, {'X': 'EmailPart'}, {'X': 'EmailThread'}, {'X': 'ExternalUri'}, {'X': 'File'}, - {'X': 'Folder'}, {'X': 'Image'}, {'X': 'Note'}, + {'X': 'Folder'}, {'X': 'Note'}, {'X': 'Personne'}, {'X': 'RQLExpression'}, {'X': 'Societe'}, {'X': 'State'}, {'X': 'SubDivision'}, {'X': 'SubWorkflowExitPoint'}, {'X': 'Tag'}, {'X': 'TrInfo'}, {'X': 'Transition'}, @@ -788,10 +788,10 @@ [{'X': 'Basket'}]), ('Any X WHERE X has_text "bla", EXISTS(X owned_by 5), X is CWUser', [{'X': 'CWUser'}]), - ('Any X WHERE X has_text "bla", X is IN(Card, Comment, Division, Email, EmailThread, File, Folder, Image, Note, Personne, Societe, SubDivision, Tag)', + ('Any X WHERE X has_text "bla", X is IN(Card, Comment, Division, Email, EmailThread, File, Folder, Note, Personne, Societe, SubDivision, Tag)', [{'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'}, {'X': 'Email'}, {'X': 'EmailThread'}, - {'X': 'File'}, {'X': 'Folder'}, {'X': 'Image'}, + {'X': 'File'}, {'X': 'Folder'}, {'X': 'Note'}, {'X': 'Personne'}, {'X': 'Societe'}, {'X': 'SubDivision'}, {'X': 'Tag'}]),], None, None, [self.system], {}, []), @@ -814,10 +814,10 @@ [{'X': 'Basket'}]), ('Any X WHERE X has_text "bla", EXISTS(X owned_by 5), X is CWUser', [{'X': 'CWUser'}]), - ('Any X WHERE X has_text "bla", X is IN(Card, Comment, Division, Email, EmailThread, File, Folder, Image, Note, Personne, Societe, SubDivision, Tag)', + ('Any X WHERE X has_text "bla", X is IN(Card, Comment, Division, Email, EmailThread, File, Folder, Note, Personne, Societe, SubDivision, Tag)', [{'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'}, {'X': 'Email'}, {'X': 'EmailThread'}, - {'X': 'File'}, {'X': 'Folder'}, {'X': 'Image'}, + {'X': 'File'}, {'X': 'Folder'}, {'X': 'Note'}, {'X': 'Personne'}, {'X': 'Societe'}, {'X': 'SubDivision'}, {'X': 'Tag'}])], [self.system], {}, {'X': 'table0.C0'}, []), @@ -827,7 +827,7 @@ [{'X': 'Affaire'}, {'X': 'Basket'}, {'X': 'CWUser'}, {'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'}, {'X': 'Email'}, {'X': 'EmailThread'}, - {'X': 'File'}, {'X': 'Folder'}, {'X': 'Image'}, + {'X': 'File'}, {'X': 'Folder'}, {'X': 'Note'}, {'X': 'Personne'}, {'X': 'Societe'}, {'X': 'SubDivision'}, {'X': 'Tag'}])], 10, 10, [self.system], {'X': 'table0.C0'}, []) @@ -892,7 +892,7 @@ [{'X': 'Card'}, {'X': 'Note'}, {'X': 'State'}])], [self.cards, self.system], {}, {'X': 'table0.C0'}, []), ('FetchStep', - [('Any X WHERE X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, Comment, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Image, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)', + [('Any X WHERE X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, Comment, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)', [{'X': 'BaseTransition'}, {'X': 'Bookmark'}, {'X': 'CWAttribute'}, {'X': 'CWCache'}, {'X': 'CWConstraint'}, {'X': 'CWConstraintType'}, @@ -903,7 +903,7 @@ {'X': 'Email'}, {'X': 'EmailAddress'}, {'X': 'EmailPart'}, {'X': 'EmailThread'}, {'X': 'ExternalUri'}, {'X': 'File'}, - {'X': 'Folder'}, {'X': 'Image'}, + {'X': 'Folder'}, {'X': 'Personne'}, {'X': 'RQLExpression'}, {'X': 'Societe'}, {'X': 'SubDivision'}, {'X': 'SubWorkflowExitPoint'}, {'X': 'Tag'}, @@ -953,7 +953,7 @@ [self.system], {'X': 'table3.C0'}, {'ET': 'table0.C0', 'X': 'table0.C1'}, []), # extra UnionFetchStep could be avoided but has no cost, so don't care ('UnionFetchStep', - [('FetchStep', [('Any ET,X WHERE X is ET, ET is CWEType, X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, Comment, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Image, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)', + [('FetchStep', [('Any ET,X WHERE X is ET, ET is CWEType, X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, Comment, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)', [{'X': 'BaseTransition', 'ET': 'CWEType'}, {'X': 'Bookmark', 'ET': 'CWEType'}, {'X': 'CWAttribute', 'ET': 'CWEType'}, {'X': 'CWCache', 'ET': 'CWEType'}, {'X': 'CWConstraint', 'ET': 'CWEType'}, @@ -965,7 +965,7 @@ {'X': 'EmailAddress', 'ET': 'CWEType'}, {'X': 'EmailPart', 'ET': 'CWEType'}, {'X': 'EmailThread', 'ET': 'CWEType'}, {'X': 'ExternalUri', 'ET': 'CWEType'}, {'X': 'File', 'ET': 'CWEType'}, {'X': 'Folder', 'ET': 'CWEType'}, - {'X': 'Image', 'ET': 'CWEType'}, {'X': 'Personne', 'ET': 'CWEType'}, + {'X': 'Personne', 'ET': 'CWEType'}, {'X': 'RQLExpression', 'ET': 'CWEType'}, {'X': 'Societe', 'ET': 'CWEType'}, {'X': 'SubDivision', 'ET': 'CWEType'}, {'X': 'SubWorkflowExitPoint', 'ET': 'CWEType'}, {'X': 'Tag', 'ET': 'CWEType'}, {'X': 'TrInfo', 'ET': 'CWEType'}, diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_querier.py --- a/server/test/unittest_querier.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_querier.py Tue May 25 09:50:12 2010 +0200 @@ -491,17 +491,17 @@ 'WHERE RT name N, RDEF relation_type RT ' 'HAVING COUNT(RDEF) > 10') self.assertListEquals(rset.rows, - [[u'description_format', 13], - [u'description', 14], + [[u'description_format', 12], + [u'description', 13], [u'name', 14], - [u'created_by', 38], - [u'creation_date', 38], - [u'cwuri', 38], - [u'in_basket', 38], - [u'is', 38], - [u'is_instance_of', 38], - [u'modification_date', 38], - [u'owned_by', 38]]) + [u'created_by', 37], + [u'creation_date', 37], + [u'cwuri', 37], + [u'in_basket', 37], + [u'is', 37], + [u'is_instance_of', 37], + [u'modification_date', 37], + [u'owned_by', 37]]) def test_select_aggregat_having_dumb(self): # dumb but should not raise an error diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_repository.py --- a/server/test/unittest_repository.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_repository.py Tue May 25 09:50:12 2010 +0200 @@ -242,10 +242,11 @@ 'update_permission', 'read_permission')], ['relation_type', 'from_entity', 'to_entity', - 'in_basket', 'constrained_by', + 'constrained_by', 'cardinality', 'ordernum', 'indexed', 'fulltextindexed', 'internationalizable', - 'defaultval', 'description', 'description_format']) + 'defaultval', 'description', 'description_format', + 'in_basket']) self.assertEquals(schema.eschema('CWEType').main_attribute(), 'name') self.assertEquals(schema.eschema('State').main_attribute(), 'name') diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_rql2sql.py --- a/server/test/unittest_rql2sql.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_rql2sql.py Tue May 25 09:50:12 2010 +0200 @@ -15,10 +15,6 @@ # # You should have received a copy of the GNU Lesser General Public License along # with CubicWeb. If not, see . -""" - -""" - """unit tests for module cubicweb.server.sources.rql2sql""" import sys @@ -429,13 +425,10 @@ GROUP BY T1.C1'''), ('Any MAX(X)+MIN(LENGTH(D)), N GROUPBY N ORDERBY 1, N, DF WHERE X data_name N, X data D, X data_format DF;', - '''SELECT (MAX(T1.C1) + MIN(LENGTH(T1.C0))), T1.C2 FROM (SELECT _X.cw_data AS C0, _X.cw_eid AS C1, _X.cw_data_name AS C2, _X.cw_data_format AS C3 + '''SELECT (MAX(_X.cw_eid) + MIN(LENGTH(_X.cw_data))), _X.cw_data_name FROM cw_File AS _X -UNION ALL -SELECT _X.cw_data AS C0, _X.cw_eid AS C1, _X.cw_data_name AS C2, _X.cw_data_format AS C3 -FROM cw_Image AS _X) AS T1 -GROUP BY T1.C2,T1.C3 -ORDER BY 1,2,T1.C3'''), +GROUP BY _X.cw_data_name,_X.cw_data_format +ORDER BY 1,2,_X.cw_data_format'''), ('DISTINCT Any S ORDERBY R WHERE A is Affaire, A sujet S, A ref R', '''SELECT T1.C0 FROM (SELECT DISTINCT _A.cw_sujet AS C0, _A.cw_ref AS C1 @@ -443,12 +436,9 @@ ORDER BY 2) AS T1'''), ('DISTINCT Any MAX(X)+MIN(LENGTH(D)), N GROUPBY N ORDERBY 2, DF WHERE X data_name N, X data D, X data_format DF;', - '''SELECT T1.C0,T1.C1 FROM (SELECT DISTINCT (MAX(T1.C1) + MIN(LENGTH(T1.C0))) AS C0, T1.C2 AS C1, T1.C3 AS C2 FROM (SELECT DISTINCT _X.cw_data AS C0, _X.cw_eid AS C1, _X.cw_data_name AS C2, _X.cw_data_format AS C3 + '''SELECT T1.C0,T1.C1 FROM (SELECT DISTINCT (MAX(_X.cw_eid) + MIN(LENGTH(_X.cw_data))) AS C0, _X.cw_data_name AS C1, _X.cw_data_format AS C2 FROM cw_File AS _X -UNION -SELECT DISTINCT _X.cw_data AS C0, _X.cw_eid AS C1, _X.cw_data_name AS C2, _X.cw_data_format AS C3 -FROM cw_Image AS _X) AS T1 -GROUP BY T1.C2,T1.C3 +GROUP BY _X.cw_data_name,_X.cw_data_format ORDER BY 2,3) AS T1 '''), @@ -711,7 +701,7 @@ '''SELECT _S.cw_eid FROM cw_State AS _S WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid AND _S.cw_name=somename)'''), - + # XXXFIXME fail # ('Any X,RT WHERE X relation_type RT?, NOT X is CWAttribute', # '''SELECT _X.cw_eid, _X.cw_relation_type @@ -1644,5 +1634,6 @@ ([{'A': 'RugbyGroup', 'B': 'RugbyTeam'}], {}, set()) ) + if __name__ == '__main__': unittest_main() diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_schemaserial.py --- a/server/test/unittest_schemaserial.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_schemaserial.py Tue May 25 09:50:12 2010 +0200 @@ -68,8 +68,6 @@ {'et': None, 'x': None}), ('SET X specializes ET WHERE X eid %(x)s, ET eid %(et)s', {'et': None, 'x': None}), - # ('SET X specializes ET WHERE X eid %(x)s, ET eid %(et)s', - # {'et': 'File', 'x': 'Image'}), ('SET X specializes ET WHERE X eid %(x)s, ET eid %(et)s', {'et': None, 'x': None})]) diff -r e082a57c2207 -r 8a531340c3ef server/test/unittest_storage.py --- a/server/test/unittest_storage.py Fri May 21 18:40:26 2010 +0200 +++ b/server/test/unittest_storage.py Tue May 25 09:50:12 2010 +0200 @@ -131,7 +131,7 @@ ex = self.assertRaises(QueryError, self.execute, '(Any D WHERE X data D, X is File)' ' UNION ' - '(Any D WHERE X data D, X is Image)') + '(Any D WHERE X title D, X is Bookmark)') self.assertEquals(str(ex), 'query fetch some source mapped attribute, some not') ex = self.assertRaises(QueryError, self.execute, 'Any D WHERE X data D') diff -r e082a57c2207 -r 8a531340c3ef web/views/editcontroller.py --- a/web/views/editcontroller.py Fri May 21 18:40:26 2010 +0200 +++ b/web/views/editcontroller.py Tue May 25 09:50:12 2010 +0200 @@ -160,8 +160,6 @@ def _insert_entity(self, etype, eid, rqlquery): rql = rqlquery.insert_query(etype) try: - # get the new entity (in some cases, the type might have - # changed as for the File --> Image mutation) entity = self._cw.execute(rql, rqlquery.kwargs).get_entity(0, 0) neweid = entity.eid except ValidationError, ex: