test/unittest_entity.py
changeset 9293 723e2c586ea3
parent 9283 5f2c5eb1a820
child 9340 b1e933b0e850
equal deleted inserted replaced
9292:4b3e657d17ab 9293:723e2c586ea3
     1 # -*- coding: utf-8 -*-
     1 # -*- coding: utf-8 -*-
     2 # copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     3 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     4 #
     4 #
     5 # This file is part of CubicWeb.
     5 # This file is part of CubicWeb.
     6 #
     6 #
     7 # CubicWeb is free software: you can redistribute it and/or modify it under the
     7 # CubicWeb is free software: you can redistribute it and/or modify it under the
   130         self.assertEqual(list(email._cw_related_cache), ['primary_email_object'])
   130         self.assertEqual(list(email._cw_related_cache), ['primary_email_object'])
   131         groups = user.in_group
   131         groups = user.in_group
   132         self.assertEqual(sorted(user._cw_related_cache), ['in_group_subject', 'primary_email_subject'])
   132         self.assertEqual(sorted(user._cw_related_cache), ['in_group_subject', 'primary_email_subject'])
   133         for group in groups:
   133         for group in groups:
   134             self.assertFalse('in_group_subject' in group._cw_related_cache, list(group._cw_related_cache))
   134             self.assertFalse('in_group_subject' in group._cw_related_cache, list(group._cw_related_cache))
       
   135         user.cw_clear_all_caches()
       
   136         user.related('in_group', entities=True)
       
   137         self.assertIn('in_group_subject', user._cw_related_cache)
       
   138         user.cw_clear_all_caches()
       
   139         user.related('in_group', targettypes=('CWGroup',), entities=True)
       
   140         self.assertNotIn('in_group_subject', user._cw_related_cache)
   135 
   141 
   136     def test_related_limit(self):
   142     def test_related_limit(self):
   137         req = self.request()
   143         req = self.request()
   138         p = req.create_entity('Personne', nom=u'di mascio', prenom=u'adrien')
   144         p = req.create_entity('Personne', nom=u'di mascio', prenom=u'adrien')
   139         for tag in u'abcd':
   145         for tag in u'abcd':
   142         self.assertEqual(len(p.related('tags', 'object', limit=2)), 2)
   148         self.assertEqual(len(p.related('tags', 'object', limit=2)), 2)
   143         self.assertEqual(len(p.related('tags', 'object')), 4)
   149         self.assertEqual(len(p.related('tags', 'object')), 4)
   144         p.cw_clear_all_caches()
   150         p.cw_clear_all_caches()
   145         self.assertEqual(len(p.related('tags', 'object', entities=True, limit=2)), 2)
   151         self.assertEqual(len(p.related('tags', 'object', entities=True, limit=2)), 2)
   146         self.assertEqual(len(p.related('tags', 'object', entities=True)), 4)
   152         self.assertEqual(len(p.related('tags', 'object', entities=True)), 4)
       
   153 
       
   154     def test_related_targettypes(self):
       
   155         req = self.request()
       
   156         p = req.create_entity('Personne', nom=u'Loxodonta', prenom=u'Babar')
       
   157         n = req.create_entity('Note', type=u'scratch', ecrit_par=p)
       
   158         t = req.create_entity('Tag', name=u'a tag', tags=(p, n))
       
   159         self.commit()
       
   160         req = self.request()
       
   161         t = req.entity_from_eid(t.eid)
       
   162         self.assertEqual(2, t.related('tags').rowcount)
       
   163         self.assertEqual(1, t.related('tags', targettypes=('Personne',)).rowcount)
       
   164         self.assertEqual(1, t.related('tags', targettypes=('Note',)).rowcount)
   147 
   165 
   148     def test_cw_instantiate_relation(self):
   166     def test_cw_instantiate_relation(self):
   149         req = self.request()
   167         req = self.request()
   150         p1 = req.create_entity('Personne', nom=u'di')
   168         p1 = req.create_entity('Personne', nom=u'di')
   151         p2 = req.create_entity('Personne', nom=u'mascio')
   169         p2 = req.create_entity('Personne', nom=u'mascio')