Projet

Général

Profil

0002-tests-use-pytest-style-48352.patch

Benjamin Dauvergne, 14 novembre 2020 10:29

Télécharger (3,7 ko)

Voir les différences:

Subject: [PATCH 2/2] tests: use pytest style (#48352)

 tests/test_custom_user.py | 69 +++++++++++++++++++--------------------
 1 file changed, 34 insertions(+), 35 deletions(-)
tests/test_custom_user.py
14 14
# You should have received a copy of the GNU Affero General Public License
15 15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from django.test import TestCase
18
from django.contrib.contenttypes.models import ContentType
19 17
from django.contrib.auth import get_user_model
20
from django.core.exceptions import ValidationError
21 18

  
22 19
from django_rbac.utils import get_permission_model, get_role_model
23 20

  
......
28 25
User = get_user_model()
29 26

  
30 27

  
31
class CustomUserTestCase(TestCase):
32
    def test_roles_and_parents(self):
33
        rchild1 = Role.objects.create(name='role-child1')
34
        rparent1 = Role.objects.create(name='role-parent1')
35
        rparent2 = Role.objects.create(name='role-parent2')
36
        rchild2 = Role.objects.create(name='role-child2')
37
        rparent1.add_child(rchild1)
38
        rparent1.add_child(rchild2)
39
        rparent2.add_child(rchild1)
40
        rparent2.add_child(rchild2)
41

  
42
        user1 = User.objects.create(username='user')
43
        user1.roles.add(rchild1)
44
        self.assertEqual(set([r.id for r in user1.roles_and_parents()]),
45
                         set([rchild1.id, rparent1.id, rparent2.id]))
46
        for r in user1.roles_and_parents():
47
            if r.id == rchild1.id:
48
                self.assertEqual(r.member, [user1])
49
            else:
50
                self.assertIn(r.id, [rparent1.id, rparent2.id])
51
                self.assertEqual(r.member, [])
52
        user1.roles.remove(rchild1)
53
        user1.roles.add(rchild2)
54
        self.assertEqual(set([r.id for r in user1.roles_and_parents()]),
55
                         set([rchild2.id, rparent1.id, rparent2.id]))
56
        for r in user1.roles_and_parents():
57
            if r.id == rchild2.id:
58
                self.assertEqual(r.member, [user1])
59
            else:
60
                self.assertIn(r.id, [rparent1.id, rparent2.id])
61
                self.assertEqual(r.member, [])
62

  
28
def test_roles_and_parents(db):
29
    rchild1 = Role.objects.create(name='role-child1')
30
    rparent1 = Role.objects.create(name='role-parent1')
31
    rparent2 = Role.objects.create(name='role-parent2')
32
    rchild2 = Role.objects.create(name='role-child2')
33
    rparent1.add_child(rchild1)
34
    rparent1.add_child(rchild2)
35
    rparent2.add_child(rchild1)
36
    rparent2.add_child(rchild2)
37

  
38
    user1 = User.objects.create(username='user')
39
    user1.roles.add(rchild1)
40
    assert (
41
        set([r.id for r in user1.roles_and_parents()])
42
        == set([rchild1.id, rparent1.id, rparent2.id])
43
    )
44
    for r in user1.roles_and_parents():
45
        if r.id == rchild1.id:
46
            assert r.member == [user1]
47
        else:
48
            assert r.id in [rparent1.id, rparent2.id]
49
            assert r.member == []
50
    user1.roles.remove(rchild1)
51
    user1.roles.add(rchild2)
52
    assert (
53
        set([r.id for r in user1.roles_and_parents()])
54
        == set([rchild2.id, rparent1.id, rparent2.id])
55
    )
56
    for r in user1.roles_and_parents():
57
        if r.id == rchild2.id:
58
            assert r.member == [user1]
59
        else:
60
            assert r.id in [rparent1.id, rparent2.id]
61
            assert r.member == []
63 62

  
64 63

  
65 64
def test_free_text_search_phone_number(db, django_assert_num_queries):
66
-