test/unittest_entity.py
changeset 2635 c94df21f7ab2
parent 2208 1c73148ed912
child 2650 18aec79ec3a3
equal deleted inserted replaced
2634:273eec072cf8 2635:c94df21f7ab2
    53         self.execute('SET TAG tags X WHERE X eid %(x)s', {'x': oe.eid}, 'x')
    53         self.execute('SET TAG tags X WHERE X eid %(x)s', {'x': oe.eid}, 'x')
    54         e = self.add_entity('Note', type=u'z')
    54         e = self.add_entity('Note', type=u'z')
    55         e.copy_relations(oe.eid)
    55         e.copy_relations(oe.eid)
    56         self.assertEquals(len(e.ecrit_par), 1)
    56         self.assertEquals(len(e.ecrit_par), 1)
    57         self.assertEquals(e.ecrit_par[0].eid, p.eid)
    57         self.assertEquals(e.ecrit_par[0].eid, p.eid)
    58         self.assertEquals(len(e.reverse_tags), 0)
    58         self.assertEquals(len(e.reverse_tags), 1)
       
    59         # check meta-relations are not copied, set on commit
       
    60         self.assertEquals(len(e.created_by), 0)
    59 
    61 
    60     def test_copy_with_nonmeta_composite_inlined(self):
    62     def test_copy_with_nonmeta_composite_inlined(self):
    61         p = self.add_entity('Personne', nom=u'toto')
    63         p = self.add_entity('Personne', nom=u'toto')
    62         oe = self.add_entity('Note', type=u'x')
    64         oe = self.add_entity('Note', type=u'x')
    63         self.schema['ecrit_par'].set_rproperty('Note', 'Personne', 'composite', 'subject')
    65         self.schema['ecrit_par'].set_rproperty('Note', 'Personne', 'composite', 'subject')
   213 
   215 
   214     def test_printable_value_string(self):
   216     def test_printable_value_string(self):
   215         e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`',
   217         e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`',
   216                             content_format=u'text/rest')
   218                             content_format=u'text/rest')
   217         self.assertEquals(e.printable_value('content'),
   219         self.assertEquals(e.printable_value('content'),
   218                           '<p>du <a class="reference" href="http://testing.fr/cubicweb/cwgroup/managers">*ReST*</a></p>\n')
   220                           '<p>du <a class="reference" href="http://testing.fr/cubicweb/cwgroup/guests">*ReST*</a></p>\n')
   219         e['content'] = 'du <em>html</em> <ref rql="CWUser X">users</ref>'
   221         e['content'] = 'du <em>html</em> <ref rql="CWUser X">users</ref>'
   220         e['content_format'] = 'text/html'
   222         e['content_format'] = 'text/html'
   221         self.assertEquals(e.printable_value('content'),
   223         self.assertEquals(e.printable_value('content'),
   222                           'du <em>html</em> <a href="http://testing.fr/cubicweb/view?rql=CWUser%20X">users</a>')
   224                           'du <em>html</em> <a href="http://testing.fr/cubicweb/view?rql=CWUser%20X">users</a>')
   223         e['content'] = 'du *texte*'
   225         e['content'] = 'du *texte*'
   320         self.failUnless(not p1.reverse_evaluee)
   322         self.failUnless(not p1.reverse_evaluee)
   321 
   323 
   322     def test_complete_relation(self):
   324     def test_complete_relation(self):
   323         self.execute('SET RT add_permission G WHERE RT name "wf_info_for", G name "managers"')
   325         self.execute('SET RT add_permission G WHERE RT name "wf_info_for", G name "managers"')
   324         self.commit()
   326         self.commit()
       
   327         session = self.session()
   325         try:
   328         try:
   326             eid = self.execute('INSERT TrInfo X: X comment "zou", X wf_info_for U,'
   329             eid = session.unsafe_execute(
   327                                'X from_state S1, X to_state S2 WHERE '
   330                 'INSERT TrInfo X: X comment "zou", X wf_info_for U, X from_state S1, X to_state S2 '
   328                                'U login "admin", S1 name "activated", S2 name "deactivated"')[0][0]
   331                 'WHERE U login "admin", S1 name "activated", S2 name "deactivated"')[0][0]
   329             trinfo = self.entity('Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   332             trinfo = self.entity('Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   330             trinfo.complete()
   333             trinfo.complete()
   331             self.failUnless(trinfo.relation_cached('from_state', 'subject'))
   334             self.failUnless(trinfo.relation_cached('from_state', 'subject'))
   332             self.failUnless(trinfo.relation_cached('to_state', 'subject'))
   335             self.failUnless(trinfo.relation_cached('to_state', 'subject'))
   333             self.failUnless(trinfo.relation_cached('wf_info_for', 'subject'))
   336             self.failUnless(trinfo.relation_cached('wf_info_for', 'subject'))
   334             # check with a missing relation
   337             # check with a missing relation
   335             eid = self.execute('INSERT TrInfo X: X comment "zou", X wf_info_for U,'
   338             eid = session.unsafe_execute(
   336                                'X to_state S2 WHERE '
   339                 'INSERT TrInfo X: X comment "zou", X wf_info_for U,X to_state S2 '
   337                                'U login "admin", S2 name "activated"')[0][0]
   340                 'WHERE U login "admin", S2 name "activated"')[0][0]
   338             trinfo = self.entity('Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   341             trinfo = self.entity('Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   339             trinfo.complete()
   342             trinfo.complete()
   340             self.failUnless(isinstance(trinfo.creation_date, datetime))
   343             self.failUnless(isinstance(trinfo.creation_date, datetime))
   341             self.failUnless(trinfo.relation_cached('from_state', 'subject'))
   344             self.failUnless(trinfo.relation_cached('from_state', 'subject'))
   342             self.failUnless(trinfo.relation_cached('to_state', 'subject'))
   345             self.failUnless(trinfo.relation_cached('to_state', 'subject'))