45 assert self.cnx is self.mh._cnx |
45 assert self.cnx is self.mh._cnx |
46 assert self.session is self.mh.session, (self.session.id, self.mh.session.id) |
46 assert self.session is self.mh.session, (self.session.id, self.mh.session.id) |
47 |
47 |
48 def test_add_attribute_int(self): |
48 def test_add_attribute_int(self): |
49 self.failIf('whatever' in self.schema) |
49 self.failIf('whatever' in self.schema) |
50 paraordernum = self.mh.rqlexec('Any O WHERE X name "Note", RT name "para", RDEF from_entity X, RDEF relation_type RT, RDEF ordernum O')[0][0] |
50 orderdict = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, ' |
|
51 'RDEF relation_type RT, RDEF ordernum O, RT name RTN')) |
51 self.mh.cmd_add_attribute('Note', 'whatever') |
52 self.mh.cmd_add_attribute('Note', 'whatever') |
52 self.failUnless('whatever' in self.schema) |
53 self.failUnless('whatever' in self.schema) |
53 self.assertEquals(self.schema['whatever'].subjects(), ('Note',)) |
54 self.assertEquals(self.schema['whatever'].subjects(), ('Note',)) |
54 self.assertEquals(self.schema['whatever'].objects(), ('Int',)) |
55 self.assertEquals(self.schema['whatever'].objects(), ('Int',)) |
55 paraordernum2 = self.mh.rqlexec('Any O WHERE X name "Note", RT name "para", RDEF from_entity X, RDEF relation_type RT, RDEF ordernum O')[0][0] |
56 orderdict2 = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, ' |
56 self.assertEquals(paraordernum2, paraordernum+1) |
57 'RDEF relation_type RT, RDEF ordernum O, RT name RTN')) |
|
58 whateverorder = migrschema['whatever'].rproperty('Note', 'Int', 'order') |
|
59 for k, v in orderdict.iteritems(): |
|
60 if v >= whateverorder: |
|
61 orderdict[k] = v+1 |
|
62 orderdict['whatever'] = whateverorder |
|
63 self.assertDictEquals(orderdict, orderdict2) |
57 #self.assertEquals([r.type for r in self.schema['Note'].ordered_relations()], |
64 #self.assertEquals([r.type for r in self.schema['Note'].ordered_relations()], |
58 # ['modification_date', 'creation_date', 'owned_by', |
65 # ['modification_date', 'creation_date', 'owned_by', |
59 # 'eid', 'ecrit_par', 'inline1', 'date', 'type', |
66 # 'eid', 'ecrit_par', 'inline1', 'date', 'type', |
60 # 'whatever', 'para', 'in_basket']) |
67 # 'whatever', 'date', 'in_basket']) |
61 # NB: commit instead of rollback make following test fail with py2.5 |
68 # NB: commit instead of rollback make following test fail with py2.5 |
62 # this sounds like a pysqlite/2.5 bug (the same eid is affected to |
69 # this sounds like a pysqlite/2.5 bug (the same eid is affected to |
63 # two different entities) |
70 # two different entities) |
64 self.mh.rollback() |
71 self.mh.rollback() |
65 |
72 |